Überwachung von Linux-Protokolldateien in System Center Operations Manager
Hinweis
System Center Operations Manager unterstützt die FluentD-basierte Protokolldateiüberwachung bei der Einstellung des OMS-Agents, die für August 2024 geplant ist, nicht.
System Center Operations Manager verfügt jetzt über erweiterte Überwachungsfunktionen für Protokolldateien für Linux-Server mithilfe der neuesten Version des Agents, der Fluentd verwendet. Dieses Update bietet die folgenden Verbesserungen gegenüber der vorherigen Überwachung von Protokolldateien:
- Platzhalterzeichen im Protokolldateinamen und Pfad.
- Neue Übereinstimmungsmuster für die anpassbare Protokollsuche wie einfache Übereinstimmung, exklusive Übereinstimmung, korrelierte Übereinstimmung, wiederholte Korrelation und exklusive Korrelation.
- Unterstützung für generische Fluentd-Plug-Ins, die von der Fluentd-Community veröffentlicht werden.
Grundlegender Vorgang
Der grundlegende Betrieb der Protokolldateiüberwachung in Linux umfasst die folgenden Schritte:
- Datensatz wird in eine Anmeldung bei einem Linux-Agent geschrieben.
- Fluentd sammelt den Datensatz und erstellt ein Ereignis für die Musterübereinstimmung.
- Das Ereignis wird an den OMED-Dienst auf dem Managementserver gesendet und im System Center OMED Service Event Log auf dem Managementserver protokolliert. (Das System Center OMED Service Ereignisprotokoll wird nur erstellt, wenn ein Ereignis erfolgreich von einem Fluentd Agent gesendet wurde)
- Regeln und Monitore in einem benutzerdefinierten Management Pack sammeln Ereignisse und erstellen Warnungen in Operations Manager.
Übersicht über die Konfiguration
Für die Protokolldateiüberwachung sind die folgenden Schritte erforderlich. Detaillierte Informationen finden Sie in den folgenden Abschnitten:
- Importieren Sie das aktuelle System Center Operations Manager 2019 Linux Management Pack.
- Installieren Sie die neueste Version des Linux-Agents auf jedem Linux-Computer, um überwacht zu werden.
- Installieren Sie den neuesten OMSAgent auf jedem zu überwachenden Linux-Computer.
- Erstellen Sie die Fluentd-Konfigurationsdatei zum Sammeln von Protokollen.
- Kopieren Sie die Konfigurationsdatei in Linux-Agents.
- Erstellen Sie Regeln und Monitore mithilfe des Beispiel-Management Packs, um Ereignisse aus dem Protokoll zu sammeln und Warnungen zu erstellen.
- Importieren Sie das aktuelle System Center Operations Manager 2022 Linux Management Pack.
- Installieren Sie die neueste Version des Linux-Agents auf jedem Linux-Computer, um überwacht zu werden.
- Installieren Sie den neuesten OMSAgent auf jedem zu überwachenden Linux-Computer.
- Erstellen Sie die Fluentd-Konfigurationsdatei zum Sammeln von Protokollen.
- Kopieren Sie die Konfigurationsdatei in Linux-Agents.
- Erstellen Sie Regeln und Monitore mithilfe des Beispiel-Management Packs, um Ereignisse aus dem Protokoll zu sammeln und Warnungen zu erstellen.
Installieren des Protokollüberwachungs-Management Packs
Installieren Sie das Microsoft.Linux.Log.Monitoring Management Pack, um die Überwachung von Linux-Protokolldateien zu aktivieren.
Hinweis
Wenn Sie den OMS-Agenten konfiguriert haben und versuchen, den UNIX- und LINUX-Agenten über die Konsole zu deinstallieren, wird die OMS-Komponente nicht vom Agenten deinstalliert.
Konfigurieren der Überwachung von Linux-Protokolldateien
Führen Sie die folgenden Schritte aus, um die Überwachung von Linux-Protokolldateien zu konfigurieren:
Importieren Sie das aktuelle System Center Operations Manager 2019 Linux Management Pack mit dem Standardverfahren für die Installation eines Management Packs.
Installieren Sie den neuen Linux-Agenten auf den Linux-Servern manuell oder mit Hilfe des Discovery Wizard (/system-center/System Center Operations Manager/manage-deploy-crossplat-agent-console).
Installieren Sie den neuesten OMSAgent auf jedem Linux-Computer, den Sie überwachen möchten. Verwenden Sie die folgenden Befehle:
# Download latest OMS Agent from GitHub wget https://raw.githubusercontent.com/Microsoft/OMS-Agent-for-Linux/master/installer/scripts/onboard_agent.sh # Run onboarding script sh onboard_agent.sh
Führen Sie die folgenden Schritte für den Linux-Agenten durch:
Importieren Sie das aktuelle System Center Operations Manager 2022 Linux Management Pack unter Verwendung des Standardverfahrens für die Installation eines Management Packs.
Installieren Sie den neuen Linux-Agenten auf den Linux-Servern manuell oder mit Hilfe des Discovery Wizard (/system-center/System Center Operations Manager/manage-deploy-crossplat-agent-console).
Installieren Sie den neuesten OMSAgent auf jedem Linux-Computer, den Sie überwachen möchten. Verwenden Sie die folgenden Befehle:
# Download latest OMS Agent from GitHub wget https://raw.githubusercontent.com/Microsoft/OMS-Agent-for-Linux/master/installer/scripts/onboard_agent.sh # Run onboarding script sh onboard_agent.sh
Führen Sie die folgenden Schritte für den Linux-Agenten durch:
Erstellen Sie die Ordner in den folgenden Pfaden mit den folgenden Befehlen:
# Create omsagent.d folder mkdir -p /etc/opt/microsoft/omsagent/scom/conf/omsagent.d # Create certs folder mkdir /etc/opt/microsoft/omsagent/scom/certs # Create log folder mkdir -p /var/opt/microsoft/omsagent/scom/log # Create run folder mkdir /var/opt/microsoft/omsagent/scom/run # Create state folder mkdir /var/opt/microsoft/omsagent/scom/state # Create tmp folder mkdir /var/opt/microsoft/omsagent/scom/tmp # Create fluent-logging folder (used for log file position file, this location is flexible) mkdir -p /home/omsagent/fluent-logging
Setzen Sie das Eigentum für jeden der oben genannten Ordner auf
omsagent:omiusers
:# Change owner of System Center Operations Manager folder chown omsagent:omiusers /etc/opt/microsoft/omsagent/scom # Change owner of log folder chown omsagent:omiusers /var/opt/microsoft/omsagent/scom/log # Change owner of run folder chown omsagent:omiusers /var/opt/microsoft/omsagent/scom/run # Change owner of state folder chown omsagent:omiusers /var/opt/microsoft/omsagent/scom/state # Change owner of tmp folder chown omsagent:omiusers /var/opt/microsoft/omsagent/scom/tmp # Change owner of fluent-logging folder (used for log file position file, this location is flexible) chown omsagent:omiusers /home/omsagent/fluent-logging
Omsagent- und omsconfig-Dateien erstellen:
# Create omsadmin.conf file touch /etc/opt/microsoft/omsagent/scom/conf/omsadmin.conf # Create omsagent.conf file touch /etc/opt/microsoft/omsagent/scom/conf/omsagent.conf
Legen Sie den Besitz für jede der oben genannten Dateien auf:
omsagent:omiusers
# Change owner of omsadmin.conf file chown omsagent:omiusers /etc/opt/microsoft/omsagent/scom/conf/omsadmin.conf # Change owner of omsagent.conf file chown omsagent:omiusers /etc/opt/microsoft/omsagent/scom/conf/omsagent.conf
Bearbeiten Sie die Datei
/etc/opt/microsoft/omsagent/scom/conf/omsadmin.conf
, und fügen Sie die folgenden Informationen hinzu, nachdem Sie die hervorgehobenen Informationen geändert haben.WORKSPACE_ID=scom System Center Operations Manager_ENDPOINT=https://<mark>\<MSFQDN\></mark>:8886 MONITORING_ID={274F8D7B-DBCA-8FC3-1451-8DCD55092156}
Starten Sie den OMSAgent neu:
/opt/microsoft/omsagent/bin/service_control restart
Überprüfen Sie den Status im Omsagent-Protokoll:
tail -100 /var/opt/microsoft/omsagent/scom/log/omsagent.log
Aktivieren Sie den OMED-Dienst
Aktivieren Sie den OMED-Dienst auf jedem Verwaltungsserver im Ressourcenpool, und verwalten Sie die Linux-Agents.
Der OMED-Dienst sammelt Ereignisse von Fluentd und konvertiert sie in Operations Manager-Ereignisse. Sie importieren ein benutzerdefiniertes Management Pack, das Benachrichtigungen basierend auf den von den Linux-Servern empfangenen Ereignissen generieren kann.
Sie können den OMED-Dienst entweder über die Operations-Konsole oder manuell auf dem Verwaltungsserver oder Gatewayserver aktivieren.
- Gehen Sie in der Operations-Konsole zu Überwachung>Operations Manager>Management Server>Status des Management Servers.
- Wählen Sie den Verwaltungsserver im Status Verwaltungsserver.
- Wählen Sie unter Aufgaben die Option Integritätsdienst-Aufgaben>System Center-OMED-Server aktivieren.
OMED-Firewall-Regel hinzufügen
Um die OMED-Firewallregel zu aktivieren, haben Sie zwei Optionen: Fügen Sie den Port (TCP/8886) entweder automatisch über PowerShell oder manuell hinzu.
- Automatisches Hinzufügen einer Regel mit PowerShell
- Manuelles Hinzufügen einer Regel mit der Windows-Firewall
Führen Sie die folgenden Schritte aus, um automatisch eine Regel mit PowerShell hinzuzufügen:
Mit dem folgenden Befehl können Sie die Firewallregel automatisch hinzufügen:
Set-NetFirewallRule -DisplayName "System Center Operations Manager External DataSource Service" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 8886
Zuweisen eines Clientzertifikats für OMSAgent
Sie haben zwei Optionen beim Zuweisen des Clientzertifikats für OMSAgent.
- Verknüpfen Sie das signierte Zertifikat vom OMI-Agent.
- Generieren Sie ein Clientzertifikat manuell für den OMS-Agent.
Wählen Sie die gewünschte Registerkarte aus für Schritte, um zum signierten Zertifikat vom OMI-Agent aus zu verknüpfen oder ein Clientzertifikat manuell vom OMS-Agent aus zu generieren.
Setzen Sie den Besitz für die Dateien
omi.pem
undomikey.pem
aufomsagent:omiusers
:# Change owner of System Center Operations Manager-cert.pem file chown omsagent:omiusers /etc/opt/microsoft/omsagent/scom/certs/scom-cert.pem # Change owner of System Center Operations Manager-key.pem file chown omsagent:omiusers /etc/opt/microsoft/omsagent/scom/certs/scom-key.pem
Führen Sie auf Ihrem Linux-Computer den folgenden Befehl aus, um das OMS-Agent-Clientzertifikat auf das OMI-Zertifikat (Linux-Agent-Zertifikat für Operations Manager) festzulegen:
# Link file omi.pem to System Center Operations Manager-cert.pem ln -s /etc/opt/omi/ssl/omi.pem /etc/opt/microsoft/omsagent/scom/certs/scom-cert.pem # Link file omikey.pem to System Center Operations Manager-key.pem ln -s /etc/opt/omi/ssl/omikey.pem /etc/opt/microsoft/omsagent/scom/certs/scom-key.pem
Erstellen einer Fluentd-Konfigurationsdatei
Sie konfigurieren den Fluentd-Vorgang mithilfe einer Konfigurationsdatei. Um die Protokollüberwachung zu nutzen, müssen Sie eine Konfigurationsdatei erstellen. Die Konfigurationsdatei enthält Informationen wie den Namen, den Pfad und Filter der Quellprotokolldatei, um die zu sammelnden Daten zu definieren.
Die Fluentd-Masterkonfigurationsdatei omsagent.conf befindet sich in /etc/opt/microsoft/omsagent/scom/conf/
. Sie können dieser Datei direkt eine Überwachungskonfiguration für Protokolldateien hinzufügen, sollten aber eine separate Konfigurationsdatei erstellen, um die verschiedenen Einstellungen besser verwalten zu können. Über eine @include-Anweisung in der Masterdatei schließen Sie dann Ihre benutzerdefinierte Datei ein.
Wenn Sie beispielsweise logmonitoring.conf in /etc/opt/microsoft/omsagent/scom/conf/omsagent.d
erstellt haben, fügen Sie der Datei omsagent.d eine der folgenden Zeilen hinzu:
# Include all configuration files
@include omsagent.d/*.conf
oder
# Include single configuration file
@include omsagent.d/logmonitoring.conf
Weitere Informationen zu Fluentd-Konfigurationsdateien finden Sie in Syntax der Fluentd-Konfigurationsdatei.
In den folgenden Abschnitten werden Einstellungen in verschiedenen Anweisungen der Konfigurationsdatei beschrieben, die für die Überwachung von Protokolldateien eindeutig sind. Jede enthält Beispieleinstellungen, die Sie in eine Konfigurationsdatei einfügen und für Ihre Anforderungen ändern können.
Eine vollständige Beispielkonfigurationsdatei für die Protokollüberwachung ist verfügbar, die Sie überprüfen und auswerten können, bevor Sie eine eigene erstellen.
Quelle
Die Anweisung Quelle definiert die Quelle der Daten, die Sie sammeln, hier definieren Sie die Details Ihrer Protokolldatei. Fluentd nimmt jeden Datensatz auf, der in die Quelle geschrieben wurde, und sendet ein Ereignis für ihn in das Routingmodul von Fluentd. Geben Sie hier in dieser Anweisung ein Tag an. Das Tag ist eine Zeichenfolge, die als Anweisung für das interne Routingmodul von Fluentd zum Korrelieren verschiedener Anweisungen verwendet wird.
Das folgende Beispiel zeigt syslog-Datensätze, die von Operations Manager gesammelt und für die Verarbeitung markiert wurden.
<source>
# Specifies input plugin. Tail is a fluentd input plugin - http://docs.fluentd.org/v0.12/articles/in\_tail
type tail
# Specify the log file path. Supports wild cards.
path /var/log/syslog
# Recommended so that Fluentd will record the position it last read into this file.
pos_file /home/user1/fluent-test/demo_syslog.log.pos
# Used to correlate the directives.
tag System Center Operations Manager.log.syslog
format /(?<message>.*)/
</source>
Filter
Die filter-Anweisung weist dieselbe Syntax wie Match auf, ermöglicht aber eine komplexere Filterung der zu verarbeitenden Daten. Gesammelte Ereignisse müssen den Kriterien aller Filter entsprechen, damit sie der Ausgabe hinzugefügt werden.
Es gibt sechs Filter-Plug-Ins für die hier beschriebene Protokolldateiüberwachung. Verwenden Sie einen oder mehrere dieser Filter, um die Ereignisse zu definieren, die Sie aus Ihrer Protokolldatei sammeln möchten.
- Einfache Übereinstimmung: filter_System Center Operations Manager_simple_match
- Exklusive Übereinstimmung: filter_System Center Operations Manager_excl_match
- Wiederholte Korrelation: filter_System Center Operations Manager_repeated_cor
- Korrelierte Übereinstimmung: filter_System Center Operations Manager_cor_match
- Exklusive Korrelation: filter_System Center Operations Manager_excl_correlation
- Operations Manager-Konverter: filter_System Center Operations Manager_converter
Wählen Sie die erforderliche Registerkarte aus, um den Code für das entsprechende Filter-Plug-In zu kopieren:
- Einfache Übereinstimmung
- Exklusive Übereinstimmung
- Wiederholte Korrelation
- Korrelierte Übereinstimmung
- Exklusive Korrelation
- Operations Manager-Konverter
Akzeptiert bis zu 20 Eingabemuster. Sendet ein Ereignis an Operations Manager, wenn ein Muster übereinstimmt.
<filter tag>
type filter_System Center Operations Manager_simple_match
regexp1 <key> <pattern>
event_id1 <event ID>
regexp2 <key> <pattern>
event_id2 <event ID>
.
.
.
regexp20 <key> <pattern>
event_id20 <event ID>
</filter>
Übereinstimmung
Die Direktive Abgleich definiert, wie Ereignisse aus der Quelle mit übereinstimmenden Tags verarbeitet werden sollen. Nur Ereignisse mit einem tag, die dem Muster entsprechen, werden an das Ausgabeziel gesendet. Wenn mehrere Muster innerhalb eines Übereinstimmungs-tags aufgelistet werden, können Ereignisse mit einem der aufgelisteten Muster übereinstimmen. Der Parameter type gibt an, welche Art von Plug-In für diese Ereignisse verwendet werden soll.
In diesem Beispiel werden Ereignisse mit Tags verarbeitet, die mit System Center Operations Manager.log. ** und System Center Operations Manager.alert übereinstimmen (** passt auf null oder mehr Tag-Teile). Er spezifiziert das out_System Center Operations Manager-Plugin, das die Erfassung der Ereignisse durch das Operations Manager Management Pack ermöglicht.
<match System Center Operations Manager.log.** System Center Operations Manager.event>
# Output plugin to use
type out_System Center Operations Manager
log_level trace
num_threads 5
# Size of the buffer chunk. If the top chunk exceeds this limit or the time limit flush_interval, a new empty chunk is pushed to the top of the
queue and bottom chunk is written out.
buffer_chunk_limit 5m
flush_interval 15s
# Specifies the buffer plugin to use.
buffer_type file
# Specifies the file path for buffer. Fluentd must have write access to this directory.
buffer_path /var/opt/microsoft/omsagent/scom/state/out_System Center Operations Manager_common*.buffer
# If queue length exceeds the specified limit, events are rejected.
buffer_queue_limit 10
# Control the buffer behavior when the queue becomes full: exception, block, drop_oldest_chunk
buffer_queue_full_action drop_oldest_chunk
# Number of times Fluentd will attempt to write the chunk if it fails.
retry_limit 10
# If the bottom chunk fails to be written out, it will remain in the queue and Fluentd will retry after waiting retry_wait seconds
retry_wait 30s
# The retry wait time doubles each time until max_retry_wait.
max_retry_wait 9m
</match>
Hinweis
Um die Serverauthentifizierung auf den Linux-Computern zu deaktivieren, auf denen die Fluentd-Kommunikation verwendet wird, fügen Sie dem Operations Manager-Plug-In für Fluentd den Parameter enable_server_auth false hinzu. Beispiel:
<match System Center Operations Manager.log.** System Center Operations Manager.event>
type out_System Center Operations Manager
max_retry_wait 9m
enable_server_auth false
</match>
Kopieren der Konfigurationsdatei in den Agenten
Die Fluentd-Konfigurationsdatei muss auf allen Linux-Computern, die überwacht werden sollen, in das Verzeichnis /etc/opt/microsoft/omsagent/scom/conf/omsagent.d kopiert werden. Sie müssen auch eine @include-Richtlinie in die Master-Konfigurationsdatei einfügen, wie oben beschrieben.
Starten Sie omsagent neu
Sie können den OMSagent mit dem folgenden Befehl neu starten:
/opt/microsoft/omsagent/bin/service_control restart
Überprüfen des Systemstatus von Center Operations Manager-Arbeitsbereich
Führen Sie den folgenden Befehl aus, um den System Center Operations Manager-Arbeitsbereich im OMSAgent zu überprüfen:
sh /opt/microsoft/omsagent/bin/omsadmin.sh -l
Hinweis
Stellen Sie auf dem Verwaltungsserver, auf dem der OMED-Dienst ausgeführt wird, sicher, dass die Firewall an Port 8886 geöffnet ist und dass der Zertifizierungsspeicher der Zwischenzertifizierungsstellen nur Zwischenzertifizierungsstellen enthält.
Ereignisprotokoll für System Center Operations Manager External DataSource Service
Das System Center OMED Service-Ereignisprotokoll wird nur erstellt, wenn ein Ereignis erfolgreich an den System Center Operations Manager External DataSource Service (OMED) Service gesendet wurde.
Erstellen von Regeln und Monitoren
Das Linux Management Pack bietet keine Module zum Sammeln von Ereignissen von FluentD, das Linux Management Pack wird mit dem Linux-Agent gebündelt. Es ist das Fluentd-Modul im Linux-Agent und der OMED-Dienst auf dem Verwaltungs- und Gatewayserver, das die Funktionen für die erweiterte Überwachung von Protokolldateien bereitstellt.
Sie müssen Ihr eigenes Verwaltungspaket mit benutzerdefinierten Regeln und Monitoren erstellen, die das Modul Microsoft.Linux.OMED.EventDataSource verwenden, um die Ereignisse von Fluentd zu sammeln. Beachten Sie, dass der Computername im Ereignisprotokoll, das über den System Center OMED Service gesendet wird, mit dem Namen des Rechners in Ihrer UNIX/Linux-Computeransicht übereinstimmen muss. Wenn der Computername nicht mit dem Namen übereinstimmt, erhalten Sie keine Warnung.
In der folgenden Tabelle sind die Parameter der Microsoft.Linux.OMED.EventDataSource aufgeführt.
Parameter | Typ | Beschreibung |
---|---|---|
ComputerName | String | Erforderlich. Gibt den Namen des Linux-Computers an, für den Ereignisse gelesen werden sollen. Der Parameter ComputerName wird meist mit der Notation $Target an das Modul übergeben, obwohl er als beliebige Zeichenfolge angegeben werden kann. Dieses Modul versucht, vom angegebenen Linux-Computer generierte Ereignisse zu lesen. |
ManagedEntityId | String | Erforderlich. Gibt die verwaltete Entitäts-ID der überwachten Entität an. Der Parameter ManagedEntityId wird am häufigsten mithilfe von $Target\Id$ an das Modul übergeben. |
EventNumber | Ganzzahl | Optional. Gibt die Ereignisnummer des abzurufenden Ereignisses an. Wenn diese Option weggelassen wird, gibt das Modul alle Ereignisse zurück, die für diesen Computer und diese verwaltete Einheit erzeugt wurden |
Nächste Schritte
Um eine benutzerdefinierte Ansicht zu erstellen, um die Überwachungsdaten aus Ihrem benutzerdefinierten Protokolldateiverwaltungspaket zu überprüfen, lesen Sie Verwenden von Ansichten in Operations Manager.
Um zu erfahren, wie Sie Probleme untersuchen können, die von Ihrem benutzerdefinierten Protokolldateiverwaltungspaket identifiziert wurden, lesen Sie Aktive Warnungen und Details anzeigen.