Freigeben über


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.

Diagramm, das die Sammlung von SNMP-Daten zeigt, indem sie an Syslog oder eine Textdatei gesendet wird, die dann vom Azure Monitor-Agent erfasst wird.

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:

  1. 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
    
  2. Autorisieren Sie Community Strings (SNMPv1- und SNMPv2-Authentifizierungszeichenfolgen), und definieren Sie das Format für die in die Protokolldatei geschriebenen Traps:

    1. Öffnen Sie snmptrapd.conf:

      sudo vi /etc/snmp/snmptrapd.conf  
      
    2. 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“:

  1. Öffnen Sie die Datei /etc/snmp/snmptrapd.conf:

    sudo vi /etc/sysconfig/snmptrapd
    
  2. 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:

Nächste Schritte

Weitere Informationen: