Cegah rsyslog dari logging pesan host jarak jauh ke local / var / log / syslog

8

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/sysloghanya berisi pesan dari server itu sendiri?

Michael
sumber
1
Anda akan ingin melihat filter berbasis properti karena HOSTNAME adalah salah satu bidang syslog. Anda pada dasarnya ingin mengubahnya sehingga hanya memilih /var/log/syslog
lognya

Jawaban:

2

Inilah yang bekerja untuk saya:

## For accepting syslog info from remote hosts
$template TempAuth, "/var/log/infosys/%HOSTNAME%/%PROGRAMNAME%.log"
$template TempMsg,  "/var/log/infosys/%HOSTNAME%/%PROGRAMNAME%.log"

if ($fromhost-ip != "127.0.0.1" ) then ?TempAuth
& ~
if ($fromhost-ip != "127.0.0.1" ) then  ?TempMsg
& ~
Tamu
sumber
Mengapa ada duplikasi antara TempAuth dan TempMsg?
vdboor
0

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.

$template PerHostLog,"/var/log/net-hosts/%fromhost-ip%/%fromhost-ip%.log"
$template RemoteHostFileFormat,"%TIMESTAMP% %fromhost-ip% %syslogfacility-text% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::space-cc,drop-last-lf%\n”
:inputname, isequal, "imudp" ?PerHostLog;RemoteHostFileFormat
:fromhost-ip , !isequal , "127.0.0.1" stop

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.

parsecpython
sumber
Terima kasih telah menguji. Tetapi itu tidak berhasil untuk saya. Itu masih mencatat semuanya ke server / var / log / syslog
Michael
0

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:

$template RemoteStore, "/var/log/remote/%HOSTNAME%/%timegenerated:1:10:date-rfc3339%"
:source,isequal,"NAS",-?RemoteStore
& ~
Joril
sumber