ich nutze rsyslog als zentralen Syslogserver und lasse diesen in eine MySQL Tabelle schreiben. Als Frontend nutze ich den LogAnalyzer.
Ich habe einige MySQL Tabellen, die ich unterschiedlich füllen lasse. D.h. z.B. eine für Switches, eine Für Windows Terminalserver, eine für Linux Server usw.
Die rsyslog-Filterregeln dafür sehen dann so aus:
Code: Alles auswählen
if \
$fromhost-ip == '10.4.1.251' or \
$fromhost-ip == '10.4.1.234' or \
$fromhost-ip == '10.4.1.250' or \
$fromhost-ip == '10.4.1.231' or \
$fromhost-ip == '10.4.1.49' or \
$fromhost-ip == '10.4.1.24' or \
$fromhost-ip == '10.2.1.46' or \
$fromhost-ip == '10.2.1.37' or \
$fromhost-ip == '10.4.1.241' or \
$fromhost-ip == '10.4.1.252' or \
$fromhost-ip == '192.168.200.115' \
then :ommysql:localhost,rsyslogdb,rsyslog,PASSWORT;TABELLENNAME
if \
$fromhost == 'server1' or \
$fromhost == 'server2' or \
$fromhost == 'server3' \
then :ommysql:localhost,rsyslogdb,rsyslog,PASSWORT;TABELLENNAME
Zwei Ansätze habe ich:
1. Die Filterregel anpassen und Ausschlüsse definieren
2. Der Notfallplan wäre ein MySQL Job und relativ hochfrequent unnötiges raus löschen lassen.
Was habe ich getestet?
Code: Alles auswählen
if \
(($fromhost-ip == '172.27.60.1') or \
($fromhost-ip == '172.27.19.1') or \
($fromhost-ip == '172.27.41.1')) and \
($msg !contains "scheduled daily restart") \
then :ommysql:localhost,rsyslogdb,rsyslog,PASSWORT;TABELLENNAME
Hat vielleicht jemand eine Idee bzw. Lösungsansatz für mich?
Was mich auch noch stört ist, dass auch alle Logs in /var/log/messages landet. Aber der rsyslog benötigt ja die Daten um sie weitergeben zu können. Keine Ahnung ob man das irgendwie eleganter lösen kann...
Danke für die Hilfe.
--
Marcel