Existe-t-il une MIB SNMP pour les objets de suivi Cisco

8

Mon objectif est d'écrire une vérification de service qui extrait l'état d'une liste de pistes Cisco qui exécute a Boolean OR. J'ai un grattoir d'écran en place actuellement, mais ce n'est vraiment pas idéal en termes de mise à l'échelle de ce type de vérification de service.

L'objet de piste ci-dessous extrait simplement la route statique suivie si object 10et object 20sont tous deux inaccessibles, ce qui permet d'installer une route par défaut apprise BGP, autrement en état d'échec RIB.

Exemple de configuration:

!
track 10 ip sla 1 reachability
!
track 20 ip sla 2 reachability
!
track 30 list boolean or
 object 10
 object 20
!
ip sla 1
 icmp-echo 8.8.8.8 source-ip 10.10.10.10
ip sla schedule 1 life forever start-time now
ip sla 2
 icmp-echo 4.2.2.2 source-ip 10.10.10.10
ip sla schedule 2 life forever start-time now

ip route 0.0.0.0 0.0.0.0 10.10.10.1 track 30

Il serait idéal d'extraire le nombre de modifications ou l' Boolean ORétat (vers le haut ou vers le bas) d'un OID.

HOSTNAME#show track 30
Track 30
  List boolean or
  Boolean OR is Up
    14716 changes, last change 02:18:47
    object 10 Up
    object 20 Up
  Tracked by:
    STATIC-IP-ROUTINGTrack-list 0

J'ai fouillé la machine Google, les forums et le navigateur d'objet SNMP Cisco en vain.

une fois
la source

Réponses:

8

Je ne crois pas qu'il existe un moyen d'interroger directement les résultats du ORvia SNMP, mais vous pouvez certainement interroger les résultats IP SLA et les calculer vous-même.

À l'aide de CISCO-RTTMON-MIB (1.3.6.1.4.1.9.9.42), vous pouvez vérifier la valeur de délai d'expiration de vos vérifications d'accessibilité, prendre la valeur vraie / fausse qu'il renvoie et faire ORdans le langage de script que vous utilisez pour sondage via SNMP.


Par exemple, j'ai configuré un test similaire au vôtre ci-dessus:

track 10 ip sla 1 reachability
!
track 20 ip sla 2 reachability
!
track 30 list boolean or
 object 10
 object 20
!
ip sla 1
 icmp-echo 8.8.8.8 source-ip 10.129.10.62
ip sla schedule 1 life forever start-time now
ip sla 2
 icmp-echo 4.2.2.2 source-ip 10.129.10.62
ip sla schedule 2 life forever start-time now
!
ip route 10.171.20.0 255.255.255.252 10.129.10.61 track 30

Ensuite, j'ai vérifié la sortie dans IOS:

R-VOIPLAB#show track 30
Track 30
  List boolean or
  Boolean OR is Up
    2 changes, last change 00:01:21
    object 10 Up
    object 20 Up

Ensuite, avec le suivi SLA IP en place, j'ai installé le CISCO-RTTMON-MIB sur mon serveur de surveillance et pris en compte la valeur de rttMonCtrlOperTimeoutOccurred (1.3.6.1.4.1.9.9.42.1.2.9.1.6) pour sa sortie True / False .

L'élément clé à noter est que, puisque nous recherchons si un délai d'attente s'est produit ou non, False signifie que la destination est accessible , et True signifie qu'elle n'est pas accessible et qu'un délai d'attente s'est produit .

snmpwalk -v3 -a SHA -A SNMP-AUTH-PASS -l authNoPriv -u SNMPUSER r-voiplab rttMonCtrlOperTimeoutOccurred
CISCO-RTTMON-MIB::rttMonCtrlOperTimeoutOccurred.1 = INTEGER: false(2)
CISCO-RTTMON-MIB::rttMonCtrlOperTimeoutOccurred.2 = INTEGER: false(2)

Enfin, j'ai blackholé le trafic vers 8.8.8.8 à partir de cette case et vérifié à nouveau les résultats de la piste dans IOS:

R-VOIPLAB(config)#ip route 8.8.8.8 255.255.255.255 null 0
R-VOIPLAB(config)#end
R-VOIPLAB#show track 30
Track 30
  List boolean or
  Boolean OR is Up
    2 changes, last change 00:21:18
    object 10 Down
    object 20 Up
  Tracked by:
    STATIC-IP-ROUTING 0

Maintenant que nous avons l'un des objets de test dans un Downétat, voyons à nouveau les résultats de l'interrogation rttMonCtrlOperTimeoutOccurred:

snmpwalk -v3 -a SHA -A SNMP-AUTH-PASS -l authNoPriv -u SNMPUSER r-voiplab rttMonCtrlOperTimeoutOccurred
CISCO-RTTMON-MIB::rttMonCtrlOperTimeoutOccurred.1 = INTEGER: true(1)
CISCO-RTTMON-MIB::rttMonCtrlOperTimeoutOccurred.2 = INTEGER: false(2)

Maintenant, comme je l'ai indiqué ci-dessus, il vous suffira d'interroger ces valeurs et de les utiliser comme vous le souhaitez dans votre script.

Brett Lykins
la source
5

Nous avons eu le même problème et j'ai trouvé une solution:

Il est appelé Expression MIB selon la RFC 2982 . Vous pouvez faire un OU logique à ce niveau en créant un nouvel objet OID SNMP qui sera calculé en même temps que la demande SNMP arrive au routeur / commutateur pour cet OID.

Ensuite, vous pouvez utiliser cet objet pour interroger les statistiques SNMP de 2 sondes IP SLA OR ou plus (via Expression MIB).

Je peux vous fournir plus de détails si vous le souhaitez. Je préparerai également un article de blog à ce sujet avec des instructions étape par étape sur la façon de créer un nouvel OID SNMP pour cette utilisation particulière via Expression MIB.

Disons que vous avez 3 sondes HTTP IP SLA configurées sur l'appareil et que vous souhaitez surveiller (via SNMP) le résultat ORed:

  1. Index SLA IP / rttMonHTTPStatsEntry == 3000
  2. Index SLA IP / rttMonHTTPStatsEntry == 3001
  3. Index SLA IP / rttMonHTTPStatsEntry == 3002

Vous pouvez utiliser l'OID rttMonLatestHTTPOperSense suivant (un par entrée / sonde sla ip) et affecter sa valeur à variable afin d'utiliser ces valeurs dans l'évaluation d'expression.

Comment:

  1. détruit une ancienne expression éventuellement créée

    snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.2.3.1.3.101.49.101.120.112 entier 6

  2. créer et attendre

    snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.2.3.1.3.101.49.101.120.112 entier 5

  3. crée l'index à utiliser ultérieurement pour récupérer le résultat de l'expression

    snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.2.3.1.2.101.49.101.120.112 u 1

  4. la description de l'expression

    snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.1.1.4.1 s "MIB d'expression - Sondes IP SLA OUing"

  5. Expression à évaluer

    snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.1.1.2.1 s '((($ 1 <2) && ($ 1> 0)) || (($ 2 <2) && ($ 2 > 0)) || (($ 3 <2) && ($ 3> 0))) »

  6. définit la variable $ 1 pour rttMonLatestHTTPOperSense

    snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.2.1.1 identifiant d'objet 1.3.6.1.4.1.9.9.42.1.5.1.1.6.3000

  7. définit la variable $ 2 pour rttMonLatestHTTPOperSense

    snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.2.1.2 identifiant d'objet 1.3.6.1.4.1.9.9.42.1.5.1.1.6.3001

  8. définit la variable $ 3 pour rttMonLatestHTTPOperSense

    snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.2.1.3 identifiant d'objet 1.3.6.1.4.1.9.9.42.1.5.1.1.6.3002

  9. définit le type de variable $ 1 à absolu (pour delta est 2)

    snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.4.1.1 entier 1

  10. définit le type de variable $ 2 sur absolu (pour delta est 2)

    snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.4.1.2 entier 1

  11. définit le type de variable $ 3 sur absolu (pour delta est 2)

    snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.4.1.3 entier 1

  12. Définissez les lignes de expObjectTable sur active

    snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.10.1.1 entier 1

  13. Définissez les lignes de expObjectTable sur active

    snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.10.1.2 entier 1

  14. Définissez les lignes de expObjectTable sur active

    snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.10.1.3 entier 1

  15. Active l'expression

    snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.2.3.1.3.101.49.101.120.112 entier 1

Seul script:

snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.2.3.1.3.101.49.101.120.112 integer 6
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.2.3.1.3.101.49.101.120.112 integer 5
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.2.3.1.2.101.49.101.120.112 u 1
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.1.1.4.1 s "Expression MIB - IP SLA Probes ORing"
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.1.1.2.1 s '((($1 < 2) && ($1 > 0)) || (($2 < 2) && ($2 > 0)) || (($3 < 2) && ($3 > 0)))'
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.2.1.1 objectidentifier 1.3.6.1.4.1.9.9.42.1.5.1.1.6.3000
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.2.1.2 objectidentifier 1.3.6.1.4.1.9.9.42.1.5.1.1.6.3001
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.2.1.3 objectidentifier 1.3.6.1.4.1.9.9.42.1.5.1.1.6.3002
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.4.1.1 integer 1
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.4.1.2 integer 1
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.4.1.3 integer 1
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.10.1.1 integer 1
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.10.1.2 integer 1
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.10.1.3 integer 1
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.2.3.1.3.101.49.101.120.112 integer 1
damian1baran
la source