Heute hat mir syslog-ng einen ziemlichen Streich gespielt, den ich länger nicht vergessen werde. Aufgrund einer Einstellung in der Config hat mir das Programm einen einzigen CPU Kern zu 100% ausgelastet, was ich jetzt persönlich nicht so prickelnd fand – vor allem da nirgendwo etwas in den Logs stand.
Es beginnt in der syslog-ng.conf, mit den Sourcen, wo man mitunter die Kernel-Meldungen abfangen kann, um sie mitzuschreiben. Im Normalfall sieht das so aus (Laut RedHat Beispiel):
source kernsrc { pipe(„/proc/kmsg“); };
Doch da liegt auch schon der Hund begraben, dass damit /proc/kmsg Read/Write also lesend und schreibend geöffnet wird, was uns oben genannte Probleme nebst anderen Nebeneffekten bringt. Korrekt sieht die Zeile so aus:
source kernsrc { file(„/proc/kmsg“); };
Und wieder einmal beweist sich: kaum macht man es richtig, funktioniert die Sache wie geschmiert…