Sammeln von SNMP-Trapdaten mit Azure Monitor-Agent
Das Simple Network Management-Protokoll (SNMP) ist ein weit verbreitetes Verwaltungsprotokoll zum Überwachen und Konfigurieren von Linux-Geräten und -Appliances. In diesem Artikel wird beschrieben, wie SIE SNMP-Trapdaten sammeln und mithilfe von Azure Monitor Agent an einen Log Analytics-Arbeitsbereich senden.
Sie können SNMP-Daten auf zwei Arten sammeln:
- Abfragen: Das Verwaltungssystem fragt einen SNMP-Agent ab, um Werte für bestimmte Eigenschaften zu sammeln. Umfragen werden am häufigsten für zustandsbehaftete Integritätserkennung und das Sammeln von Leistungsmetriken verwendet.
- Traps: Ein SNMP-Agent leitet Ereignisse oder Benachrichtigungen an ein Verwaltungssystem weiter. Traps werden am häufigsten als Ereignisbenachrichtigungen verwendet.
Der Azure Monitor-Agent kann keine SNMP-Daten direkt sammeln, Sie können diese Daten jedoch an eine der folgenden Datenquellen senden, die der Azure Monitor-Agent sammeln kann:
- Syslog: Die Daten werden in der
Syslog
Tabelle mit Ihren anderen syslog-Daten gespeichert, die vom Azure Monitor-Agent gesammelt werden. - Textdatei. Die Daten werden in einer benutzerdefinierten Tabelle gespeichert, die Sie erstellen. Mithilfe einer Transformation können Sie die Daten analysieren und in einem strukturierten Format speichern.
Voraussetzungen
Einen Log Analytics-Arbeitsbereich, in dem Sie mindestens über Berechtigungen als Mitwirkender verfügen.
MIB-Dateien (Management Information Base) für die Geräte, die Sie überwachen
SNMP identifiziert überwachte Eigenschaften mithilfe von Objektbezeichnerwerten (Object Identifier, OID), die in MIB-Dateien definiert und beschrieben sind, die vom Hersteller bereitgestellt werden. Der Gerätehersteller stellt in der Regel MIB-Dateien bereit. Wenn Sie nicht über die MIB-Dateien verfügen, finden Sie die Dateien für viele Hersteller auf Websites von Drittanbietern. Einige Hersteller verwenden eine einzelne MIB für alle Geräte, während andere Hunderte von MIB-Dateien haben.
Platzieren Sie alle MIB-Dateien für jedes Gerät, das SNMP-Traps sendet, in
/usr/share/snmp/mibs
, dem Standardverzeichnis für MIB-Dateien. Dadurch können Sie SNMP-Trapfelder anstelle von OIDs mit aussagekräftigen Namen protokollieren. Damit eine MIB-Datei ordnungsgemäß geladen wird, muss „snmptrapd“ alle abhängigen MIBs laden. Überprüfen Sie nach dem Laden von MIB-Dateien unbedingt die snmptrapd-Protokolldatei, um sicherzustellen, dass beim Analysieren Ihrer MIB-Dateien keine Abhängigkeiten fehlen.Einen Linux-Server mit einem SNMP-Trapempfänger
In diesem Artikel verwenden wir snmptrapd, einen SNMP-Trapempfänger des Net-SNMP-Agents, den die meisten Linux-Distributionen bereitstellen. Es gibt jedoch viele weitere SNMP-Trapempfängerdienste, die Sie verwenden können. Es ist wichtig, dass der von Ihnen verwendete SNMP-Trapempfänger MIB-Dateien für Ihre Umgebung laden kann, sodass die Eigenschaften in der SNMP-Trapnachricht aussagekräftige Namen anstelle von OIDs haben.
Die snmptrapd-Konfigurationsprozedur kann je nach Linux-Distribution variieren. Weitere Informationen zur snmptrapd-Konfiguration, einschließlich eines Leitfadens zum Konfigurieren der SNMPv3-Authentifizierung, finden Sie in der Net-SNMP-Dokumentation.
Einrichten der Protokolloptionen und des Formats des Trapempfängers
So richten Sie den snmptrapd-Trapempfänger auf einem Red Hat Enterprise Linux 7- oder Oracle Linux 7-Server ein:
Installieren und aktivieren Sie „snmptrapd“:
#Install the SNMP agent sudo yum install net-snmp #Enable the service sudo systemctl enable snmptrapd #Allow UDP 162 through the firewall sudo firewall-cmd --zone=public --add-port=162/udp --permanent
Autorisieren Sie Community Strings (SNMPv1- und SNMPv2-Authentifizierungszeichenfolgen), und definieren Sie das Format für die in die Protokolldatei geschriebenen Traps:
Öffnen Sie
snmptrapd.conf
:sudo vi /etc/snmp/snmptrapd.conf
Fügen Sie Ihrer Datei
snmptrapd.conf
die folgenden Zeilen hinzu:# Allow all traps for all OIDs, from all sources, with a community string of public authCommunity log,execute,net public # Format logs for collection by Azure Monitor Agent format2 snmptrap %a %B %y/%m/%l %h:%j:%k %N %W %q %T %W %v \n
Hinweis
„snmptrapd“ protokolliert sowohl Traps als auch Daemonnachrichten (z. B. Beenden und Starten des Diensts) in derselben Protokolldatei. Im obigen Beispiel wurde das Protokollformat so definiert, dass es mit dem Wort „snmptrap“ beginnt, damit das Protokoll später einfach nach SNMP-Traps gefiltert werden kann.
Konfigurieren des Trapempfängers zum Senden von Trapdaten an Syslog oder eine Textdatei
So bearbeiten Sie die Konfiguration des Ausgabeverhaltens von „snmptrapd“:
Öffnen Sie die Datei
/etc/snmp/snmptrapd.conf
:sudo vi /etc/sysconfig/snmptrapd
Konfigurieren Sie das Ausgabeziel, z. B. in der folgenden Beispielkonfiguration:
# snmptrapd command line options # '-f' is implicitly added by snmptrapd systemd unit file # OPTIONS="-Lsd" OPTIONS="-m ALL -Ls2 -Lf /var/log/snmptrapd"
In dieser Beispielkonfiguration werden folgende Optionen verwendet:
-m ALL
: Alle MIB-Dateien im Standardverzeichnis laden-Ls2
: Traps an Syslog, an die Facility „Local2“, ausgeben-Lf /var/log/snmptrapd
: Traps in der Datei/var/log/snmptrapd
protokollieren
Hinweis
Weitere Informationen zum Festlegen von Ausgabeoptionen und Festlegen von Formatierungsoptionen finden Sie in der Net-SNMP-Dokumentation.
Sammeln von SNMP-Traps mithilfe von Azure Monitor-Agent
Je nachdem, wo Sie SNMP-Ereignisse gesendet haben, verwenden Sie die Anleitungen in einer der folgenden Informationen, um die Daten mit Azure Monitor Agent zu sammeln:
- Sammeln von Syslog-Ereignissen mit dem Azure Monitor-Agent
- Sammeln von Protokollen aus einer Text- oder JSON-Datei mit dem Azure Monitor-Agent
Nächste Schritte
Weitere Informationen: