PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Syslog-ng: Probleme mit dem match-Filter



simmerl
05.07.06, 09:46
Hallo,
ich habe einen zentralen Logserver (php-syslog-ng), zu dem alle Server ihre syslogs schicken. Das funktioniert soweit gut.

Naja.... fast zu gut :D
Ich bekomme viel zu viele Müll-Nachrichten - ein Beispiel:

Mein Netzwerkmonitor (Nagios) macht minütlich checks über eine remote ssh. Dabei wird jedesmal der
Austausch des Public Keys:

sshd[9746]: Accepted publickey for nagios from ::ffff:192.168.0.21 port 45689 ssh2
Session opening:

sshd[9748]: (pam_unix) session opened for user nagios by (uid=0)
Session closing:

sshd[9748]: (pam_unix) session closed for user nagios
geloggt.

Nachrichten dieser Art verursachen ein "Grundrauschen", in dem es mühsam ist, die interessanten Sachen zu "hören"....

Meine /etc/syslog-ng/syslog-ng.conf sieht im Moment so aus:

# all known message sources
source s_all {
internal();
unix-stream("/dev/log");
file("/proc/kmsg" log_prefix("kernel: "));
udp();
};
destination d_mysql {
pipe("/var/log/mysql.pipe"
template("INSERT INTO logs (host, facility, priority, level, tag, datetime, program, msg) VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL', '$TAG', '$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC',
'$PROGRAM', '$MSG' );\n") template-escape(yes));
};
log {
source(s_all);
# filter(f_XXXX);
destination(d_mysql);
};
filter f_XXXX { match(regex-Ausdruck, der bestimmte Nachrichten "blockt"); };


Ich bräuchte für den match-Filter eine regex, die ganz bestimmte Nachrichten rausfiltert. Könnt Ihr mir mit der Regex vielleicht helfen?

Danke!!

Simmerl

michael.sprick
05.07.06, 11:28
Wonach möchtest Du denn filtern?

evtl reicht schon sowas:



filter f_nagios {
match("^sshd.*nagios)
}

simmerl
05.07.06, 14:38
Hallo,
ich habs (besser gesagt mein Kollege) herausgefunden:

Wenn ich vor das "match" ein "not" setze, wird die Regexp als ganze verneint. Funktioniert perfekt!

Dankeschön trotzdem für Eure Antworten!

Simon