Syslog-ng "Unique Persist Names"

Ich bevorzuge ein separates Logfile /var/log/mail für Mail, damit die Logs von Postfix und Dovecot nicht in /var/log/message untergehen. Beim Upgrade auf Version 3.13.2 von syslog-ng hatte ich plötzlich eine Fehlermeldung, die einen Start des Daemons verhinderte:

# /etc/init.d/syslog-ng start
 * Checking your configfile (/etc/syslog-ng/syslog-ng.conf) ...           [ ok ]
 * Starting syslog-ng ...
[2018-08-09T12:43:05.358947] Error checking the uniqueness of the persist names, please override it with persist-name option. Shutting down.; persist_name='affile_dd_writers(/var/log/mail)', location='/etc/syslog-ng/mail.conf:6:9'
[2018-08-09T12:43:05.358991] Error checking the uniqueness of the persist names, please override it with persist-name option. Shutting down.; persist_name='affile_dd_writers(/var/log/mail)', location='/etc/syslog-ng/mail.conf:9:9'
[2018-08-09T12:43:05.359006] Error checking the uniqueness of the persist names, please override it with persist-name option. Shutting down.; persist_name='affile_dd_writers(/var/log/mail)', location='/etc/syslog-ng/mail.conf:13:9'
 * start-stop-daemon: failed to start `/usr/sbin/syslog-ng'
 * Failed to start syslog-ng                                              [ !! ]
 * ERROR: syslog-ng failed to start

Die Konfiguration für das separate Mail-Logfile wird in der Hauptkonfigurationsdatei /etc/syslog-ng/syslog-ng.conf durch eine zusätzliche Direkte am Ende der Datei eingebunden:

@include "mail.conf" 

Der relevante Ausschnitt aus /etc/syslog-ng/mail.conf, über den syslog-ng meckerte, sah so aus:

destination mail {
        file("/var/log/mail");
};

destination mailinfo {
        file("/var/log/mail");
};
destination mailwarn {
        file("/var/log/mail");
};

destination mailerr {
        file("/var/log/mail");
};

Das Problem ist, dass alle vier Destinationen in die gleiche Datei /var/log/mail gehen, wodurch syslog-ng offensichtlich durcheinander kommt.

Beim Suchen nach der Fehlermeldung stieß ich auf https://github.com/balabit/syslog-ng/issues/1275, wo auch gezeigt wurde, wie die in der Fehlermeldung empfohlene Option persist-name verwendet wird. Leider passte das aber nicht zu meiner Konfiguration. Dennoch ist die Lösung simpel. Für alle Fälle poste ich hier die komplette, jetzt funktionierende Konfigurationsdatei /etc/syslog-ng/mail.conf:

destination mail {
        file("/var/log/mail" persist-name("mail"));
};

destination mailinfo {
        file("/var/log/mail" persist-name("mailinfo"));
};
destination mailwarn {
        file("/var/log/mail" persist-name("mailwarn"));
};

destination mailerr {
        file("/var/log/mail" persist-name("mailerr"));
};

filter f_mail {
        facility(mail);
};

filter f_info {
        level(info);
};
filter f_warn {
        level(warn);
};

filter f_err {
        level(err);
};

log {
        source(src);
        filter(f_mail);
        destination(mail);
        flags(final);
};

log {
        source(src);
        filter(f_mail);
        filter(f_info);
        destination(mailinfo);
        flags(final);
};

log {
        source(src);
        filter(f_mail);
        filter(f_warn);
        destination(mailwarn);
        flags(final);
};

log {
        source(src);
        filter(f_mail);
        filter(f_err);
        destination(mailerr);
        flags(final);
};

Nochmal: Das ist nicht die vollständige Konfiguration für syslog-ng, sondern lediglich der mail-spezifische Teil in /etc/syslog-ng/mail.conf der mit @include "mail.conf" in /etc/syslog-ng/syslog-ng.conf eingebunden wird!

Leave a comment
Diese Website verwendet Cookies und ähnliche Technologien, um gewisse Funktionalität zu ermöglichen, die Benutzbarkeit zu erhöhen und Inhalt entsprechend ihren Interessen zu liefern. Über die technisch notwendigen Cookies hinaus können abhängig von ihrem Zweck Analyse- und Marketing-Cookies zum Einsatz kommen. Sie können ihre Zustimmung zu den vorher erwähnten Cookies erklären, indem sie auf "Zustimmen und weiter" klicken. Hier können sie Detaileinstellungen vornehmen oder ihre Zustimmung - auch teilweise - mit Wirkung für die Zukunft zurücknehmen. Für weitere Informationen lesen sie bitte unsere Datenschutzerklärung.