Perché SNMP è rotto?


28

Versione di Ubuntu: Ubuntu 14.04.1 LTS

Versione SNMP: 5.7.2

Problema breve: molte voci nel file di configurazione "predefinito" sono interrotte. Il che non importa davvero perché non riesco nemmeno ad avviare SNMP.

Risultato desiderato: desidero un'istanza SNMP funzionante, una con il maggior numero possibile di impostazioni predefinite.

NOTA: da moltissime fonti, inclusi siti Web Ubuntu di proprietà di Canonical, si dice che devo modificare exporte SNMPDOPTS, per avere funzionalità di base.

/etc/default/snmpd

export MIBS=UCD-SNMP-MIB
SNMPDRUN=yes
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid -c /etc/snmp/snmpd.conf'
TRAPDRUN=no
TRAPDOPTS='-Lsd -p /var/run/snmptrapd.pid'
SNMPDCOMPAT=yes

/etc/snmp/snmpd.conf

view   systemonly  included   .1.3.6.1.2.1.1
view   systemonly  included   .1.3.6.1.2.1.25.1
rocommunity public
rwcommunity nanana
sysLocation    vm1-ryd-wlo
sysContact     Paul Adams <pauladams@nanana.com>
sysServices    72
disk       /     10000
disk       /var  5%
load   12 10 5
trapsink     localhost public
iquerySecName   internalUser
rouser          internalUser
master          agentx

/var/log/syslog

Oct  3 13:59:51 mdnsreflector-ryd-wlo snmpd[9120]: Server Exiting with code 1
Oct  3 14:00:09 mdnsreflector-ryd-wlo snmpd[9143]: Turning on AgentX master support.
Oct  3 14:00:09 mdnsreflector-ryd-wlo snmpd[9145]: NET-SNMP version 5.7.2

sudo service --status-all

[ + ]  snmpd

sudo service ufw status

Status: inactive
  1. Anche se questa configurazione si carica e sembra essere in esecuzione. In realtà non è possibile eseguire query su nulla da questa istanza SNMP da un dispositivo remoto. Alla fine la connessione scade.

  2. Interrogarlo dal server stesso non produce nulla.

snmpwalk -Come -c public -v 1 sistema localhost

system: Unknown Object Identifier (Sub-id not found: (top) -> system)
  1. Ho dovuto rimuovere le voci "agentAddress" perché il software continuava ad andare nel panico ogni volta che tentava di elaborare quel comando. (Anche se questo è il valore predefinito e il modo in cui dovrebbe essere elencato nella configurazione.)

/etc/var/syslog

Oct  3 14:10:32 mdnsreflector-ryd-wlo snmpd[9292]: Turning on AgentX master support.
Oct  3 14:10:32 mdnsreflector-ryd-wlo snmpd[9292]: Turning on AgentX master support.
Oct  3 14:10:32 mdnsreflector-ryd-wlo snmpd[9292]: Error opening specified endpoint "udp:161"
Oct  3 14:10:32 mdnsreflector-ryd-wlo snmpd[9292]: Server Exiting with code 1

servizio sudo --status-all

[ - ]  snmpd
  1. Ho dovuto rimuovere diverse voci predefinite nella configurazione perché causavano anche errori durante l'esecuzione.

/etc/snmp/snmpd.conf

proc mount
proc ntalkd    4
proc sendmail    10 1
includeAllDisks 10%
extend    test1   /bin/echo  Hello, world!
extend-sh test2   echo Hello, world! ; echo Hi there ; exit 35

/ Var / log / syslog

Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 90: Error: Already have an entry for this process.
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 92: Error: Already have an entry for this process.
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 94: Error: Already have an entry for this process.
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 106: Error: includeAllDisks already specified.
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 106: Error: #011ignoring: includeAllDisks 10%
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 146: Error: duplicate trigger name
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: message repeated 6 times: [ /etc/snmp/snmpd.conf: line 146: Error: duplicate trigger name]
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 148: Error: duplicate trigger name
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 148: Error: duplicate trigger name
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: duplicate table data attempted to be entered. row exists
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: Failed to register extend entry 'test1' - possibly duplicate name.
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: duplicate table data attempted to be entered. row exists
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: Failed to register extend entry 'test2' - possibly duplicate name.

È stato verificato il funzionamento delle seguenti istruzioni su 14.04 askubuntu.com/a/223734/106495
Kevin Bowen,

Risposte:


2

SNMP non è rotto. Il processo per farlo funzionare è solo un po 'contorto.

I seguenti passaggi sono stati verificati per funzionare su 14.04:

Dopo aver installato SNMP e il suo demone ( sudo apt-get install snmp snmpd), dovrai modificare il file /etc/snmp/snmp.confe commentare la riga contenente "mibs:"

All'interno di questo file, cambia la riga:

mibs :

a

#mibs : 

Successivamente, supponendo di non averlo già fatto, sarà necessario ottenere il set completo di MIB IETF. Questi file non vengono spediti, per impostazione predefinita, su sistemi Debian / Ubuntu a causa di problemi di licenza.

Dal terminale ( Ctrl- Alt- t), immettere i seguenti comandi:

sudo apt-get install snmp-mibs-downloader

sudo download-mibs

Quindi, dovrai modificare /etc/snmp/snmpd.conf.

  1. Per consentire a SNMP il sistema di ricevere query su interfacce diverse dal suo indirizzo di loopback. Le linee per questo dovrebbero apparire così:

    #  Listen for connections from the local system only
    #  agentAddress  udp:127.0.0.1:161
    #  Listen for connections on all interfaces (both IPv4 *and* IPv6)
    agentAddress udp:161,udp6:[::1]:161
    

    Si noti che ciò consentirà a QUALSIASI sistema di interrogare la macchina. Dovrai modificarlo per limitare l'accesso SNMP al tuo dispositivo.

  2. Ora vorrai cambiare la tua stringa SNMP di sola lettura da publicuna stringa personalizzata di tua scelta, come di seguito:

    #rocommunity public  default    -V systemonly
    rocommunity <My$ecret$tr1nG> (don't use this example!)
    

    Nota: la rimozione -V systemonlydalla linea consentirà l'accesso all'intero albero MIB e non lo limiterà alla parte di sistema dell'albero.

  3. Riavvia il demone SNMP

    sudo service snmpd restart
    

Infine, la tua query SNMP ora dovrebbe rispondere correttamente.

per esempio:

snmpwalk -v 2c -c <My$ecret$tr1nG> <MachineName> ipadd

IP-MIB::ipAdEntAddr.127.0.0.1 = IpAddress: 127.0.0.1
IP-MIB::ipAdEntAddr.192.168.1.7 = IpAddress: 192.168.1.7
IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1
IP-MIB::ipAdEntIfIndex.192.168.1.7 = INTEGER: 2
IP-MIB::ipAdEntNetMask.127.0.0.1 = IpAddress: 255.0.0.0
IP-MIB::ipAdEntNetMask.192.168.1.7 = IpAddress: 255.255.255.0
IP-MIB::ipAdEntBcastAddr.127.0.0.1 = INTEGER: 0
IP-MIB::ipAdEntBcastAddr.192.168.1.7 = INTEGER: 1

Vedere le seguenti risposte per ulteriori riferimenti:

Come ottenere o configurare IP-MIB in Ubuntu 12.04?

Che cos'è SNMP?


0

Vorrei iniziare con una configurazione stock in vista di .1, abilitare la registrazione debug e provare a ottenere query sugli OID. Onestamente non ho mai avuto il controllo dei MIB e dal momento che ho usato SNMP solo per cose come MRTG e cactus, non ho mai avuto davvero bisogno di saperne di più. Verifica se riesci a far funzionare la configurazione più semplice possibile, quindi aggiungi un elemento alla volta mentre esegui la coda dei file di registro pertinenti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.