Por que o SNMP está quebrado?

28

Versão do Ubuntu: Ubuntu 14.04.1 LTS

Versão SNMP: 5.7.2

Short Issue: Muitas das entradas no arquivo de configuração "padrão" estão quebradas. O que realmente não importa, porque eu nem consigo iniciar o SNMP.

Resultado desejado: Eu quero uma instância de SNMP em funcionamento, com o máximo possível de padrões funcionais.

NOTA: De um grande número de fontes, incluindo sites da Canonical, diz-se que tenho que modificar export e SNMPDOPTS , para ter funcionalidade 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. Mesmo que essa configuração seja carregada e esteja aparentemente em execução. Na verdade, você não pode consultar nada dessa instância do SNMP de um dispositivo remoto. A conexão finalmente acaba.

  2. Consultar a partir do próprio servidor não gera nada.

snmpwalk -Os -c public -v 1 sistema localhost

system: Unknown Object Identifier (Sub-id not found: (top) -> system)
  1. Eu tive que remover as entradas "agentAddress" porque o software entrava em pânico toda vez que tentava processar esse comando. (Embora esse seja o padrão e a maneira como ele deveria estar listado na configuração.)

/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

serviço sudo --status-all

[ - ]  snmpd
  1. Eu tive que remover várias das entradas padrão na configuração porque elas também causaram erros ao executá-las.

/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.
    
por Paul Adams 03.10.2014 / 21:30

2 respostas

2

O SNMP não está corrompido. O processo para fazê-lo funcionar é um pouco confuso.

Os seguintes passos foram verificados para funcionar em 14.04:

Depois de instalar o SNMP e seu daemon ( sudo apt-get install snmp snmpd ), você precisará editar o arquivo /etc/snmp/snmp.conf e comentar a linha que contém "mibs:"

Dentro deste arquivo, mude a linha:

mibs :

para

#mibs : 

Em seguida, supondo que você não tenha feito isso, você precisará obter o conjunto completo de MIBs IETF. Esses arquivos não são fornecidos, por padrão, em sistemas Debian / Ubuntu devido a problemas de licenciamento.

No terminal ( Ctrl - Alt - t ), digite os seguintes comandos:

sudo apt-get install snmp-mibs-downloader

sudo download-mibs

Em seguida, você precisará modificar /etc/snmp/snmpd.conf .

  1. Para permitir que o SNMP receba consultas em interfaces diferentes de seu endereço de loopback. As linhas para isso devem ficar assim:

    #  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
    

    Observe que isso permitirá que QUALQUER sistema consulte sua máquina. Você precisará ajustar isso para limitar o acesso SNMP ao seu dispositivo.

  2. Agora, você desejará alterar sua string SNMP somente leitura de public para uma string personalizada de sua escolha, conforme abaixo:

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

    Nota: A remoção de -V systemonly da linha permitirá o acesso a toda a árvore MIB e não a restringirá à parte do sistema da árvore.

  3. Reinicie o daemon SNMP

    sudo service snmpd restart
    

Por fim, sua consulta SNMP deve responder agora de maneira adequada.

por exemplo:

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

Veja as seguintes respostas para referência adicional:

Como obter ou configurar o IP-MIB no Ubuntu 12.04?

O que é o SNMP?

    
por Kevin Bowen 24.06.2016 / 10:45
0

Eu começaria com uma configuração de estoque com a perspectiva de .1, habilitar o registro de depuração e tentar obter consultas aos OIDs. Eu honestamente nunca peguei o jeito dos MIBs, e desde que eu usei o SNMP apenas para coisas como MRTG e cactos, eu realmente nunca precisei saber mais. Veja se você pode obter a configuração mais simples possível trabalhando, em seguida, adicione um elemento por vez enquanto segue o (s) arquivo (s) de registro pertinente (s).

    
por John Oliver 05.03.2016 / 18:35

Tags