rsyslogd msg Filter

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
alexm
Beiträge: 43
Registriert: 03.06.2009 11:32:40

rsyslogd msg Filter

Beitrag von alexm » 18.06.2009 10:38:33

Hallo!

in lenny ist ja rsyslogd Standard. Soweit so gut.

Ich möchte Zeilen der folgenden Art:

Code: Alles auswählen

Jun 18 11:36:27 smet01 smbd_audit: user|192.168.0.1|p=/home/samba/homes/user|P=/home/user/....|S=user|close|ok|My Documents/desktop.ini
(momentan in /var/log/messages) umleiten nach /var/log/samba/audit.log

Mit dem Eintrag

Code: Alles auswählen

:msg,contains,"smbd_audit"	*.*	/var/log/samba/audit.log


als erste Regel in /etc/rsyslog.conf landen die Nachrichten aber immernoch in /var/log/messages und /var/log/samba/audit.log wird zwar erzeugt, bleibt aber leer.

Was mache ich falsch?

Viele Grüße, Alexander

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: rsyslogd msg Filter

Beitrag von rendegast » 18.06.2009 16:59:17

"smbd_audit" gehört nicht zu 'msg', sondern ist 'programname'?

Nachzulesen in 'man rsyslog.conf' :
Available Properties

msg
the MSG part of the message (aka "the message" ;))

rawmsg
the message exactly as it was received from the socket. Should be useful for debugging.

HOSTNAME
hostname from the message

FROMHOST
hostname of the system the message was received from (in a relay chain, this is the system immediately in front of us and not necessarily the original sender)

syslogtag
TAG from the message

programname
the "static" part of the tag, as defined by BSD syslogd. For example, when TAG is "named[12345]", programname is "named".

...
Möglicherweise muß bei /var/log/messages noch ein entsprechend negativer Filter eingesetzt werden.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

alexm
Beiträge: 43
Registriert: 03.06.2009 11:32:40

Re: rsyslogd msg Filter

Beitrag von alexm » 30.06.2009 08:21:28

programname hatte ich zwar noch nicht versucht, :syslogtag,contains jedoch - welches ja anhand der Doku auch funktionieren sollte.

Mich würde mal eine funktionierende Konfigurationsdatei mit so einem Filter nach Programmname interessieren. Auf der rsyslog Website gibt es zwar einige Beispiel-Konfigurationen, die gehen aber alle in eine andere Richtung.

Viele Grüße,
Alexander

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: rsyslogd msg Filter

Beitrag von rendegast » 05.07.2009 14:54:56

(Sorry, bin erst jetzt dazu gekommen)
Der Test läuft ohne Fehler durch?

Code: Alles auswählen

rsyslogd -c3 -f /etc/rsyslog.conf -N1
Der besteht nämlich darauf, daß formal das "*.*" hier

Code: Alles auswählen

:msg,contains,"smbd_audit"   *.*   /var/log/samba/audit.log
wegfällt:

Code: Alles auswählen

:msg,contains,"smbd_audit"   /var/log/samba/audit.log
oder
:programname,isequal,"smbd_audit"   /var/log/samba/audit.log
Das funktioniert,
steht so auch in der sample.conf von rsyslog-doc.






--------- 2 Beobachtungen ---------------------------------
/etc/rsyslog.d/lokal.conf :

Code: Alles auswählen

:msg,contains,"ein_dummy"   /var/log/LOKAL_msg.log
sollte eigentlich leer bleiben, trotzdem landen Meldungen darin:
rsyslogd: [origin software="rsyslogd" swVersion="3.22.0" x-pid="24580" x-info="http://www.rsyslog.com"] restart
rsyslogd: [origin software="rsyslogd" swVersion="3.22.0" x-pid="24580" x-info="http://www.rsyslog.com"] exiting on signal 15.
rsyslogd: [origin software="rsyslogd" swVersion="3.22.0" x-pid="25355" x-info="http://www.rsyslog.com"] restart
Vielleicht über '*.emerg *' ?
Jul 5 15:17:00 machine sudo: user1 : TTY=pts/4 ; PWD=/home/user1 ; USER=root ; COMMAND=/bin/echo
Das TAG hier besteht nur aus "sudo" (?),

Code: Alles auswählen

:syslogtag,isequal,"sudo"   /var/log/LOKAL_syslogtag.log
gibt aber keine Einträge, erst mit 'startswith' oder 'contains'.
Zuletzt geändert von rendegast am 20.07.2009 15:26:28, insgesamt 1-mal geändert.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

alexm
Beiträge: 43
Registriert: 03.06.2009 11:32:40

Re: rsyslogd msg Filter

Beitrag von alexm » 17.07.2009 15:02:28

Vielen Dank fuer deine Antwort!

Ich scheitere schon am ersten Befehl. rsyslogd kennt die Option -N3 zum Beispiel nicht.

Ich nutze lenny:

# aptitude show rsyslog
Package: rsyslog
State: installed
Automatically installed: no
Version: 3.18.6-4


Gruss, Alex

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: rsyslogd msg Filter

Beitrag von rendegast » 18.07.2009 20:36:52

rendegast hat geschrieben:rsyslogd -c3 -f /etc/rsyslog.conf -N1
rsyslogd kennt die Option -N3 zum Beispiel nicht.
"-N3" habe ich nicht geschrieben.
Ergänzend man-page lesen?


rendegast hat geschrieben:Der besteht nämlich darauf, daß formal das "*.*" hier

Code: Alles auswählen

    :msg,contains,"smbd_audit"   *.*   /var/log/samba/audit.log
wegfällt:

Code: Alles auswählen

    :msg,contains,"smbd_audit"   /var/log/samba/audit.log
    oder
    :programname,isequal,"smbd_audit"   /var/log/samba/audit.log
Das funktioniert,
steht so auch in der sample.conf von rsyslog-doc.
Ich dachte, damit würde es klar sein,
die Form der Anweisung mit dem "*.*" ist falsch, die Form ohne das "*.*" ist die richtige.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

alexm
Beiträge: 43
Registriert: 03.06.2009 11:32:40

Re: rsyslogd msg Filter

Beitrag von alexm » 20.07.2009 09:25:20

Hallo rendegast,

stimmt ... das -N3 hatte ich mir ausgedacht :) Mit -N1 funktioniert es aber auch nicht. Mein rsyslogd kennt einfach keine Option -N.
Man page habe ich rauf und runter gelesen. Mir war nicht so ganz klar, wieso du rsyslogd -c3 -f /etc/rsyslog.conf -N1 vorschlagen hast - vermutlich um auf Syntaxfehler zu pruefen?

"rsyslogd -c3 -f /etc/rsyslog.conf" erzeugt eine leere Ausgabe, fehler tritt keiner auf.

Code: Alles auswählen

host :~# rsyslogd -c3 -f /etc/rsyslog.conf; echo $?
0
Ich benutze jetzt folgende Zeile am Ende der .conf Datei: (EDIT: als erste Regel, direkt nach den Global Directives zeigt sich auch keine Veränderung)

Code: Alles auswählen

:msg,contains,"smbd_audit"	/var/log/samba/audit.log
Leider landet rein gar nichts in audit.log (erzeugt wird die Datei aber).

Ich habe das Gefühl ich stehe hier entweder völlig auf dem Schlauch oder mit meinem rsyslogd stimmt was nicht.

Gruss, Alexander

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: rsyslogd msg Filter

Beitrag von rendegast » 20.07.2009 15:23:35

vermutlich um auf Syntaxfehler zu pruefen?
Yepp, sorry,
habe auf einem testing/squeeze getestet, dessen rsyslog hat einen solchen Syntaxcheck.
Also ein neues Goodie.

Egal,
Leider landet rein gar nichts in audit.log (erzeugt wird die Datei aber).
das ist allerdings seltsam.
Was wäre mit der Kombination

Code: Alles auswählen

:programname,contains,"smbd_audit"   /var/log/samba/audit.log
Und von einem Positiv auszugehen, versuche irgendwelche Nachrichten gesteuert in diese Datei zu bekommen.
Vielleicht liegt in der Zeile ein nicht sichtbarer Schreibfehler/Steuerzeichen vor, was die Erkennung behindert?




----------------------
als erste Regel, direkt nach den Global Directives zeigt sich auch keine Veränderung
Eine Datei /etc/rsyslog.d/LOKAL.conf reicht aus.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

alexm
Beiträge: 43
Registriert: 03.06.2009 11:32:40

Re: rsyslogd msg Filter

Beitrag von alexm » 24.07.2009 13:48:31

:programname,contains,"smbd_audit" /var/log/samba/audit.log
:programname,contains,"smbd_audit" ~
Merkwuerdig... die o.a. Zeilen in /etc/rsyslog.d/local.conf bewirken genau was ich will. Keine Ahnung wieso das so ne schwere Geburt war.

Vielen Dank jedenfalls!

Gruss, Alex

Antworten