Spesso mi è capitato di avere a che fare con degli switch Cisco Catalyst 3750 configurati in Stack. Grazie a questa configurazione, due o più switch vengono visti, a livello logico, come un unico commutatore. Ciò significa che a tutto lo stack può essere associato un unico indirizzo IP di management.
Ma dove sta l'inghippo? Semplice: nel caso in cui si utilizzino dei sistemi di monitoraggio della rete (ad esempio nagios), il semplice ping non è sufficiente ad indicare che tutti gli switch di uno stack funzionano correttamente. Infatti, se uno di essi si guastasse, lo stack continuerebbe ad esistere e quindi ad essere raggiungibile a livello IP.
Come fare dunque per montorare l'effettivo stato di ogni singolo switch che costituisce lo stack? La risposta è semplice: SNMP.
In particolare, gli OID da utilizzare sono reperibili su questo server FTP anonimo (la directory è /pub/mibs/oid) ed il file di riferimento è CISCO-STACKWISE-MIB.oid
Per la precisione, gli OID che indicano lo stato di funzionamento relativo agli switch che costituiscono uno stack sono i seguenti:
.1.3.6.1.4.1.9.9.500.1.2.1.1.6.1001 (per il primo switch)
.1.3.6.1.4.1.9.9.500.1.2.1.1.6.2001 (per il secondo switch)
.1.3.6.1.4.1.9.9.500.1.2.1.1.6.3001 (per il terzo switch)
e così via.
Per verificare che gli OID sopra citati siano effettivamente supportati nell'ambito dello stack, potete utilizzare il comando snmpget (se avete a disposizione una linux box) oppure il tool Getif (nel caso in cui la vostra workstation sia una macchina Windows).
Configuriamo ora nagios. Per prima cosa definiamo il comando che ci permette di controllare lo stato dei vari switch:
nightfly@nightbox:~$ cd /etc/nagios-plugins/config
nightfly@nightbox:~$ sudo nano snmp.cfg
Inseriamo la seguente direttiva:
'snmp_stack' command definition
define command {
command_name snmp_stack
command_line /usr/lib/nagios/plugins/check_snmp -H '$HOSTADDRESS$' -C '$ARG1$' -o '$ARG2$'
}
Ora che abbiamo definito il comando, aggiungiamo il servizio per il monitoraggio degli switch all'interno del file di configurazione che identifica lo stack:
nightfly@nightbox:~$ cd /etc/nagios3/conf.d
nightfly@nightbox:~$ sudo nano host-stack_nagios3.cfg
Inseriamo quanto segue:
define service {
use generic-service ; Name of service template to use
host_name Stack
service_description Status Switch 1
check_command snmp_stack!vostracommunitystring!.1.3.6.1.4.1.9.9.500.1.2.1.1.6.1001
}
define service {
use generic-service ; Name of service template to use
host_name Stack
service_description Status Switch 2
check_command snmp_stack!vostracommunitystring!.1.3.6.1.4.1.9.9.500.1.2.1.1.6.2001
}
define service {
use generic-service ; Name of service template to use
host_name Stack
service_description Status Switch 3
check_command snmp_stack!vostracommunitystring!.1.3.6.1.4.1.9.9.500.1.2.1.1.6.3001
}
Ovviamente sono partito dal presupposto che lo stack sia composto da 3 switch.
Salviamo il file e riavviamo nagios:
nightfly@nightbox:~$ sudo service nagios3 restart
e finalmente potremo monitorare l'effettivo stato degli switch di uno stack.
A presto.