Archivi tag: ram

Solaris 10 in single user mode

Che Solaris sia un SO a dir poco “fondamentalista” è risaputo. Ciò significa che un arresto dirty di tale sistema porta a dei malfunzionamenti di una certa gravità, tra cui l’avvio in sigle user mode permanente.

logo_solaris10_upgrade.gif

Per la precisione, l’errore che mi sono beccato più e più volte era il seguente:

/lib/svc/method/fs-usr filed with exit status 96

/system/filesystem/usr:default misconfigured: transitioned to maintenance

quel transitioned to maintenance significa, in soldoni, che il sistema non è riuscito ad avviarsi correttamente e che quindi è stato costretto a partire in single user mode.

Lanciando un:

svcs -xvm

non sono riuscito ad ottenere maggiori dettagli, sicchè ho deciso di addentrarmi nella miriade di file di log di cui è dotato il sistema in questione.

Gira che ti rigira, nella directory /var/svc/log ho trovato il file che mi interessava, ovvero:

system-filesystem-usr:default.log

Dopo un cat ho focalizzato la mia attenzione sulla seguente entry:

[ giu 12 10:19:57 Executing start method ("/lib/svc/method/fs-usr") ]
dumpadm: impossibile aprire /dev/dump: File o directory non trovati
[ giu 12 10:20:00 Method "start" exited with status 96 ]

Si avete capito bene, l’errore è tanto banale quanto rognoso. Mi spiego meglio: quando il sistema è stato arrestato brutalmente, non è riuscito a salvare in un apposito file (leggasi /dev/dump) il dump della memoria volatile (aka RAM), dunque, non trovandolo durante il bootstrap, si avviava in single user mode.

Come ho risolto?

cd /dev

touch dump

Fine dei giochi. Semplice, no?

Alla prossima.

Monitorare la RAM su un dispositivo Cisco mediante SNMP

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 in uso e quella libera. 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 attualmente in uso dal processor pool)

.1.3.6.1.4.1.9.9.48.1.1.1.5.1

(per la memoria attualmente in uso dall’I/O pool)

.1.3.6.1.4.1.9.2.1.8.0

(per la memoria libera)

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$','$ARG3$' -w '$ARG4$','$ARG5$','$ARG6$' -c '$ARG7$','$ARG8$','$ARG9$' -u "bytes,bytes,bytes" -l "Memory" -C '$ARG10$'
 }

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,.1.3.6.1.4.1.9.2.1.8.0!140000000,10000000!60000000:!100000000,12000000!20000000:!vostracommunitystring
 }

dove i : dopo la soglia di warning 6000000 e quella di critical 40000000 indicano rispettivamente <60000000 e <40000000 (poichè abbiamo a che fare con la memoria libera).

Riavviamo Nagios:

nightfly@nightbox:~$ sudo service nagio3 restart

ed abbiamo finito.

A presto.