Saya menggunakan rsyslog untuk menyimpan log dari host jarak jauh ke server dengan cara ini:
Server:
# Logfile for each host
$template DynaFile,"/var/log/rsyslog/%HOSTNAME%.log"
*.* -?DynaFile
Klien:
*.* @servername
Ini membuat file log untuk setiap host klien di server /var/log/rsyslog/
tetapi mencatat setiap pesan juga ke server /var/log/syslog
. Jadi itu benar-benar membengkak. Bagaimana saya mencegahnya sehingga /var/log/syslog
hanya berisi pesan dari server itu sendiri?
/var/log/syslog
Jawaban:
Inilah yang bekerja untuk saya:
sumber
TempAuth
danTempMsg
?Saya telah mengerjakan ini banyak dan saya pikir saya telah menemukan solusi. Saya mendorong orang lain untuk mencoba ini dan mencari konsekuensi yang berpotensi merugikan. Saya menyarankan agar ini diimplementasikan pada lab / pengujian dan mesin tidak kritis terlebih dahulu.
4 baris di atas berada di bagian paling atas dari file /etc/rsyslog.conf saya
Saat ini saya sedang menonton 2 file log:
/var/log/net-hosts/10.1.1.1
dan / var / log / syslog
saat saya menonton keduanya, saya melihat log terisi ke dalam file host jarak jauh, namun tidak di syslog . Saya memulai ulang apache dan melihat entri log di syslog untuk tugas ini.
sumber
Anda harus memastikan bahwa aturan baru Anda dievaluasi sebelum aturan yang masuk ke / var / log / syslog.
Sebagai contoh pada Ubuntu Trusty (rsyslog 7.4.4) /etc/rsyslog.conf berisi
$IncludeConfig /etc/rsyslog.d/*.conf
sehingga aturan default diambil dari
/etc/rsyslog.d/50-default.conf
, termasuk untuk / var / log / syslog.Dalam hal ini Anda dapat menambahkan file baru untuk dimuat sebelum itu, seperti
00-remote.conf
. Untuk kelengkapan, berikut isinya untuk sistem yang saya kelola:sumber