Dulu, ketika saya menjadi sysadmin untuk perusahaan lain di platform lain, kami tidak memiliki sarana untuk memusatkan file log. Hampir setiap pagi, ketika saya tiba di tempat kerja, saya menuangkan secangkir kopi untuk diri saya sendiri dan menghabiskan 20 hingga 30 menit untuk melakukan remote ke setiap server, meninjau log peristiwa, dan kemudian mencatat masalah apa pun yang terdeteksi. Biarkan saya meyakinkan Anda bahwa ini bukan cara yang paling efisien untuk menangani log. Namun, itu adalah satu-satunya pilihan yang saya miliki.
Linux, bagaimanapun, menggunakan alat syslog berbasis Unix untuk mengelola file log lokal. Sebagian besar distribusi Linux modern benar-benar menggunakan daemon baru dan lebih baik yang disebut rsyslog . rsyslog
mampu meneruskan log ke server jauh. Konfigurasinya relatif sederhana dan memungkinkan admin Linux untuk memusatkan file log untuk pengarsipan dan pemecahan masalah. Dalam artikel ini, saya menunjukkan cara mengkonfigurasi server untuk bertindak sebagai repositori file log dan kemudian cara mengkonfigurasi server Linux untuk meneruskan log mereka ke sana.
File log adalah komponen penting dari infrastruktur server Anda. Sysadmin menggunakan file log untuk menyelesaikan banyak tugas:
- Pemecahan masalah
- Audit Perjanjian Tingkat Layanan (SLA)
- Mendasarkan
- Perawatan pencegahan
Konfigurasikan host log
Saya akan merujuk ke server yang menghosting file log sebagai host log . Server ini mungkin memerlukan beberapa konfigurasi unik dibandingkan dengan perangkat Linux lainnya. Pertimbangkan pengaturan berikut untuk server host log Anda.
Pisahkan partisi untuk /var/log
Pedoman penginstalan sering menyarankan admin untuk memasang /var/log
pada partisi terpisah untuk menghindari log di luar kendali mengisi penyimpanan tempat akar sistem file berada. Praktik seperti itu sangat penting ketika server menerima file log dari banyak sekali perangkat jarak jauh.
File konfigurasi
rsyslog
yang sebenarnya konfigurasi dikelola melalui file konfigurasi di /etc
direktori. Anda perlu mengedit beberapa baris. Pengaturan mungkin sedikit berbeda, tergantung pada distribusinya. Cadangkan file konfigurasi asli, lalu buka /etc/rsyslog.conf
file dengan editor teks favorit Anda.
Pertama, batalkan komentar pada dua baris untuk UDP:
# Provides UDP syslog reception
$ModLoad imudp.so
$UDPServerRun 514
Anda juga dapat menggunakan TCP sebagai protokol Transport.
# Provides TCP syslog reception
$ModLoad imtcp.so
$InputTCPServerRun 514
Anda akan menemukan baris ini di dekat bagian atas file konfigurasi di Modul bagian.
Selanjutnya, konfigurasikan template untuk log yang masuk. Jika Anda tidak mengonfigurasi template, semua entri log dari server jauh bercampur dengan log lokal server host log.
$template DynamicFile,"/var/log/%HOSTNAME%/forwarded-logs.log"
*.* -?DynamicFile
Template ini menempatkan semua log dari host tertentu dalam direktori yang dinamai untuk host tersebut. Misalnya, jika Anda memiliki server bernama WebServer1 , direktori bernama WebServer1
dibuat, dan semua log server itu disimpan di direktori itu. Template diatur dalam Template bagian dari file konfigurasi. Jika tidak ada bagian tertentu yang ditentukan, pastikan template ditentukan sebelum Aturan .
Ada banyak pilihan template yang tersedia secara online.
Setelah Anda menghapus komentar pada protokol lapisan Transport dan mengatur template, simpan perubahan Anda ke file. Jangan lupa untuk memulai kembali rsyslog
.
# systemctl restart rsyslog
Firewall
rsyslog
menggunakan port 514 untuk konektivitas jaringan, baik itu menggunakan TCP atau UDP. Anda perlu membuka port 514 di firewall di server host log. Dengan asumsi Anda menggunakan UDP, konfigurasi firewall terlihat seperti ini:
# firewall-cmd --add-port=514/udp --permanent
# firewall-cmd --reload
Gunakan perintah berikut untuk mengonfirmasi konfigurasi Anda:
# firewall-cmd --list-all
Logrot
Anda mungkin merasa berguna untuk mengonfigurasi logrotate
, demikian juga. logrotate
membantu admin mengelola sejumlah besar file log dengan menerapkan pengarsipan, kompresi, penghapusan, dan tugas manajemen file log lain yang diperlukan. Alat itu telah dicakup secara efektif oleh Edem Afenyo dalam artikel Aktifkan Sysadmin Menyiapkan Logrotate di Linux, jadi tidak ada alasan bagi saya untuk membahasnya di sini.
Mendokumentasikan alamat IP dari server host log
Gunakan ifconfig
atau ip addr
untuk mendokumentasikan alamat IP server host log. Anda akan menggunakan alamat ini di file konfigurasi klien.
Catatan bonus :Saya sarankan menggunakan alamat IP dalam file konfigurasi seperti /etc/rsyslog.conf
alih-alih nama host. Melakukannya akan menyederhanakan konfigurasi dan menghapus resolusi nama dari proses koneksi komputer dan proses pemecahan masalah sysadmin. Ini menghilangkan seluruh kerumitan di kemudian hari.
[ Anda mungkin juga menyukai: Menyiapkan logrotate di Linux ]
Konfigurasikan klien log
Saya akan memulai bagian ini dengan mengkonfigurasi server Linux dasar untuk meneruskan file lognya ke server host log yang dikonfigurasi sebelumnya. Konfigurasi ini sedikit lebih pendek. Jangan lupa untuk mencadangkan /etc/rsyslog.conf
yang asli berkas.
Buka /etc/rsyslog.conf
file konfigurasi dengan editor favorit Anda (saya lebih suka Vim, tetapi apa pun yang cocok untuk Anda tidak masalah). Pindah ke Aturan bagian dan buat baris baru sebelum entri lainnya. Agar jelas, Anda menambahkan baris ini sebelum fasilitas .keparahan entri. Melakukannya memungkinkan semua kecocokan untuk diteruskan ke server tujuan.
Tambahkan informasi berikut, di mana IP adalah alamat IP dari server host log:
*.* @IP
Catatan :Jika Anda menggunakan TCP, sintaksnya adalah *.* @@IP
Simpan perubahan Anda ke file konfigurasi, lalu mulai ulang rsyslog
layanan:
# systemctl restart rsyslog
Uji konfigurasi
logger
Perintah ini digunakan untuk membuat entri file log secara manual. Jalankan perintah berikut untuk membuat entri:
# logger Test
Verifikasi entri file log dengan menggunakan tail
perintah untuk menampilkan entri terbaru di /var/log/messages
masuk ke server lokal:
# tail /var/log/messages
Anda akan melihat pesan Uji.
Selanjutnya, alihkan ke server host log, lalu tampilkan konten /var/log
:
# ls /var/log
Anda akan melihat direktori yang dinamai untuk server jarak jauh yang Anda konfigurasikan. Jika Anda ls
isi direktori itu, Anda akan melihat log yang diteruskan dari server. Anda dapat menggunakan tail
perintah untuk menampilkan isi log di subdirektori server ini. Anda juga akan melihat pesan Tes diulang di sini.
Konfigurasikan server Anda yang tersisa
Pada titik ini, Anda dapat mengonfigurasi server Linux yang tersisa untuk meneruskan lognya ke host log. Anda dapat mendistribusikan versi baru /etc/rsyslog.conf
file dengan menggunakan rsync, SSH, atau bahkan mengatur konfigurasi dengan Ansible.
Teruskan log tertentu
Contoh pengaturan di atas meneruskan semua log ke sistem host log (karenanya *.* sintaksis). Anda dapat memilih untuk hanya meneruskan entri untuk masing-masing fasilitas atau meneruskan entri untuk fasilitas yang berbeda ke server host log yang berbeda.
Katakanlah Anda ingin mengirim cron log ke hostlogserver1 (di mana sysadmin dapat meninjau entri) dan FTP log ke hostlogserver2 (di mana netadmin dapat memeriksa entri). Konfigurasinya terlihat seperti ini:
cron.* @10.1.1.15
ftp.* @10.1.1.20
Di mana hostlogserver1 memiliki alamat IP 10.1.1.15 dan hostlogserver2 memiliki alamat IP 10.1.1.20 .
Anda juga dapat meneruskan entri yang sama ke dua server berbeda:
*.* @10.1.1.15
*.* @10.1.1.20
Platform lain
Ingat bahwa dalam pendahuluan, saya menunjukkan bahwa mekanisme file log ini benar-benar sistem Unix, bukan fungsi khusus Linux. Artinya, hampir semua perangkat berbasis Unix yang memelihara log dapat berpartisipasi.
Konfigurasikan router untuk meneruskan log
Saya baru-baru ini bekerja di lingkungan lab klien yang menggunakan router yang dikonfigurasi dengan VyOS. VyOS adalah router, VPN, firewall, dan distribusi NAT berbasis Linux. Kami menggunakan proses di atas (mengedit /etc/rsyslog.conf
file konfigurasi) untuk mengatur router agar meneruskan lognya ke server pusat. Administrator jaringan dapat dengan mudah mengarsipkan router, VPN, dan log lainnya dengan menggunakan rsyslog
.
OS lain yang digunakan di lingkungan lab adalah pfSense. pfSense adalah sistem operasi turunan FreeBSD yang juga dapat meneruskan log ke lokasi pusat dengan menggunakan rsyslog
. Sekali lagi, ini adalah konfigurasi langsung, meskipun kali ini melalui GUI berbasis web.
[ Kursus online gratis:Tinjauan teknis Red Hat Enterprise Linux. ]
Menutup
Pertimbangkan opsi yang tersedia untuk sysadmin dengan rsyslog
penerusan log. Tim jaringan Anda dapat memusatkan log untuk semua router internal dan perimeter, peralatan VPN, dan firewall. Sysadmin dapat mengatur log berdasarkan area tanggung jawab atau geografi. Pemusatan dapat memengaruhi keamanan, meja layanan, dan tim admin server Anda. rsyslog
adalah layanan Linux dasar tetapi penting, dan memanfaatkan kemampuannya untuk memusatkan log memungkinkan Anda untuk mendapatkan yang terbaik darinya.