GNU/Linux >> Belajar Linux >  >> Linux

Cara menggunakan rsyslog untuk membuat server agregasi log Linux

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.


Linux
  1. Cara Mengelola File Log Menggunakan Logrotate Di Linux

  2. Cara Membuat File Dengan Ukuran Tertentu Di Linux

  3. Cara Setup Rsyslog Remote Logging di Linux (Central Log Server)

  1. Cara Menggunakan Netcat untuk Mentransfer File di Linux

  2. Rsyslog :Cara Mengirim file log ke server jauh di CentOS/RHEL 6,7

  3. Cara Menggunakan Perintah rpm2cpio di Linux

  1. Cara Menggunakan OpenSSH untuk Menghubungkan ke Server Linux Anda

  2. Cara menggunakan Logrotate untuk mengelola file log

  3. Cara Menggunakan Perintah find Linux untuk Menemukan File