web-dev-qa-db-fra.com

Pourquoi SNMP est cassé?

Version Ubuntu: Ubuntu 14.04.1 LTS

Version SNMP: 5.7.2

Problème court: Un grand nombre des entrées du fichier de configuration "par défaut" sont cassées. Ce qui importe peu, car je ne parviens même pas à démarrer SNMP.

Résultat souhaité: Je souhaite une instance SNMP opérationnelle, avec le plus grand nombre de paramètres par défaut fonctionnels possible.

REMARQUE: à partir d'un très grand nombre de sources, y compris de sites Web appartenant à Canonical, Ubuntu, il est dit que je dois modifier export et SNMPDOPTS afin de disposer 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. En réalité, vous ne pouvez rien interroger de cette instance SNMP depuis un périphérique distant. La connexion expire finalement.

  2. Interroger le serveur lui-même ne produit rien.

snmpwalk -Os -c public -v 1 système hôte local

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 s’il s’agit de la valeur par défaut et de la manière 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 provoquaient également 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.
28
Paul Adams

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

Les étapes suivantes ont été vérifiées pour fonctionner sur 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.conf et commenter la ligne contenant "mibs:"

Dans ce fichier, changez la ligne:

mibs :

à

#mibs : 

Ensuite, en supposant que vous ne l'ayez pas déjà fait, vous devrez obtenir l'ensemble complet de bases 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.

Du 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 au système SNMP 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 allez maintenant vouloir changer votre chaîne SNMP en lecture seule de public en une 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: Si vous supprimez -V systemonly de la ligne, vous aurez accès à l'intégralité de l'arborescence MIB et non 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 une référence supplémentaire:

Comment obtenir ou configurer IP-MIB dans Ubuntu 12.04?

Qu'est-ce que SNMP?

2
Kevin Bowen

Je commencerais par une configuration de stock avec une vue de .1, activerais la journalisation de débogage et essayer d'obtenir des requêtes sur les OID. Honnêtement, je n'ai jamais maîtrisé les bases MIB et, comme je n'utilisais SNMP que pour des éléments tels que MRTG et cactus, je n'avais jamais vraiment besoin d'en savoir plus. Voyez si vous pouvez utiliser la configuration la plus simple possible, puis ajoutez un élément à la fois tout en conservant le ou les fichiers journaux pertinents.

0
John Oliver