Neue Syslog-Funktion hinzufügen

27

Ich möchte Syslog verwenden, um Nachrichten von meiner PHP-basierten Site zu protokollieren. Meine Frage lautet: Kann ich einen benutzerdefinierten Einrichtungsnamen hinzufügen? Ich weiß, dass es vordefinierte Einrichtungen gibt wie:

auth, authpriv, cron, dæmon, kern, lpr, mail, mark, news, syslog, user, UUCP and local0 through local7.

Und soweit ich weiß, könnte ich dafür local0 - local6-Einrichtungen verwenden.

Aber ich habe das Gefühl, wenn ich so etwas zu syslog hinzufügen könnte:

mySiteName.* /var/log/mySiteName.log

Es wäre für andere visuell leichter zu verstehen. Leider führt die Überweisung zu:

rsyslogd-3000: unknown facility name "mySiteName"

Gibt es eine Möglichkeit, einen benutzerdefinierten Einrichtungsnamen zu verwenden?

Stann
quelle

Antworten:

27

Die Syslog- Schnittstelle erlaubt nur einen festen Satz von Einrichtungen, die durch Konstanten in definiert sind /usr/include/sys/syslog.h. Die einzige Bestimmung für benutzerdefinierte Einrichtungen ist local0durch local7.

Um die Protokolle verschiedener Server zu trennen, können Sie Filter verwenden, um den Ursprung oder den Text jeder Protokollnachricht abzugleichen. Rsyslog verfügt über ziemlich leistungsfähige Filter (lesen Sie die Eigenschaften, die für den Abgleich verfügbar sind ).

Gilles 'SO - hör auf böse zu sein'
quelle
7

Nicht genau auf die Frage zutreffend, aber hoffentlich nützliches Beispiel für Daemons, die keine eigene Einrichtung bereitstellen:

:programname, isequal, "uptimed" /var/log/uptimed.log
eMPee584
quelle
2
Auf welche Syslog-Implementierung beziehen Sie sich? (Oder ist das Standard?)
Sr_
1
Das Hinzufügen dieser Zeile zu /etc/rsyslog.conf funktionierte mit rsyslogd 8.4.2
ztk