rsyslog filtrează conținutul mesajelor și facilitatea (Administrarea sistemului, Logare, Syslog, Rsyslog)

Kyle Brandt a intrebat.

Am găsit exemple de filtrare pe baza conținutului unei intrări de jurnal cu rsyslog. Dar există o modalitate de a face acest lucru astfel încât să se filtreze doar pe conținutul unei anumite facilități? De exemplu, ceva de genul:

if local0.* msg contains "foo"

Dar cu o sintaxă reală în loc de ceea ce tocmai am inventat.

1 răspunsuri
Aaron Copley

Va trebui să faci două filtre secvențiale, mai degrabă decât ambele pe o singură linie.

:msg, contains, "some-text"<br/>
if $syslogfacility-text == "facility" then /var/log/somelog.log<br/>
~

Editați:

Iau înapoi. Am văzut că se face în ambele moduri acum. Tocmai am găsit acest exemplu în rsyslog Wiki care ar trebui să poată fi adaptat.

if $programname == 'popa3d' and $syslogseverity <= '6' then /var/log/popa3d.log

Bineînțeles, veți înlocui condițiile dvs. în exemplu.

if $syslogfacility-text == 'local0' and $msg contains 'some-text' then /var/log/somelog.log<br/>
& ~

Wiki Rsyslog
Documente Rsyslog

Comentarii

  • Poți să-mi arăți un exemplu de funcționare a filtrelor secvențiale? Credeam că, în general, linia anterioară nu afectează liniile următoare decât dacă aveți & ~ –  > Por Kyle Brandt.
  • Tocmai mi-am editat postarea pentru a oferi câteva informații suplimentare. Când un mesaj este primit de rsyslog, acesta este procesat de sus în jos. Acesta va continua să fie procesat de reguli până când este eliminat sau nu mai corespunde. –  > Por Aaron Copley.
  • @AaronCopley: Am crezut că manualul este incomplet. În DOC-urile la care faceți legătura, titlurile sunt cu același font/style ca și legăturile către alte secțiuni. Așa că am crezut că acelea sunt rubrici care nu au fost încă completate … 😛 – -.  > Por Kyle Brandt.
  • Da, documentația pentru rsyslog este tristă. Nu doar pe site-ul lor, ci și pe întreaga rețea. Formatarea, completitudinea, consistența… etc. Se pare că rsyslog a trecut prin trei iterații de redezvoltare, iar versiunea și modul de compatibilitate pe care îl executați pot schimba drastic și sintaxa. –  > Por Aaron Copley.
  • @AaronCopley: Cu toate acestea, flexibilitatea sa pare a fi utilă pentru mine în acest moment. Mulțumesc pentru ajutor, am reușit să funcționeze. Singura modificare a fost că, în loc de somelog.log ~ la sfârșit am renunțat la ~ și am făcut un nou & ~ linie. Când nu am făcut asta, am avut un fișier numit somelog.log ~ 😉 –  > Por Kyle Brandt.