Neben den gemeinsamen Systemeinrichtungen ( mail
, news
, daemon
, cron
usw.), syslog bietet eine Reihe von "lokalen" Einrichtungen, die Ziffern 0 bis 7: LOCAL0
, LOCAL1
, ..., LOCAL7
.
Welche sind Programmvorgaben für gängige Anwendungen?
Ich möchte herausfinden, welche Einrichtungen "traditionell" für bekannte Dienste verwendet werden. Ich werde eine Anwendung auf vielen Servern mit unterschiedlicher installierter Software bereitstellen und möchte sehen, ob es eine "kostenlose" Funktion gibt, die ich problemlos für meine eigenen Protokolle verwenden kann.
Als Hinweis stelle ich fest, dass es dafür andere Möglichkeiten gibt als eine Syslog-Einrichtung. Nur neugierig!
Hier sind ein paar (ein Anfang, um meine eigene Frage zu beantworten) und ein paar Dankeschöns an voretaq7:
LOCAL0
wird von postgresql verwendetLOCAL2
wird von sudo verwendetLOCAL3
wird von einigen Versionen von SpamAssassin verwendetLOCAL4
wird standardmäßig von slapd verwendet (OpenLDAP-Server)LOCAL5
wird manchmal vom Snort IDS verwendetLOCAL7
wird für Bootmeldungen unter Fedora 12 verwendet
Antworten:
Die
LOCALn
Einrichtungen stehen für jede lokale Verwendung zur Verfügung und können von Standort zu Standort sehr unterschiedlich sein.Ich garantiere, dass jede der 8 verfügbaren von etwas verwendet wird. Wenn Sie also Konflikte vermeiden möchten, ist es mein bester Rat, alle 7 in separaten Protokollen zu protokollieren und das auszuwählen, das anscheinend von nichts anderem verwendet wird.
Einige, die Sie verpasst haben (Standardeinstellungen des Programms - können lokal geändert werden, überprüfen Sie dies noch einmal):
LOCAL0
wird von postgresql verwendet (wenn konfiguriert, um sich bei syslog anzumelden)LOCAL2
wird von sudo verwendet (wenn konfiguriert, um sich bei syslog anzumelden)LOCAL3
wird von einigen Versionen von SpamAssassin verwendetmail
stattdessen anzumeldenLOCAL5
wird manchmal vom Snort IDS verwendetquelle
Für die Syslog-Funktionen LOCAL0-LOCAL7 gibt es keinen Standard. Sie können sich nicht darauf verlassen, dass sie von irgendetwas verwendet werden. Bestimmte Distributionen oder Organisationen haben möglicherweise ihre eigenen Konventionen, aber das hängt von der Distributions- oder Organisationspolitik ab, nicht von einem allgemeineren Standard.
Haben Sie alternativ in Betracht gezogen, Syslog-Tags zu verwenden? Tags sind frei formulierte Zeichenfolgen, die vor Protokollmeldungen eingefügt werden, um bestimmte Anwendungen oder Protokollkanäle zu identifizieren. Standardmäßig wird das Tag normalerweise aus dem Prozessnamen und der ID (z. B. 'httpd [2839]') gebildet, die die Protokolldaten generiert haben. Das Befehlszeilendienstprogramm 'logger' und die meisten Syslog-APIs unterstützen die Angabe der Tags, die Sie für Ihre Anwendungen verwenden möchten.
Ich persönlich verwende beispielsweise gerne 'http-access' für meine Apache-Webserver-Zugriffsprotokolle, die ich an Syslog sende, indem ich die Protokollausgabe von Apache an den Befehl 'logger -p local7.info -t' http-access 'weitergebe.
quelle
Die meisten syslog.conf-Dateien werden mit Platzhalter für die Nachrichtendatei (* .info) eingerichtet. Wenn dies nur ein Programm ist und keine ausgewachsene Kuh, sollten Sie sich wahrscheinlich nur in Nachrichten und nicht in einer eigenständigen Datei anmelden.
Wenn Sie sich für die Protokollierung in Ihrer eigenen Datei entscheiden, wird den Installationspaketen Ihrer Software ein Schritt nach der Installation hinzugefügt, der einen entsprechenden Eintrag in der Datei syslog.conf hinzufügt. Dies bedeutet auch, dass Sie, wenn Sie nett sind, einen Postinstall-Schritt hinzufügen würden, der auch eine entsprechende Logrotate-Datei erstellt.
quelle
Ich suchte auch nach einer Konfigurationsdatei wie syslog.conf, um die local0-7-Funktionen auf das Programm zu verweisen, das auf sie schreibt. Es scheint, dass eine solche Konfigurationsdatei nicht existiert. Um herauszufinden, welches Programm in das Protokoll schreibt, müssen Sie die Protokolldatei öffnen und den Programmnamen neben der Spalte neben dem Doppelpunkt suchen, zum Beispiel ... sendmail [22950]: ist für das Programm sendmail. Die Zahl in eckigen Klammern gibt die Portnummer an, die während der Ausführung des Programms verwendet wurde.
quelle