Teilen über


Sammeln von SNMP-Trapdaten mit Azure Monitor-Agent

Achtung

Dieser Artikel bezieht sich auf CentOS, eine Linux-Distribution, die sich dem End-of-Life-Status (EOL) nähert. Sie sollten Ihre Nutzung entsprechend planen. Weitere Informationen finden Sie im CentOS End-of-Life-Leitfaden.

Das Simple Network Management-Protokoll (SNMP) ist ein weit verbreitetes Verwaltungsprotokoll zum Überwachen und Konfigurieren von Linux-Geräten und -Appliances.

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.
  • Traps: Ein SNMP-Agent leitet Ereignisse oder Benachrichtigungen an ein Verwaltungssystem weiter.

Traps werden meist als Ereignisbenachrichtigungen verwendet, während Abfragen besser geeignet sind für die zustandsbehaftete Integritätserkennung und das Sammeln von Leistungsmetriken.

Sie können Azure Monitor-Agent verwenden, um SNMP-Traps als Syslog-Ereignisse oder als in einer Textdatei protokollierte Ereignisse zu sammeln.

In diesem Tutorial lernen Sie Folgendes:

  • Einrichten der Protokolloptionen und des Formats des Trapempfängers
  • Konfigurieren des Trapempfängers zum Senden von Traps an Syslog oder eine Textdatei
  • Sammeln von SNMP-Traps mithilfe von Azure Monitor-Agent

Voraussetzungen

Für dieses Tutorial benötigen Sie Folgendes:

  • 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.

    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.

    Einige Hersteller verwenden eine einzelne MIB für alle Geräte, während andere Hunderte von MIB-Dateien haben. 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.

    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.

    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.

Einrichten der Protokolloptionen und des Formats des Trapempfängers

So richten Sie den snmptrapd-Trapempfänger auf einem CentOS 7-, Red Hat Enterprise Linux 7- und 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

„snmptrapd“ kann SNMP-Traps auf zwei Arten an Azure Monitor-Agent senden:

  • Weiterleiten eingehender Traps an das Syslog-Protokoll, das Sie als Datenquelle für Azure Monitor-Agent festlegen können.

  • Schreiben der Syslog-Nachrichten in eine Datei, die Azure Monitor-Agent fragmentieren und analysieren kann. Mit dieser Option können Sie die SNMP-Traps als neuen Datentyp senden, anstatt sie als Syslog-Ereignisse zu senden.

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.

    Hier sehen Sie eine 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

Wenn Sie „snmptrapd“ zum Senden von Ereignissen an Syslog konfiguriert haben, führen Sie die Schritte unter Sammeln von Ereignissen und Leistungsindikatoren mit Azure Monitor-Agent aus. Achten Sie darauf, Linux-Syslog als Datenquelle auszuwählen, wenn Sie die Datensammlungsregel für Azure Monitor-Agent definieren.

Wenn Sie „snmptrapd“ zum Schreiben von Ereignissen in eine Datei konfiguriert haben, befolgen Sie die Schritte unter Sammeln von Textprotokollen mit Azure Monitor-Agent.

Nächste Schritte

Weitere Informationen: