Vous pouvez utiliser la supervision SNMP sur des p¨¦riph¨¦riques tels que des imprimantes, des commutateurs r¨¦seau, des routeurs ou des onduleurs qui sont g¨¦n¨¦ralement compatibles SNMP et sur lesquels il serait impossible d'installer des syst¨¨mes d'exploitation complets et des agents Áú»¢¶Ä²©.
Pour pouvoir r¨¦cup¨¦rer les donn¨¦es fournies par les agents SNMP sur ces p¨¦riph¨¦riques, le serveur Áú»¢¶Ä²© doit ¨ºtre configur¨¦ initialement avec le support SNMP.
Les v¨¦rifications SNMP sont effectu¨¦es uniquement par le protocole UDP.
Depuis Áú»¢¶Ä²© 2.2.3, les d¨¦mons du serveur Áú»¢¶Ä²© et des proxys interrogent les p¨¦riph¨¦riques SNMP pour plusieurs valeurs dans une seule requ¨ºte. Cela affecte tous les types d'¨¦l¨¦ments SNMP (¨¦l¨¦ments SNMP standard, ¨¦l¨¦ments SNMP avec index dynamiques et d¨¦couverte SNMP de bas niveau) et rend le traitement SNMP beaucoup plus efficace. Veuillez consulter la section des d¨¦tails techniques ci-dessous pour savoir comment cela fonctionne en interne. Depuis Áú»¢¶Ä²© 2.4, il existe ¨¦galement un param¨¨tre "Utiliser les requ¨ºtes de masse" pour chaque interface qui permet de d¨¦sactiver les requ¨ºtes group¨¦es pour les p¨¦riph¨¦riques qui ne peuvent pas les g¨¦rer correctement.
Depuis Áú»¢¶Ä²© 2.2.7 et Áú»¢¶Ä²© 2.4.2, les d¨¦mons des serveurs Áú»¢¶Ä²© et des proxys inscrivent dans les logs zabbix les lignes similaires ¨¤ ce qui suit s'ils re?oivent une r¨¦ponse SNMP incorrecte : <code> SNMP response from host "gateway" does not contain all of the requested variable bindings </code> Bien qu'ils ne couvrent pas tous les cas probl¨¦matiques, ils sont utiles pour identifier les p¨¦riph¨¦riques SNMP individuels pour lesquels les requ¨ºtes de masse doivent ¨ºtre d¨¦sactiv¨¦es.
Depuis Áú»¢¶Ä²© 2.2, les d¨¦mons du serveur Áú»¢¶Ä²© et des proxys utilisent correctement le param¨¨tre de configuration Timeout lors de l'ex¨¦cution des v¨¦rifications SNMP. De plus, les d¨¦mons n'effectuent pas de nouvelles tentatives apr¨¨s une seule requ¨ºte SNMP infructueuse (timeout/fausses informations d'identification). Auparavant, le d¨¦lai d'expiration par d¨¦faut de la biblioth¨¨que SNMP et les valeurs de nouvelles tentatives (1 seconde et 5 tentatives respectivement) ¨¦taient r¨¦ellement utilis¨¦s.
Depuis Áú»¢¶Ä²© 2.2.8 et Áú»¢¶Ä²© 2.4.2, les d¨¦mons du serveur Áú»¢¶Ä²© et des proxy vont toujours r¨¦essayer au moins une fois : soit via le m¨¦canisme de nouvelle tentative de la biblioth¨¨que SNMP, soit via le m¨¦canisme interne de traitement des requ¨ºtes de masse.
Si vous surveillez les p¨¦riph¨¦riques SNMPv3, assurez-vous que msgAuthoritarianEngineID (¨¦galement appel¨¦ snmpEngineID ou "Engine ID") n'est jamais partag¨¦ par deux p¨¦riph¨¦riques. Selon la (section 3.1.1.1), il doit ¨ºtre unique pour chaque p¨¦riph¨¦rique.
Pour d¨¦marrer la supervision d'un ¨¦quipement par SNMP, les ¨¦tapes suivantes doivent ¨ºtre effectu¨¦es :
Cr¨¦er un h?te pour un ¨¦quipement ayant une interface SNMP.
Entrez l'adresse IP. Vous pouvez utiliser l'un des mod¨¨les SNMP fournis (²Ñ´Ç»å¨¨±ô±ð de p¨¦riph¨¦rique SNMP et autres) pour ajouter automatiquement un ensemble d'¨¦l¨¦ments. Cependant, le mod¨¨le peut ne pas ¨ºtre compatible avec l'h?te. Cliquez sur Ajouter pour enregistrer l'h?te.
Les v¨¦rifications SNMP n'utilisent pas le port de l'agent, il est ignor¨¦e.
Trouvez la cha?ne SNMP (ou l'OID) de l'¨¦l¨¦ment que vous souhaitez surveiller.
Pour obtenir une liste des cha?nes SNMP, utilisez la commande snmpwalk (partie du logiciel que vous avez d? installer dans le cadre de l'installation de Áú»¢¶Ä²©) ou un outil ¨¦quivalent :
Comme '2c' correspond ¨¤ la version SNMP, vous pouvez ¨¦galement le remplacer par '1' pour indiquer SNMP Version 1 sur le p¨¦riph¨¦rique.
Cela devrait vous donner une liste de cha?nes SNMP et leur derni¨¨re valeur. Si ce n'est pas le cas, il est possible que la 'communaut¨¦' SNMP soit diff¨¦rente de la communaut¨¦ standard 'public', auquel cas vous avez besoin de savoir de quelle communaut¨¦ il s'agit. Vous pourrez ensuite parcourir la liste jusqu'¨¤ trouver la cha?ne que vous voulez superviser, par exemple si vous voulez superviser les octets arrivant ¨¤ votre commutateur sur le port 3, vous utiliserez la cha?ne IF-MIB::ifInOctets.3
partir de cette ligne :
Vous pouvez maintenant utiliser la commande snmpget pour trouver l'OID num¨¦rique pour 'IF-MIB::ifInOctets.3' :
shell> snmpget -v 2c -c public -On 10.62.1.22 IF-MIB::ifInOctets.3
Notez que le dernier num¨¦ro de la cha?ne est le num¨¦ro de port que vous cherchez ¨¤ superviser. Voir aussi : Index dynamiques.
Cela devrait vous donner quelque chose comme :
Encore une fois, le dernier num¨¦ro de l'OID est le num¨¦ro de port.
3COM semble utiliser des num¨¦ros de port par centaines, par exemple, port 1 = port 101, port 3 = port 103, mais Cisco utilise des num¨¦ros normaux, par exemple le port 3 = 3.
Dans le dernier exemple ci-dessus, le type de valeur est "Counter32", qui correspond en interne au type ASN_COUNTER. La liste compl¨¨te des types pris en charge est ASN_COUNTER, ASN_COUNTER64, ASN_UINTEGER, ASN_UNSIGNED64, ASN_INTEGER, ASN_FLOAT, ASN_DOUBLE, ASN_TIMETICKS, ASN_GAUGE, ASN_IPADDRESS, ASN_OCTET_STR et ASN_OBJECT_ID (depuis 2.2.8, 2.4.3). Ces types correspondent ¨¤ peu pr¨¨s ¨¤ "Counter32", "Counter64", "UInteger32", "INTEGER", "Float", "Double", "Timeticks", "Gauge32", "IpAddress", "OCTET STRING", "OBJECT IDENTIFIER" dans la sortie snmpget, mais peut ¨¦galement ¨ºtre montr¨¦ comme "STRING", "Hex-STRING", "OID" et d'autres, selon la pr¨¦sence d'un indice d'affichage.
Cr¨¦er un ¨¦l¨¦ment pour la supervision.
Revenez maintenant ¨¤ Áú»¢¶Ä²© et cliquez sur ?±ô¨¦³¾±ð²Ô³Ù²õ pour l'h?te SNMP que vous avez cr¨¦¨¦ pr¨¦c¨¦demment. Selon que vous ayez utilis¨¦ un mod¨¨le ou non lors de la cr¨¦ation de votre h?te, vous disposez soit d'une liste d'¨¦l¨¦ments SNMP associ¨¦s ¨¤ votre h?te, soit d'une liste vide. Nous allons travailler sur l'hypoth¨¨se que vous allez cr¨¦er vous-m¨ºme l'¨¦l¨¦ment en utilisant les informations que vous venez de recueillir en utilisant snmpwalk et snmpget, donc cliquez sur Cr¨¦er un ¨¦l¨¦ment. Dans le nouveau formulaire, entrez le 'Nom' de l'¨¦l¨¦ment . Assurez-vous que le champ 'Interface h?te' contient votre commutateur/routeur et remplacez le champ 'Type' par "Agent SNMPv*". Entrez la communaut¨¦ (g¨¦n¨¦ralement public) et entrez l'OID textuel ou num¨¦rique que vous avez r¨¦cup¨¦r¨¦ pr¨¦c¨¦demment dans le champ 'OID SNMP', par exemple : .1.3.6.1.2.1.2.2.1.10.3
Entrez le 'Port' SNMP comme 161 et la '°ä±ô¨¦' comme quelque chose de significatif, par exemple SNMP-InOctets-Bps. D¨¦finissez le 'Type d'information' sur Numeric (flottant) et l'¨¦tape de pr¨¦traitement sur Changement par seconde (important, sinon vous obtiendrez des valeurs cumulatives du p¨¦riph¨¦rique SNMP au lieu de la derni¨¨re modification). Choisissez un multiplicateur personnalis¨¦ si vous le souhaitez et entrez un 'Intervalle d¡¯actualisation' et une 'P¨¦riode de stockage de l'historique' si vous voulez qu'ils soient diff¨¦rents de la valeur par d¨¦faut.
Tous les champs obligatoires sont marqu¨¦s par un ast¨¦risque rouge.
Maintenant, enregistrez l'¨¦l¨¦ment et allez dans Surveillance ¡ú Derni¨¨res donn¨¦es pour voir vos donn¨¦es SNMP !
Prenez connaissance des options sp¨¦cifiques disponibles pour les ¨¦l¨¦ments SNMPv3 :
±Ê²¹°ù²¹³¾¨¨³Ù°ù±ð | Description |
---|---|
Nom de contexte | Entrez le nom du contexte pour identifier l'¨¦l¨¦ment sur le sous-r¨¦seau SNMP. Le nom de contexte est pris en charge pour les ¨¦l¨¦ments SNMPv3 depuis Áú»¢¶Ä²© 2.2. Les macros utilisateur sont r¨¦solues dans ce champ |
Nom de la s¨¦curit¨¦ | Entrez le nom de s¨¦curit¨¦. Les macros utilisateur sont r¨¦solues dans ce champ. |
Niveau de la s¨¦curit¨¦ | S¨¦lectionnez le niveau de s¨¦curit¨¦ : noAuthNoPriv - aucune authentification ni aucun protocole de confidentialit¨¦ ne sont utilis¨¦s AuthNoPriv - le protocole d'authentification est utilis¨¦, le protocole de confidentialit¨¦ ne l'est pas AuthPriv - les protocoles d'authentification et de confidentialit¨¦ sont utilis¨¦s |
Protocole d'authentification | S¨¦lectionnez le protocole d' authentification - MD5 ou SHA. |
Phrase de passe d'authentification | Entrez la phrase de passe authentification. Les macros utilisateurs sont r¨¦solues dans ce champs. |
Protocole de confidentialit¨¦ | S¨¦lectionnez le protocole de confidentialit¨¦ - DES ou AES. |
Phrase de passe de confidentialit¨¦ | Entrez phrase de passe de confidentialit¨¦. Les macros utilisateurs sont r¨¦solues dans ce champs. |
En cas d'informations d'identification SNMPv3 incorrectes (nom de la s¨¦curit¨¦, protocole/phrase de passe d'authentification, protocole de confidentialit¨¦), Áú»¢¶Ä²© re?oit une erreur ERROR de net-snmp, ¨¤ l'exception de la phrase de passe de confidentialit¨¦, auquel cas Áú»¢¶Ä²© re?oit une erreur TIMEOUT de net-snmp.
Le red¨¦marrage du serveur/proxy est requis pour que les modifications du protocole d'authentification, de la phrase de passe d'authentification, du protocole de confidentialit¨¦ ou du protocole de confidentialit¨¦ prennent effet.
Exemple g¨¦n¨¦ral :
±Ê²¹°ù²¹³¾¨¨³Ù°ù±ð | Description |
---|---|
°ä´Ç³¾³¾³Ü²Ô²¹³Ü³Ù¨¦ | public |
OID | 1.2.3.45.6.7.8.0 (or .1.2.3.45.6.7.8.0) |
°ä±ô¨¦ | <Cha?ne unique ¨¤ utiliser comme r¨¦f¨¦rence aux d¨¦clencheurs> Par exemple, "my_param". |
Notez que l'OID peut ¨ºtre donn¨¦ sous forme num¨¦rique ou de cha?ne. Cependant, dans certains cas, l'OID de cha?ne doit ¨ºtre converti en repr¨¦sentation num¨¦rique. L¡¯utilitaire snmpget peut ¨ºtre utilis¨¦ ¨¤ cette fin :
La supervision des param¨¨tres SNMP est possible si l'option --with-net-snmp a ¨¦t¨¦ sp¨¦cifi¨¦e lors de la configuration des sources Áú»¢¶Ä²©.
Supervision du temps de fonctionnement :
±Ê²¹°ù²¹³¾¨¨³Ù°ù±ð | Description |
---|---|
°ä´Ç³¾³¾³Ü²Ô²¹³Ü³Ù¨¦ | public |
Oid | MIB::sysUpTime.0 |
°ä±ô¨¦ | router.uptime |
Type de valeur | Float |
±«²Ô¾±³Ù¨¦²õ | uptime |
Multiplicateur personnalis¨¦ | 0.01 |
? partir de la version 2.2.3, le serveur et les proxys Áú»¢¶Ä²© interrogent les p¨¦riph¨¦riques SNMP avec plusieurs valeurs dans une seule requ¨ºte. Cela affecte plusieurs types d'¨¦l¨¦ments SNMP :
Tous les ¨¦l¨¦ments SNMP sur une m¨ºme interface avec des param¨¨tres identiques doivent ¨ºtre interrog¨¦s en m¨ºme temps. Les deux premiers types d'¨¦l¨¦ments sont effectu¨¦s par les pollers par lots de 128 ¨¦l¨¦ments maximum, tandis que les r¨¨gles de d¨¦couverte de bas niveau sont trait¨¦es individuellement, comme pr¨¦c¨¦demment.
Au niveau inf¨¦rieur, il existe deux types d'op¨¦rations effectu¨¦es pour interroger des valeurs : obtenir plusieurs objets sp¨¦cifi¨¦s et parcourir une arborescence OID.
Pour "obtenir plusieurs objets sp¨¦cifi¨¦s", une GetRequest-PDU est utilis¨¦e avec 128 liaisons de variables maximum. Pour "parcourir une arborescence OID", une unit¨¦ GetNextRequest-PDU est utilis¨¦e pour SNMPv1 et GetBulkRequest avec un champ "max-repetitions" d'au plus 128 est utilis¨¦ pour SNMPv2 et SNMPv3.
Ainsi, les avantages du traitement de masse pour chaque type d'¨¦l¨¦ment SNMP sont d¨¦crits ci-dessous :
Cependant, il existe un probl¨¨me technique : tous les p¨¦riph¨¦riques ne sont pas capables de renvoyer 128 valeurs par requ¨ºte. Certains retournent toujours une r¨¦ponse correcte, mais d'autres r¨¦pondent avec une erreur "tooBig(1)" ou ne r¨¦pondent pas du tout une fois que la r¨¦ponse potentielle d¨¦passe une certaine limite.
Afin de trouver un nombre optimal d'objets ¨¤ interroger pour un p¨¦riph¨¦rique donn¨¦, Áú»¢¶Ä²© utilise la strat¨¦gie suivante. Il commence prudemment ¨¤ interroger 1 valeur dans une requ¨ºte. Si cela r¨¦ussit, il interroge 2 valeurs dans une requ¨ºte. Si cela r¨¦ussit ¨¤ nouveau, il interroge 3 valeurs dans une requ¨ºte et continue de la m¨ºme mani¨¨re en multipliant le nombre d'objets interrog¨¦s par 1,5, ce qui entra?ne la s¨¦quence suivante de tailles de requ¨ºtes : 1, 2, 3, 4, 6, 9, 13, 19 28, 42, 63, 94, 128.
Cependant, une fois qu'un p¨¦riph¨¦rique refuse de donner une r¨¦ponse appropri¨¦e (par exemple, pour 42 variables), Áú»¢¶Ä²© fait deux choses :
D'abord, pour le lot actuel, il divise par deux le nombre d'objets dans une seule requ¨ºte et interroge 21 variables. Si le p¨¦riph¨¦rique est actif, la requ¨ºte devrait fonctionner dans la grande majorit¨¦ des cas, car 28 variables fonctionnaient et 21 ¨¦taient significativement inf¨¦rieures. Cependant, si cela ¨¦choue encore, Áú»¢¶Ä²© revient ¨¤ interroger les valeurs une par une. Si cela ¨¦choue encore ¨¤ ce stade, le p¨¦riph¨¦rique ne r¨¦pond d¨¦finitivement pas et la taille de la requ¨ºte n'est pas un probl¨¨me.
La deuxi¨¨me chose que fait Áú»¢¶Ä²© pour les objets group¨¦s suivants est qu'il commence avec le dernier nombre r¨¦ussi de variables (28 dans notre exemple) et continue d'incr¨¦menter la taille des requ¨ºtes de 1 jusqu'¨¤ ce que la limite soit atteinte. Par exemple, en supposant que la taille de r¨¦ponse la plus grande soit de 32 variables, les demandes suivantes seront de tailles 29, 30, 31, 32 et 33. La derni¨¨re requ¨ºte ¨¦chouera et Áú»¢¶Ä²© n'¨¦mettra plus jamais de demande de taille 33. ? partir de ce moment, Áú»¢¶Ä²© interrogera au maximum 32 variables pour ce p¨¦riph¨¦rique.
Si de grandes requ¨ºtes ¨¦chouent avec ce nombre de variables, cela peut signifier deux choses. Les crit¨¨res exacts qu'un p¨¦riph¨¦rique utilise pour limiter la taille de la r¨¦ponse ne peuvent pas ¨ºtre connus, mais nous essayons de l'approximer en utilisant le nombre de variables. La premi¨¨re possibilit¨¦ est donc que ce nombre de variables se situe autour de la limite r¨¦elle de la taille de la r¨¦ponse du p¨¦riph¨¦rique dans le cas g¨¦n¨¦ral : parfois la r¨¦ponse est inf¨¦rieure ¨¤ la limite, parfois elle est sup¨¦rieure ¨¤ celle-ci. La deuxi¨¨me possibilit¨¦ est qu'un paquet UDP dans l'une ou l'autre direction soit simplement perdu. Pour ces raisons, si Áú»¢¶Ä²© obtient une requ¨ºte ¨¦chou¨¦e, il r¨¦duit le nombre maximum de variables pour essayer d'aller plus loin dans la plage confortable du p¨¦riph¨¦rique, mais (¨¤ partir de 2.2.8) seulement jusqu'¨¤ deux fois.
Dans l'exemple ci-dessus, si une requ¨ºte avec 32 variables ¨¦choue, Áú»¢¶Ä²© r¨¦duit le nombre ¨¤ 31. Si cela ¨¦choue, Áú»¢¶Ä²© r¨¦duit le nombre ¨¤ 30. Cependant, Áú»¢¶Ä²© ne r¨¦duit pas le nombre en dessous de 30, car il supposera que d'autres ¨¦checs sont dus ¨¤ la perte de paquets UDP, plut?t qu'¨¤ la limite du p¨¦riph¨¦rique.
Si, toutefois, un p¨¦riph¨¦rique ne peut pas g¨¦rer correctement les demandes massives pour d'autres raisons et que l'heuristique d¨¦crite ci-dessus ne fonctionne pas, Áú»¢¶Ä²© 2.4 dispose d'un param¨¨tre "Utiliser les requ¨ºtes de masse" pour chaque interface permettant de d¨¦sactiver les requ¨ºtes group¨¦es pour ce p¨¦riph¨¦rique.