Sammeln von Syslog-Datenquellen mit dem Log Analytics-Agent
Achtung
Dieser Artikel bezieht sich auf CentOS, eine Linux-Distribution, deren Dienstende (End-of-Life, EOL) ansteht. Sie sollten Ihre Nutzung entsprechend planen. Weitere Informationen finden Sie im CentOS End-of-Life-Leitfaden.
Syslog ist ein gängiges Protokoll zur Ereignisprotokollierung für Linux. Anwendungen senden Nachrichten, die auf dem lokalen Computer gespeichert oder an einen Syslog-Collector übermittelt werden können. Wenn der Log Analytics-Agent für Linux installiert ist, konfiguriert er den lokalen Syslog-Daemon zum Weiterleiten von Nachrichten an den Agent. Der Agent sendet die Nachrichten dann an Azure Monitor, wo ein entsprechender Datensatz erstellt wird.
Wichtig
Der ältere Log Analytics-Agent ist ab dem 31. August 2024 veraltet. Microsoft bietet keine Unterstützung mehr für den Log Analytics-Agent an. Wenn Sie den Log Analytics-Agent zum Erfassen von Daten in Azure Monitor verwenden, migrieren Sie jetzt zum Azure Monitor-Agent.
Hinweis
Azure Monitor unterstützt die Sammlung der von „rsyslog“ oder „syslog-ng“ gesendeten Nachrichten, wobei „rsyslog“ der Standarddaemon ist. Der Standard-Syslog-Daemon in Version 5 von Red Hat Enterprise Linux, CentOS und Oracle Linux-Version (sysklog) wird für die Syslog-Ereigniserfassung nicht unterstützt. Der rsyslog-Daemon sollte installiert und so konfiguriert werden, dass er sysklog ersetzt, um Syslog-Daten von dieser Version dieser Distributionen zu sammeln.
Die folgenden Einrichtungen werden mit dem Syslog-Sammler unterstützt:
- kern
- user
- daemon
- auth
- syslog
- lpr
- news
- uucp
- cron
- authpriv
- ftp
- local0-local7
Für jede andere Einrichtung konfigurieren Sie eine Datenquelle für benutzerdefinierte Protokolle in Azure Monitor.
Konfigurieren von Syslog
Der Log Analytics-Agent für Linux sammelt nur Ereignisse mit den Einrichtungen und Schweregraden, die in ihrer Konfiguration angegeben werden. Sie können Syslog über das Azure-Portal oder durch die Verwaltung von Konfigurationsdateien für die Linux-Agents konfigurieren.
Konfigurieren von Syslog im Azure-Portal
Sie konfigurieren Syslog über das Menü „Agent-Konfiguration“ für den Log Analytics-Arbeitsbereich. Diese Konfiguration wird in der Konfigurationsdatei für jeden Linux-Agent bereitgestellt.
Sie können eine neue Einrichtung hinzufügen, indem Sie Einrichtung hinzufügen auswählen. Für jede Einrichtung werden nur Ereignisse mit den ausgewählten Schweregraden gesammelt. Wählen Sie die Schweregrade für die jeweilige Einrichtung aus, aus der Sie Daten sammeln möchten. Sie können keine zusätzlichen Kriterien zum Filtern von Nachrichten bereitstellen.
Standardmäßig werden alle Konfigurationsänderungen automatisch per Push an alle Agents weitergegeben. Wenn Sie Syslog manuell auf jedem Linux-Agent konfigurieren möchten, deaktivieren Sie das Kontrollkästchen Nachstehende Konfiguration auf meine Computer anwenden.
Konfigurieren von Syslog auf dem Linux-Agent
Wenn der Log Analytics-Agent auf einem Linux-Client installiert ist, installiert er eine standardmäßige Syslog-Konfigurationsdatei, die Einrichtung und Schweregrad der gesammelten Nachrichten definiert. Sie können diese Datei ändern, um die Konfiguration zu ändern. Die Konfigurationsdatei unterscheidet sich je nach dem Syslog-Daemon, den der Client installiert hat.
Hinweis
Wenn Sie die Syslog-Konfiguration bearbeiten, müssen Sie den Syslog-Daemon neu starten, damit die Änderungen wirksam werden.
rsyslog
Die Konfigurationsdatei für rsyslog befindet sich unter /etc/rsyslog.d/95-omsagent.conf
. Ihr Standardinhalt wird im folgenden Beispiel gezeigt. Dieses Beispiel sammelt Syslog-Nachrichten, die der lokale Agent für alle Einrichtungen auf Warnungsebene oder höher gesendet hat.
kern.warning @127.0.0.1:25224
user.warning @127.0.0.1:25224
daemon.warning @127.0.0.1:25224
auth.warning @127.0.0.1:25224
syslog.warning @127.0.0.1:25224
uucp.warning @127.0.0.1:25224
authpriv.warning @127.0.0.1:25224
ftp.warning @127.0.0.1:25224
cron.warning @127.0.0.1:25224
local0.warning @127.0.0.1:25224
local1.warning @127.0.0.1:25224
local2.warning @127.0.0.1:25224
local3.warning @127.0.0.1:25224
local4.warning @127.0.0.1:25224
local5.warning @127.0.0.1:25224
local6.warning @127.0.0.1:25224
local7.warning @127.0.0.1:25224
Sie können eine Einrichtung entfernen, indem Sie ihren Abschnitt aus der Konfigurationsdatei entfernen. Sie können die Schweregrade, die für eine bestimmte Einrichtung gesammelt werden, durch Ändern des Eintrags dieser Einrichtung beschränken. Um etwa die Einrichtung „user“ auf Nachrichten mit mindestens Fehlerschweregrad zu begrenzen, ändern Sie diese Zeile der Konfigurationsdatei wie folgt:
user.error @127.0.0.1:25224
syslog-ng
Die Konfigurationsdatei für „syslog-ng“ befindet sich unter /etc/syslog-ng/syslog-ng.conf
. Ihr Standardinhalt wird im folgenden Beispiel gezeigt. Dieses Beispiel sammelt Syslog-Nachrichten, die der lokale Agent für alle Einrichtungen und alle Schweregrade gesendet hat.
#
# Warnings (except iptables) in one file:
#
destination warn { file("/var/log/warn" fsync(yes)); };
log { source(src); filter(f_warn); destination(warn); };
#OMS_Destination
destination d_oms { udp("127.0.0.1" port(25224)); };
#OMS_facility = auth
filter f_auth_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(auth); };
log { source(src); filter(f_auth_oms); destination(d_oms); };
#OMS_facility = authpriv
filter f_authpriv_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(authpriv); };
log { source(src); filter(f_authpriv_oms); destination(d_oms); };
#OMS_facility = cron
filter f_cron_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(cron); };
log { source(src); filter(f_cron_oms); destination(d_oms); };
#OMS_facility = daemon
filter f_daemon_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(daemon); };
log { source(src); filter(f_daemon_oms); destination(d_oms); };
#OMS_facility = kern
filter f_kern_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(kern); };
log { source(src); filter(f_kern_oms); destination(d_oms); };
#OMS_facility = local0
filter f_local0_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(local0); };
log { source(src); filter(f_local0_oms); destination(d_oms); };
#OMS_facility = local1
filter f_local1_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(local1); };
log { source(src); filter(f_local1_oms); destination(d_oms); };
#OMS_facility = mail
filter f_mail_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(mail); };
log { source(src); filter(f_mail_oms); destination(d_oms); };
#OMS_facility = syslog
filter f_syslog_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(syslog); };
log { source(src); filter(f_syslog_oms); destination(d_oms); };
#OMS_facility = user
filter f_user_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(user); };
log { source(src); filter(f_user_oms); destination(d_oms); };
Sie können eine Einrichtung entfernen, indem Sie ihren Abschnitt aus der Konfigurationsdatei entfernen. Sie können die Schweregrade, die für eine bestimmte Einrichtung gesammelt werden, beschränken, indem Sie sie aus deren Liste entfernen. Um etwa die Einrichtung „user“ auf kritische Nachrichten zu begrenzen, ändern Sie diesen Abschnitt der Konfigurationsdatei wie im folgenden Beispiel gezeigt:
#OMS_facility = user
filter f_user_oms { level(alert,crit) and facility(user); };
log { source(src); filter(f_user_oms); destination(d_oms); };
Sammeln von Daten von anderen Syslog-Ports
Der Log Analytics-Agent lauscht auf dem lokalen Client am Port 25224 auf Syslog-Nachrichten. Wenn der Agent installiert ist, wird eine Syslog-Standardkonfiguration angewendet, die an folgendem Speicherort verfügbar ist:
- Rsyslog:
/etc/rsyslog.d/95-omsagent.conf
- Syslog-ng:
/etc/syslog-ng/syslog-ng.conf
Sie können die Portnummer ändern, indem Sie zwei Konfigurationsdateien erstellen: eine FluentD-Konfigurationsdatei und eine rsyslog- oder syslog-ng-Konfigurationsdatei, abhängig vom installierten Syslog-Daemon.
Die FluentD-Konfigurationsdatei muss eine neue Datei im Verzeichnis
/etc/opt/microsoft/omsagent/conf/omsagent.d
sein. Ersetzen Sie dann den Wert im Eintragport
durch Ihre benutzerdefinierte Portnummer.<source> type syslog port %SYSLOG_PORT% bind 127.0.0.1 protocol_type udp tag oms.syslog </source> <filter oms.syslog.**> type filter_syslog
Für „rsyslog“ müssen Sie eine neue Konfigurationsdatei im Verzeichnis
/etc/rsyslog.d/
erstellen. Ersetzen Sie dann den Wert%SYSLOG_PORT%
durch Ihre benutzerdefinierte Portnummer.Hinweis
Wenn Sie diesen Wert in der Konfigurationsdatei
95-omsagent.conf
ändern, wird er überschrieben, wenn der Agent eine Standardkonfiguration anwendet.# OMS Syslog collection for workspace %WORKSPACE_ID% kern.warning @127.0.0.1:%SYSLOG_PORT% user.warning @127.0.0.1:%SYSLOG_PORT% daemon.warning @127.0.0.1:%SYSLOG_PORT% auth.warning @127.0.0.1:%SYSLOG_PORT%
Ändern Sie die syslog-ng-Konfiguration durch Kopieren der unten gezeigten Beispielkonfiguration und Hinzufügen der benutzerdefinierten geänderten Einstellungen am Ende der Konfigurationsdatei
syslog-ng.conf
im Verzeichnis/etc/syslog-ng/
. Verwenden Sie nicht die Standardbezeichnung%WORKSPACE_ID%_oms
oder%WORKSPACE_ID_OMS
. Definieren Sie eine benutzerdefinierte Bezeichnung, um die Änderungen kenntlich zu machen.Hinweis
Wenn Sie die Standardwerte in der Konfigurationsdatei ändern, werden sie überschrieben, wenn der Agent eine Standardkonfiguration anwendet.
filter f_custom_filter { level(warning) and facility(auth; }; destination d_custom_dest { udp("127.0.0.1" port(%SYSLOG_PORT%)); }; log { source(s_src); filter(f_custom_filter); destination(d_custom_dest); };
Nach Abschluss der Änderungen müssen Sie Syslog und den Log Analytics-Agent-Dienst neu starten, um sicherzustellen, dass die Konfigurationsänderungen wirksam werden.
Eigenschaften der Syslog-Datensätze
Syslog-Datensätze sind vom Typ Syslog und besitzen die in der folgenden Tabelle aufgeführten Eigenschaften:
Eigenschaft | BESCHREIBUNG |
---|---|
Computer | Computer, auf dem das Ereignis gesammelt wurde. |
Facility | Definiert den Teil des Systems, der die Meldung generiert hat. |
HostIP | IP-Adresse des Systems, das die Nachricht sendet. |
HostName | Name des Systems, das die Nachricht sendet. |
SeverityLevel | Schweregrad des Ereignisses. |
SyslogMessage | Text der Nachricht. |
ProcessID | ID des Prozesses, der die Meldung generiert hat. |
EventTime | Datum und Uhrzeit der Ereignisgenerierung. |
Protokollieren von Abfragen mit Syslog-Datensätzen
Die folgende Tabelle zeigt verschiedene Beispiele für Protokollabfragen, die Syslog-Protokolldatensätze abrufen.
Abfrage | BESCHREIBUNG |
---|---|
syslog | Alle Syslog-Datensätze |
Syslog | where SeverityLevel == "error" | Alle Syslog-Datensätze mit Fehlerschweregrad |
Syslog | summarize AggregatedValue = count() by Computer | Anzahl der Syslog-Datensätze je Computer |
Syslog | summarize AggregatedValue = count() by Facility | Anzahl der Syslog-Datensätze je Einrichtung |
Nächste Schritte
- Erfahren Sie mehr über Protokollabfragen zum Analysieren der aus Datenquellen und Lösungen gesammelten Daten.
- Verwenden Sie benutzerdefinierte Felder, um Daten aus Syslog-Datensätzen in einzelnen Feldern zu analysieren.
- Konfigurieren Sie Linux-Agents zum Sammeln anderer Datentypen.