Pourquoi SNMP est-il cassé?

28

Version Ubuntu: Ubuntu 14.04.1 LTS

Version SNMP: 5.7.2

Problème court: de nombreuses entrées du fichier de configuration "par défaut" sont cassées. Ce qui n'a pas vraiment d'importance car je n'arrive même pas à démarrer SNMP.

Résultat souhaité: Je veux une instance SNMP fonctionnelle, une avec autant de paramètres par défaut fonctionnels que possible.

REMARQUE: à partir d'un grand nombre de sources, y compris des sites Web Ubuntu appartenant à Canonical, il est dit que je dois modifier exportet SNMPDOPTS, afin d'avoir des fonctionnalités de 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 <[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. Même si cette configuration se charge et est apparemment en cours d'exécution. Vous ne pouvez pas réellement interroger quoi que ce soit à partir de cette instance SNMP à partir d'un périphérique distant. La connexion expire finalement.

  2. L'interroger depuis le serveur lui-même ne rapporte rien.

snmpwalk -Os -c public -v 1 système localhost

system: Unknown Object Identifier (Sub-id not found: (top) -> system)
  1. J'ai dû supprimer les entrées "agentAddress" car le logiciel paniquait à chaque fois qu'il tentait de traiter cette commande. (Même si c'est la valeur par défaut et la façon dont il est censé être répertorié dans la configuration.)

/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

service sudo --status-all

[ - ]  snmpd
  1. J'ai dû supprimer plusieurs des entrées par défaut dans la configuration car elles ont également causé des erreurs lors de leur exécution.

/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
la source
Les instructions suivantes ont été vérifiées pour fonctionner le 14.04 askubuntu.com/a/223734/106495
Kevin Bowen

Réponses:

2

SNMP n'est pas rompu. Le processus pour le faire fonctionner est juste un peu compliqué.

Les étapes suivantes ont été vérifiées pour fonctionner le 14.04:

Après avoir installé SNMP et son démon ( sudo apt-get install snmp snmpd), vous devrez éditer le fichier /etc/snmp/snmp.confet commenter la ligne contenant "mibs:"

Dans ce fichier, changez la ligne:

mibs :

à

#mibs : 

Ensuite, en supposant que vous ne l'avez pas déjà fait, vous devrez obtenir l'ensemble complet des MIB IETF. Ces fichiers ne sont pas livrés, par défaut, sur les systèmes Debian / Ubuntu en raison de problèmes de licence.

Depuis le terminal ( Ctrl- Alt- t), entrez les commandes suivantes:

sudo apt-get install snmp-mibs-downloader

sudo download-mibs

Ensuite, vous devrez modifier /etc/snmp/snmpd.conf.

  1. Pour permettre à SNMP le système de recevoir des requêtes sur des interfaces autres que son adresse de bouclage. Les lignes pour cela devraient ressembler à ceci:

    #  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
    

    Notez que cela permettra à TOUT système d'interroger votre machine. Vous devrez l'ajuster pour limiter l'accès SNMP à votre appareil.

  2. Vous souhaiterez maintenant remplacer votre chaîne SNMP en lecture seule par publicune chaîne personnalisée de votre choix, comme ci-dessous:

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

    Remarque: la suppression -V systemonlyde la ligne permettra d'accéder à l'intégralité de l'arborescence MIB et ne la limitera pas à la partie système de l'arborescence.

  3. Redémarrez le démon SNMP

    sudo service snmpd restart
    

Enfin, votre requête SNMP devrait maintenant répondre correctement.

par exemple:

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

Voir les réponses suivantes pour référence supplémentaire:

Comment obtenir ou configurer IP-MIB dans Ubuntu 12.04?

Qu'est-ce que SNMP?

Kevin Bowen
la source
0

Je commencerais par une configuration de stock en vue de .1, activerais la journalisation du débogage et essayerais d'obtenir des requêtes vers les OID. Honnêtement, je n'ai jamais eu le coup de MIB, et comme je n'utilisais SNMP que pour des trucs comme MRTG et cactus, je n'ai jamais vraiment eu besoin d'en savoir plus. Voyez si vous pouvez obtenir la configuration la plus simple possible, puis ajoutez un élément à la fois tout en suivant les fichiers journaux pertinents.

John Oliver
la source