Per visualizzare la RAM installata su un qualsiasi dispositivo Cisco è sufficiente lanciare il comando sh ver:
Router# sh ver
La parte di output che ci interessa è simile alla seguente:
Cisco 2851 (revision 53.51) with 249856K/12288K bytes of memory.
Il primo valore, ovvero 249856K indica la memoria libera, mentre il secondo, ovvero 12288K, indica la memoria utilizzata. Sommando dunque questi due valori otterremo la dimensione totale della RAM installata sul dispositivo (in tal caso 256 MB).
Ora, vogliamo monitorare, mediante SNMP, la RAM libera e quella in uso. Per fare ciò è possibile utilizzare i seguenti OID:
.1.3.6.1.4.1.9.9.48.1.1.1.5.1 (per la memoria libera)
.1.3.6.1.4.1.9.9.48.1.1.1.5.2 (per la memoria attualmente in uso)
Definiamo ora il comando per monitorare la memoria in uso e la memoria libera attraverso delle query SNMP:
nightfly@nightbox:~$ cd /etc/nagios-plugins/config
nightfly@nightbox:~$ sudo nano snmp.cfg
inseriamo la direttiva:
'snmp_cisco_memory_usage' command definition
define command {
command_name snmp_cisco_memory_usage
command_line /usr/lib/nagios/plugins/check_snmp -H '$HOSTADDRESS$' -o '$ARG1$','$ARG2$' -w '$ARG3$','$ARG4$' -c '$ARG5$','$ARG6$' -u "bytes,bytes" -l "Memory" -C '$ARG7$'
}
In particolare, la flag -l serve per definire una label, la flag -u indica l'unità di misura a cui si riferisce l'output della query, la flag -w specifica le soglie di warning per la memoria libera ed in uso, la flag -c specifica le soglie di critical per la memoria libera ed in uso.
Non ci resta che aggiungere il servizio per il monitoraggio della RAM all'interno del file in cui è definito l'host Cisco:
nightfly@nightbox:~$ cd /etc/nagios3/conf.d
nightfly@nightbox:~$ sudo nano host-cisco_nagios3.cfg
Inseriamo quanto segue:
define service {
use generic-service ; Name of service template to use
host_name Cisco
service_description Cisco memory usage check
check_command snmp_cisco_memory_usage!.1.3.6.1.4.1.9.9.48.1.1.1.5.1,
.1.3.6.1.4.1.9.9.48.1.1.1.5.2!140000000,10000000!100000000,12000000!vostracommunitystring
}
Riavviamo nagios:
nightfly@nightbox:~$ sudo service nagio3 restart
ed abbiamo finito.
A presto.