¿Por qué se rompe el SNMP?

28

Versión de Ubuntu: Ubuntu 14.04.1 LTS

Versión SNMP: 5.7.2

Problema breve: muchas de las entradas en el archivo de configuración "predeterminado" están rotas. Lo que realmente no importa porque ni siquiera puedo iniciar SNMP.

Resultado deseado: quiero una instancia SNMP que funcione, una con la mayor cantidad posible de los valores predeterminados funcionales.

NOTA: De muchas fuentes, incluidos los sitios web de Ubuntu propiedad de Canonical, se dice que tengo que modificar exporty SNMPDOPTS, para tener una funcionalidad básica.

/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 <[email protected]>
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. Aunque esta configuración se carga y aparentemente se está ejecutando. En realidad, no puede consultar nada desde esta instancia SNMP desde un dispositivo remoto. La conexión finalmente se agota.

  2. Consultarlo desde el propio servidor no produce nada.

snmpwalk -Os -c public -v 1 sistema localhost

system: Unknown Object Identifier (Sub-id not found: (top) -> system)
  1. Tuve que eliminar las entradas "agentAddress" porque el software no dejaba de entrar en pánico cada vez que intentaba procesar ese comando. (Aunque ese es el valor predeterminado y la forma en que se supone que aparece en la configuración).

/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

servicio de sudo --status-all

[ - ]  snmpd
  1. Tuve que eliminar varias de las entradas predeterminadas en la configuración porque también causaron errores al ejecutarlas.

/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.
Paul Adams
fuente
Se ha verificado que las siguientes instrucciones funcionan en 14.04 askubuntu.com/a/223734/106495
Kevin Bowen

Respuestas:

2

SNMP no está roto. El proceso para hacerlo funcionar es un poco complicado.

Se ha verificado que los siguientes pasos funcionan en 14.04:

Después de instalar SNMP y su daemon ( sudo apt-get install snmp snmpd), deberá editar el archivo /etc/snmp/snmp.confy comentar la línea que contiene "mibs:"

Dentro de este archivo, cambie la línea:

mibs :

a

#mibs : 

A continuación, suponiendo que aún no haya hecho esto, deberá obtener el conjunto completo de MIB de IETF. Estos archivos no se envían, por defecto, en los sistemas Debian / Ubuntu debido a problemas de licencia.

Desde la terminal ( Ctrl- Alt- t), ingrese los siguientes comandos:

sudo apt-get install snmp-mibs-downloader

sudo download-mibs

Luego, deberá modificar /etc/snmp/snmpd.conf.

  1. Para permitir que SNMP el sistema reciba consultas en interfaces que no sean su dirección de bucle invertido. Las líneas para esto deberían verse así:

    #  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
    

    Tenga en cuenta que esto permitirá que CUALQUIER sistema consulte su máquina. Deberá ajustar esto para limitar el acceso SNMP a su dispositivo.

  2. Ahora querrá cambiar su cadena SNMP de solo lectura de publicuna cadena personalizada de su elección, como se muestra a continuación:

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

    Nota: Eliminar -V systemonlyde la línea permitirá el acceso a todo el árbol MIB y no lo restringirá a la parte del sistema del árbol.

  3. Reinicia el demonio SNMP

    sudo service snmpd restart
    

Finalmente, su consulta SNMP ahora debería responder correctamente.

p.ej:

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

Vea las siguientes respuestas para referencia adicional:

¿Cómo obtener o configurar IP-MIB en Ubuntu 12.04?

¿Qué es el SNMP?

Kevin Bowen
fuente
0

Comenzaría con una configuración estándar con vistas a .1, habilitaría el registro de depuración e intentaría obtener consultas en los OID. Sinceramente, nunca entendí las MIB, y dado que solo usé SNMP para cosas como MRTG y cactus, realmente nunca necesité saber más. Vea si puede lograr que funcione la configuración más simple posible, luego agregue un elemento a la vez mientras sigue los archivos de registro pertinentes.

John Oliver
fuente