GNU/Linux >> Belajar Linux >  >> Cent OS

Mengonfigurasi Logging Jarak Jauh menggunakan rsyslog di CentOS/RHEL

Pencatatan log jarak jauh

Konfigurasi manajemen log sistem standar merotasi file log setiap minggu dan menyimpannya selama empat rotasi. Seringkali diinginkan untuk mempertahankan log lebih lama dari standar empat minggu, terutama saat menetapkan tren kinerja sistem yang terkait dengan tugas, seperti penutupan keuangan akhir bulan, yang dijalankan hanya sebulan sekali. Dengan mengirimkan pesan log ke host log jarak jauh dengan penyimpanan massal khusus, administrator dapat memelihara arsip besar log sistem untuk sistem mereka tanpa mengubah konfigurasi rotasi log default, yang dimaksudkan untuk menjaga log dari penyimpanan disk yang berlebihan.

Kumpulan pesan log sistem terpusat juga dapat sangat berguna untuk memantau keadaan sistem dan untuk mengidentifikasi masalah dengan cepat. Ini juga menyediakan lokasi cadangan untuk pesan log jika sistem mengalami kegagalan hard drive bencana atau masalah lain, yang menyebabkan log lokal tidak lagi tersedia. Dalam situasi ini, salinan pesan log yang berada di host log pusat dapat digunakan untuk membantu mendiagnosis masalah yang menyebabkan masalah.

Pencatatan log sistem standar diimplementasikan di Red Hat Enterprise Linux 7 oleh rsyslog melayani. Program sistem dapat mengirim pesan syslog ke rsyslogd lokal service, yang kemudian akan mengalihkan pesan tersebut ke file di /var/log , server log jarak jauh, atau database lain berdasarkan pengaturan dalam file konfigurasinya, /etc/rsyslog.conf .

Pesan log memiliki dua karakteristik yang digunakan untuk mengkategorikannya. Fasilitas pesan log menunjukkan jenis pesan itu. Prioritas, di sisi lain, menunjukkan pentingnya peristiwa yang dicatat dalam pesan.

Tingkat Prioritas Syslog

Prioritas Artinya
muncul Sistem tidak dapat digunakan
peringatan Diperlukan tindakan segera
kritik Kondisi kritis
salah Kondisi kesalahan
peringatan Kondisi peringatan
pemberitahuan Kondisi normal tapi signifikan
info Pesan informasi
debug Men-debug pesan

Mengonfigurasi host log pusat

Implementasi dari host log pusat memerlukan konfigurasi layanan rsyslog pada dua jenis sistem:sistem jarak jauh tempat pesan log berasal dan host log pusat yang menerima pesan. Pada host log pusat, layanan rsyslog perlu dikonfigurasi sehingga pesan log dari host jarak jauh dapat diterima.

Untuk mengonfigurasi layanan rsyslog pada host log pusat untuk menerima log jarak jauh, batalkan komentar pada baris penerimaan TCP atau UDP di bagian modul di /etc/rsyslog.conf berkas.

Untuk penerimaan UDP:

# Provides UDP syslog reception
$ModLoad imudp.so
$UDPServerRun 514

untuk penerimaan TCP:

# Provides TCP syslog reception
$ModLoad imtcp.so
$InputTCPServerRun 514

TCP menyediakan pengiriman pesan log jarak jauh yang lebih andal, tetapi UDP didukung oleh berbagai sistem operasi dan perangkat jaringan yang lebih luas.

Catatan :Transport TCP polos dari pesan syslog cukup banyak diimplementasikan tetapi belum distandarisasi. Sebagian besar implementasi saat ini menggunakan port 514/TCP, yang merupakan port rshd lama. Jika sistem telah menginstal paket rsh-server dan menggunakan layanan rshd lama yang tidak aman, itu akan bertentangan dengan penggunaan port 514/TCP untuk penerimaan syslog TCP biasa. Konfigurasikan server log untuk menggunakan port yang berbeda dengan mengubah pengaturan untuk $InputTCPServerRun.

Aturan yang terdapat dalam /etc/rsyslog.conf dikonfigurasi secara default untuk mengakomodasi pencatatan pesan pada satu host. Oleh karena itu, ia mengurutkan dan menggabungkan pesan berdasarkan fasilitas. Misalnya, pesan email disalurkan ke /var/log/maillog sementara pesan yang dihasilkan oleh
daemon crond digabungkan ke dalam /var/log/cron untuk memudahkan menemukan setiap jenis pesan.

Meskipun penyortiran pesan berdasarkan fasilitas sangat ideal pada satu host, ini menghasilkan hasil yang tidak diinginkan pada host log pusat karena menyebabkan pesan dari host jarak jauh yang berbeda bercampur satu sama lain. Pada host log pusat, biasanya pesan log dari sistem jarak jauh lebih optimal untuk tetap terpisah satu sama lain. Pemisahan ini dapat dicapai dengan mendefinisikan nama file log dinamis menggunakan fungsi template rsyslog.

Template didefinisikan di /etc/rsyslog.conf dan dapat digunakan untuk menghasilkan aturan dengan nama file log dinamis. Definisi template terdiri dari $template direktif, diikuti dengan nama template, dan kemudian string yang mewakili teks template. Teks template dapat dibuat dinamis dengan memanfaatkan nilai-nilai yang diganti dari properti pesan log. Misalnya, untuk mengarahkan pesan cron syslog dari sistem yang berbeda ke file yang berbeda pada host log pusat, gunakan template berikut untuk menghasilkan nama file log dinamis berdasarkan HOSTNAME properti dari setiap pesan:

$template DynamicFile,"/var/log/loghost/%HOSTNAME%/cron.log"

Nama file dinamis yang dibuat menggunakan definisi template kemudian dapat direferensikan oleh nama template dalam aturan sebagai berikut:

cron.*    ?DynamicFile

Pada sistem yang melakukan pencatatan log yang sangat panjang lebar, mungkin diinginkan untuk mematikan sinkronisasi file log setelah setiap operasi penulisan untuk meningkatkan kinerja. Sinkronisasi file log setelah setiap logging dapat dihilangkan dengan mengawali nama file log dengan tanda minus (-) dalam aturan logging. Namun, pertukaran kinerja yang ditingkatkan memang menciptakan kemungkinan kehilangan data log jika sistem langsung mogok setelah upaya penulisan.

Berikut ini adalah contoh lain dari penggunaan template untuk menghasilkan nama file log dinamis. Dalam contoh ini, pesan log jarak jauh akan diurutkan menurut nama host dan nilai fasilitasnya dengan merujuk pada NAMA HOST dan syslogfacility-test properti. Pesan log akan ditulis ke nama file log yang dibuat secara dinamis dan tidak ada sinkronisasi yang akan dilakukan setelah operasi tulis.

$template DynamicFile,"/var/log/loghost/%HOSTNAME%/%syslogfacility-text%.log"
*.*    -?DynamicFile
Catatan :Daftar lengkap properti pesan syslog yang disediakan oleh rsyslog dapat ditemukan
di bagian Available Properties pada halaman manual rsyslog.conf(5).

Setelah penerimaan syslog telah diaktifkan dan aturan yang diinginkan untuk pemisahan log berdasarkan host telah dibuat, mulai ulang layanan rsyslog agar perubahan konfigurasi diterapkan. Selain itu, tambahkan aturan firewall UDP dan/atau TCP yang diperlukan untuk mengizinkan lalu lintas syslog masuk, lalu muat ulang firewalld .

# systemctl restart rsyslog
# firewall-cmd --add-port=514/udp --permanent
# firewall-cmd --add-port=514/tcp --permanent
# firewall-cmd --reload

Saat file log baru dibuat, file tersebut mungkin tidak disertakan oleh jadwal rotasi log host log yang ada. Ini harus diperbaiki untuk memastikan bahwa file log baru tidak tumbuh ke ukuran yang tidak dapat dikelola. Misalnya, untuk menyertakan file log baru dari contoh sebelumnya dalam rotasi log, tambahkan entri berikut ke daftar file log di /etc/logrotate.d/syslog file konfigurasi.

/var/log/loghost/*/*.log

Mengalihkan logging ke host log pusat

Setelah host log pusat dikonfigurasi untuk menerima logging jarak jauh, layanan rsyslog dapat dikonfigurasi pada sistem jarak jauh untuk mengirim log ke host log pusat. Untuk mengkonfigurasi mesin agar mengirim log ke server rsyslog jarak jauh, tambahkan baris ke bagian aturan di file /etc/rsyslog.conf. Sebagai ganti nama file, gunakan alamat IP server rsyslog jarak jauh. Untuk menggunakan UDP, awali alamat IP dengan satu tanda @. Untuk menggunakan TCP, awali dengan dua tanda @ (@@).

Misalnya, agar semua pesan dengan info atau prioritas lebih tinggi dikirim ke loghost.example.com melalui UDP, gunakan baris berikut:

*.info @loghost.example.com

Agar semua pesan dikirim ke loghost.example.com melalui TCP, gunakan baris berikut:

*.*     @@loghost.example.com

Secara opsional, nama host log dapat ditambahkan dengan :PORT , di mana PORT adalah port yang digunakan server rsyslog jarak jauh. Jika tidak ada port yang diberikan, itu mengasumsikan port default 514 .

Setelah menambahkan aturan, restart layanan rsyslog dan kirim pesan pengujian menggunakan perintah logger:

[root@logclient ~]# logger "Test from logclient"

Periksa log di server jauh untuk memastikan pesan telah diterima.


Cent OS
  1. Instal xrdp Remote Desktop ke CentOS 6 / RHEL 6

  2. CentOS / RHEL 7 :Mengkonfigurasi NTP menggunakan chrony

  3. CentOS / RHEL 6,7 :Cara meningkatkan verbositas pesan log sistem (rsyslogd)

  1. Cara mengubah Direktori Log Default (/ var/log) di Rsyslog untuk CentOS/RHEL 6,7

  2. Cara Mengubah Izin Default /var/log/messages di CentOS/RHEL

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

  1. Cara mengirim Log Audit ke Server Rsyslog Jarak Jauh di CentOS/RHEL 6,7

  2. File Log Sistem /var/log/messages Dihapus atau Dipangkas Secara Otomatis (CentOS/RHEL)

  3. Cara Mengonfigurasi Rsyslog Jarak Jauh Untuk Menerima TLS dan Non-TLS di CentOS/RHEL