Raccogliere dati trap SNMP con l'agente di Monitoraggio di Azure

Simple Network Management Protocol (SNMP) è un protocollo di gestione ampiamente distribuito per il monitoraggio e la configurazione di dispositivi e appliance Linux. Questo articolo descrive come raccogliere dati trap SNMP e inviarli a un'area di lavoro Log Analytics usando l'agente di Monitoraggio di Azure.

È possibile raccogliere dati SNMP in due modi:

  • Sondaggi: il sistema di gestione esegue il polling di un agente SNMP per raccogliere valori per proprietà specifiche. I sondaggi vengono spesso usati per il rilevamento dell'integrità con stato e la raccolta di metriche delle prestazioni.
  • Trap: un agente SNMP inoltra eventi o notifiche a un sistema di gestione. I trap vengono usati principalmente come notifiche degli eventi.

L'agente di Monitoraggio di Azure non può raccogliere direttamente i dati SNMP, ma è possibile inviare questi dati a una delle origini dati seguenti che l'agente di Monitoraggio di Azure può raccogliere:

  • Syslog. I dati vengono archiviati nella tabella Syslog con gli altri dati syslog raccolti dall'agente di Monitoraggio di Azure.
  • File di testo. I dati vengono archiviati in una tabella personalizzata creata. Usando una trasformazione, è possibile analizzare i dati e archiviarli in un formato strutturato.

Diagramma che mostra la raccolta di dati SNMP inviandoli a Syslog o a un file di testo che viene quindi raccolto dall'agente di Monitoraggio di Azure.

Prerequisiti

  • Un'area di lavoro Log Analytics in cui si dispone almeno dei diritti di collaboratore.

  • File MIB (Management Information Base) per i dispositivi monitorati.

    SNMP identifica le proprietà monitorate usando i valori OID (Object Identifier), definiti e descritti nei file MIB forniti dal fornitore. Il fornitore del dispositivo fornisce in genere file MIB. Se non si dispone dei file MIB, è possibile trovare i file per molti fornitori su siti Web di terze parti. Alcuni fornitori mantengono un singolo MIB per tutti i dispositivi, mentre altri hanno centinaia di file MIB.

    Inserire tutti i file MIB per ogni dispositivo che invia trap SNMP in /usr/share/snmp/mibs, la directory predefinita per i file MIB. In questo modo è possibile registrare campi trap SNMP con nomi significativi anziché OID. Per caricare correttamente un file MIB, snmptrapd deve caricare tutti i MIB dipendenti. Assicurarsi di controllare il file di log snmptrapd dopo il caricamento di MIB per accertarsi che non ci siano dipendenze mancanti nell'analisi dei file MIB.

  • Un server Linux con un ricevitore trap SNMP.

    Questo articolo usa snmptrapd, un ricevitore trap SNMP dell'agente Net-SNMP, che la maggior parte delle distribuzioni Linux fornisce. Esistono tuttavia molti altri servizi ricevitori trap SNMP che è possibile usare. È importante che il ricevitore trap SNMP usato sia in grado di caricare i file MIB per l'ambiente in modo che le proprietà nel messaggio trap SNMP abbiano nomi significativi anziché OID.

    La procedura di configurazione snmptrapd può variare tra le distribuzioni linux. Per altre informazioni sulla configurazione di snmptrapd, incluse indicazioni sulla configurazione per l'autenticazione SNMP v3, vedere la documentazione di Net-SNMP.

Configurare le opzioni di log del ricevitore trap e il formato

Per configurare il ricevitore trap snmptrapd in un server Red Hat Enterprise Linux 7 o Oracle Linux 7:

  1. Installare e abilitare 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. Autorizzare le stringhe della community (stringhe di autenticazione SNMP v1 e v2) e definire il formato per le trap scritte nel file di log:

    1. Aprire snmptrapd.conf:

      sudo vi /etc/snmp/snmptrapd.conf  
      
    2. Aggiungere le righe seguenti al file snmptrapd.conf:

      # 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
      

      Nota

      snmptrapd registra sia trap che messaggi daemon, ad esempio l'arresto e l'avvio del servizio, nello stesso file di log. Nell'esempio precedente è stato definito il formato di log per iniziare con la parola "snmptrap" per semplificare il filtro degli snmptraps dal log in un secondo momento.

Configurare il ricevitore trap per inviare dati trap a syslog o file di testo

Per modificare la configurazione del comportamento di output di snmptrapd:

  1. Aprire il file /etc/snmp/snmptrapd.conf:

    sudo vi /etc/sysconfig/snmptrapd
    
  2. Configurare la destinazione di output, ad esempio nella configurazione di esempio seguente:

    # snmptrapd command line options
    # '-f' is implicitly added by snmptrapd systemd unit file
    # OPTIONS="-Lsd"
    OPTIONS="-m ALL -Ls2 -Lf /var/log/snmptrapd"
    

    Le opzioni in questa configurazione di esempio sono:

    • -m ALL - Carica tutti i file MIB nella directory predefinita.
    • -Ls2 - Genera trap in syslog, nella struttura Local2.
    • -Lf /var/log/snmptrapd - Registra trap nel file /var/log/snmptrapd.

Nota

Per altre informazioni su come impostare le opzioni di output e su come impostare le opzioni di formattazione, vedere la documentazione di Net-SNMP.

Raccogliere trap SNMP con l'agente di Monitoraggio di Azure

A seconda della posizione in cui sono stati inviati eventi SNMP, usare le indicazioni riportate di seguito per raccogliere i dati con l'agente di Monitoraggio di Azure:

Passaggi successivi

Altre informazioni su: