Linux CentOS server logging terpusat menggunakan Rsyslog dan LogAnalyzer

Loganalyzer - ini adalah aplikasi web yang dirancang untuk melihat log peristiwa sistem yang diterima dari syslog menggunakan browser web. Rsyslog - aplikasi ini merupakan perpanjangan dari daemon syslog standar, salah satu fitur di antaranya adalah kemampuan untuk menyimpan acara di database MySQL. Dengan bantuan dua program luar biasa ini, dimungkinkan untuk membuat server terpusat di mana semua acara dari berbagai perangkat dalam jaringan akan diarahkan, yang akan mengimplementasikan fungsi-fungsi untuk pengarsipan yang nyaman dan mencari acara dari semua acara di semua perangkat jaringan di perimeter jaringan. Pada artikel ini saya akan menjelaskan prosedur untuk menginstal rsyslog (mengumpulkan dan mengagregasi acara syslog) dan LogAnalyzer (di Linux CentOS), yang menyediakan antarmuka yang ramah pengguna untuk melihat dan mencari log yang dikumpulkan).

Pertama, Anda perlu menginstal sejumlah paket RPM tambahan. Karena Layanan LogAnalyzer, Rsyslog dan MySQL akan berjalan di server yang sama, Anda perlu menginstal paket-paket berikut menggunakan yum:

# yum instal httpd php mysql php-mysql mysql server wget rsyslog rsyslog-mysql

Sekarang Anda perlu memastikan bahwa MySQL dan Apache dikonfigurasi untuk memulai secara otomatis, dan kemudian jalankan:

# chkconfig mysqld di # chkconfig httpd di # service mysqld start # service httpd start

Secara default, pengguna root dari database MySQL memiliki kata sandi kosong, jadi Anda harus mengamankan konfigurasi dengan menetapkan kata sandi baru:

# mysqladmin - u root kata sandi NewPassword

Selanjutnya, impor skema database rsyslog ke MySQL. Bergantung pada versi rsyslog, ubah path ke file “createDB.sql”.

# mysql - u root - p < /usr/share/doc/rsyslog-mysql-3.22.1/createDB.sql

Merupakan praktik yang baik untuk membatasi akses aplikasi ke basis data, jadi kami akan membuat pengguna khusus untuk mengakses basis data rsyslog. Untuk semakin memperketat pengaturan keamanan, Anda dapat membuat akun terpisah untuk rsyslog dan LogAnalyzer. Anda harus memberikan akses pengguna rsyslog ke database MySQL hanya dari antarmuka localhost localhost. Kita juga harus menjalankan perintah MySQL "hak istimewa flush" untuk segera menerapkan semua hak.

# mysql - u root - p mysql mysql> GRANT ALL ON Syslog. * UNTUK rsyslog @ localhost DIIDENTIFIKASI OLEH 'Kata Sandi'; mysql> hak istimewa flush; mysql> keluar

Sekarang saatnya beralih ke mengedit file /etc/rsyslog.conf. Di sini kita harus mengkonfigurasi penerusan pesan syslog ke database MySQL. Perintah pertama memuat driver MySQL. Pada baris kedua, kami mengatakan bahwa perlu menerima log dengan tingkat kepentingan apa pun dari "authpriv", yang mencakup pesan paling penting. Jika Anda ingin menyimpan semua pesan sistem di MySQL, Anda harus menentukan *. *. Server database MySQL saya mendengarkan di alamat 127.0.0.1, Syslog adalah nama dari database MySQL, dan akhirnya, kami menentukan nama MySQL dan kata sandi dari pengguna rsyslog. Di sini Anda dapat mengonfigurasi pengumpulan dan perekaman pesan apa pun, setiap kombinasi harus dipisahkan ";" (mis. surat. *; authpriv. *: ommysql ...).

$ ModLoad ommysql authpriv. *: Ommysql: 127.0.0.1, Syslog, rsyslog, Kata Sandi

Sekarang Anda perlu mematikan layanan syslog yang ada dan mengaktifkan rsyslog:

# chkconfig syslog off # berhenti layanan syslog # chkconfig rsyslog on # service rsyslog start

Saatnya mengunduh LogAnalyzer. Versi terbaru dapat ditemukan di sini: http://loganalyzer.adiscon.com/downloads.

Atau unduh LogAnalyzer langsung dari server Linux (wget harus diinstal):

# cd ~ # wget http://download.adiscon.com/loganalyzer/loganalyzer-3.0.0.tar.gz

Buka zip file LogAnalyzer:

# tar zxvf loganalyzer-3.0.0.tar.gz

Sekarang Anda perlu menyalin file LogAnalyzer ke direktori server web Apache (konfigurasi standar).

# mv loganalyzer-3.0.0 / src / var / www / html / loganalyzer # mv loganalyzer-3.0.0 / contrib / * / var / www / html / loganalyzer /

Buka direktori LogAnalyzer yang dibuat, jalankan skrip configure.sh. Akibatnya, file konfigurasi config.php kosong akan dibuat, yang akan diisi pada langkah selanjutnya.

# cd / var / www / html / loganalyzer # chmod u + x configure.sh secure.sh # ./configure.sh

Untuk mengkonfigurasi LogAnalyzer lebih lanjut, kita memerlukan browser web. Di browser Internet favorit Anda, ketik http: // web1 / loganalyzer. (web1 adalah nama server web1 kami, loganalyzer adalah direktori apache)

Di tengah jendela, pilih tautan "Klik di sini untuk Menginstal".

Selanjutnya.

Konfigurasikan opsi tampilan log dan klik Berikutnya lagi.

Sekarang Anda perlu menentukan alamat server dengan database, nama pengguna, dan kata sandi untuk mengaksesnya (jika Anda tidak lupa database disebut rsyslog). Dengan mengklik Berikutnya, Anda akan melihat hasil memeriksa kebenaran data yang dimasukkan dan koneksi yang benar.

Akhirnya selesai.

Jika Anda mengkonfigurasi semuanya dengan benar, halaman utama LogAnalyzer akan muncul di depan Anda, di mana log akan ditampilkan saat diterima. Anda dapat mencoba menghasilkan berbagai peristiwa sistem dan melihat apa yang akan terjadi pada halaman LogAnalyzer. Karena Saya mengatur pencatatan peristiwa tipe "authpriv", yang berarti bahwa peristiwa seperti input / output pengguna, atau perintah sakelar pengguna (su) akan dicatat.

Kustomisasi Rsyslog untuk pengumpulan log jarak jauh

Langkah selanjutnya adalah mengkonfigurasi layanan rsyslog untuk mengumpulkan acara syslog dari berbagai perangkat jaringan. Pertama, Anda perlu mengkonfigurasi iptables firewall untuk memungkinkan lalu lintas masuk melalui port 514. Saya akan menambahkan dua aturan yang memungkinkan lalu lintas TCP dan UDP. Secara default, syslog hanya menerima pesan yang dikirim pada port UDP 514, tetapi kemampuan untuk menerima lalu lintas TCP telah ditambahkan ke rsyslog. Tambahkan aturan berikut ke file "/ etc / sysconfig / iptables":

-A RH-Firewall-1-INPUT - p udp - m udp --dport 514 - j MENERIMA
-A RH-Firewall-1-INPUT - p tcp - m tcp --port 514 - j MENERIMA

Mulai ulang iptables:

# service iptables restart

Sekarang Anda perlu mengkonfigurasi rsyslog untuk menerima pesan syslog yang masuk. Saya akan mengkonfigurasi penerimaan pesan TCP / UDP dari localhost dan semua host di subnet 192.168.1.0. Baris berikut harus ditambahkan ke file "/etc/rsyslog.conf" (sebelum membangun, tempat komunikasi dengan database MySQL dikonfigurasikan).

$ DiizinkanKirim UDP, 127.0.0.1, 192.168.1.0/24
$ DiizinkanKirim TCP, 127.0.0.1, 192.168.1.0/24

Ingatlah untuk memulai kembali layanan rsyslog di server logging pusat:

# service rsyslog restart

Langkah selanjutnya adalah mengkonfigurasi klien jarak jauh untuk mengirim acara ke server rsyslog pusat. Jika rsyslog dijalankan pada klien, misalnya, tambahkan baris berikut ke file “/etc/rsyslog.conf”:

authpriv. * @ 192.168.10.100

Mulai ulang server rsyslog pada klien dan coba masuk / keluar pada sistem ini. Jika Anda tidak melewatkan apa pun, acara yang sesuai akan muncul di halaman web LogAnalyzer!

Saya juga merekomendasikan untuk berkenalan dengan artikel tentang organisasi server log pusat berbasis Windows Server 2008