In precedenza abbiamo discusso su come utilizzare Nagios per monitorare un server Linux e Windows. In questo articolo, esaminiamo come monitorare le sessioni attive e la temperatura del dispositivo VPN utilizzando Nagios. Puoi monitorare praticamente qualsiasi cosa su un hardware usando il plug-in check_snmp di nagios.
1. Identifica un file cfg per definire host, gruppo host e servizi per il dispositivo VPN
Puoi creare un nuovo file vpn.cfg o riutilizzare uno dei file .cfg esistenti. In questo articolo, ho aggiunto il servizio VPN e la definizione del gruppo host a un file switch.cfg esistente. Assicurati che la riga switch.cfg nel file nagios.cfg non sia commentata come mostrato di seguito.
# grep switch.cfg /usr/local/nagios/etc/nagios.cfg cfg_file=/usr/local/nagios/etc/objects/switch.cfg
2. Aggiungi un nuovo gruppo host per il dispositivo VPN in switch.cfg
Aggiungi il seguente hostgroup ciscovpn al file /usr/local/nagios/etc/objects/switch.cfg.
define hostgroup{ hostgroup_name ciscovpn alias Cisco VPN Concentrator }
3. Aggiungi un nuovo host per il dispositivo VPN in switch.cfg
In questo esempio, ho definito due host, uno per il concentratore VPN Cisco primario e un altro per il concentratore VPN Cisco secondario nel file /usr/local/nagios/etc/objects/switch.cfg. Modifica la direttiva dell'indirizzo sull'indirizzo IP del tuo dispositivo VPN di conseguenza.
define host{ use generic-host host_name cisco-vpn-primary alias Cisco VPN Concentrator Primary address 192.168.1.7 check_command check-host-alive max_check_attempts 10 notification_interval 120 notification_period 24x7 notification_options d,r contact_groups admins hostgroups ciscovpn } define host{ use generic-host host_name cisco-vpn-secondary alias Cisco VPN Concentrator Secondary address 192.168.1.9 check_command check-host-alive max_check_attempts 10 notification_interval 120 notification_period 24x7 notification_options d,r contact_groups admins hostgroups ciscovpn }
4. Aggiungi nuovi servizi per monitorare le sessioni attive VPN e la temperatura in switch.cfg
Aggiungi il servizio "Temperatura" e il servizio "Sessioni VPN attive" al file /usr/local/nagios/etc/objects/switch.cfg.
define service{ use generic-service hostgroup_name ciscovpn service_description Temperature is_volatile 0 check_period 24x7 max_check_attempts 4 normal_check_interval 10 retry_check_interval 2 contact_groups admins notification_interval 960 notification_period 24x7 check_command check_snmp!-l Temperature -o .1.3.6.1.4.1.3076.2.1.2.22.1.29.0,.1.3.6.1.4.1.3076.2.1.2.22.1.33.0 -w 37,:40 -c :40,:45 } define service{ use generic-service hostgroup_name ciscovpn service_description Active VPN Sessions is_volatile 0 check_period 24x7 max_check_attempts 4 normal_check_interval 5 retry_check_interval 1 contact_groups admins notification_interval 960 notification_period 24x7 check_command check_snmp!-l ActiveSessions -o 1.3.6.1.4.1.3076.2.1.2.17.1.7.0,1.3.6.1.4.1.3076.2.1.2.17.1.9.0 -w :70,:8 -c :75,:10 }
5. Convalida check_snmp dalla riga di comando
Il plug-in Check_snmp utilizza il comando 'snmpget' dal pacchetto NET-SNMP. Assicurati che net-snmp sia installato sul tuo sistema come mostrato di seguito. In caso contrario, scaricalo dal sito Web NET-SNMP.
# rpm -qa | grep -i net-snmp net-snmp-libs-5.1.2-11.el4_6.11.2 net-snmp-5.1.2-11.el4_6.11.2 net-snmp-utils-5.1.2-11.EL4.10
Assicurati che check_snmp funzioni dalla riga di comando come mostrato di seguito.
# /usr/local/nagios/libexec/check_snmp -H 192.168.1.7 \ -P 2c -l Temperature -w :35,:40 -c :40,:45 \ -o .1.3.6.1.4.1.3076.2.1.2.22.1.29.0,.1.3.6.1.4.1.3076.2.1.2.22.1.33.0 Temperature OK - 35 38 | iso.3.6.1.4.1.3076.2.1.2.22.1.29.0=35 iso.3.6.1.4.1.3076.2.1.2.22.1.33.0=38 # /usr/local/nagios/libexec/check_snmp -H 192.168.1.7 \ -P 2c -l ActiveSessions -w :80,:40 -c :100,:50 \ -o 1.3.6.1.4.1.3076.2.1.2.17.1.7.0,1.3.6.1.4.1.3076.2.1.2.17.1.9.0 ActiveSessions CRITICAL - *110* 20 | iso.3.6.1.4.1.3076.2.1.2.17.1.7.0=110 iso.3.6.1.4.1.3076.2.1.2.17.1.9.0=20
In questo esempio, i seguenti parametri vengono passati a check_snmp:
- -H, –hostname=INDIRIZZO Nome host, indirizzo IP o socket unix (deve essere un percorso assoluto)
- -P, –protocol=[1|2c|3] Versione del protocollo SNMP
- -l, –label=STRINGA Etichetta del prefisso per l'output dal plug-in. vale a dire Temerature o ActiveSession
- -w, –warning=INTEGER_RANGE(s) Intervalli che non risulteranno in uno stato di AVVISO
- -c, –critical=INTEGER_RANGE(s) Intervalli che non risulteranno in uno stato CRITICO
- -o, –oid=OID/i Identificatori di oggetti o variabili SNMP di cui si desidera interrogare il valore. Assicurati di fare riferimento al manuale del tuo dispositivo per vedere tutti gli oid supportati e disponibili per la tua attrezzatura. Se hai più di due oid, separali con una virgola.
Nell'esempio di ActiveSessions, vengono monitorati due OID. ovvero uno per i tunnel VPN LAN-2-LAN (iso.3.6.1.4.1.3076.2.1.2.17.1.7.0) e un altro per le sessioni PPTP (iso.3.6.1.4.1.3076.2.1.2.17.1.9.0). Nell'esempio precedente, le sessioni attive VPN LAN-2-LAN hanno superato il limite critico di 100.
Object Identifier (OID) è organizzato in un albero MIB (Management Information Base) gerarchico con radici e rami basati sullo standard Internet.
6. Convalida la configurazione e riavvia nagios
Verifica la configurazione di nagios per assicurarti che non ci siano avvisi ed errori.
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg Total Warnings: 0 Total Errors: 0 Things look okay - No serious problems were detected during the pre-flight check
Riavvia il server nagios per iniziare a monitorare il dispositivo VPN.
# /etc/rc.d/init.d/nagios stop Stopping nagios: .done. # /etc/rc.d/init.d/nagios start Starting nagios: done.
Verifica lo stato delle sessioni attive e della temperatura del dispositivo VPN dall'interfaccia utente web di Nagios (http://{nagios-server}/nagios) come mostrato di seguito.
Fig – UI Web di Nagios che mostra lo stato del dispositivo VPN
7. Risoluzione dei problemi
Problema: check_snmp funziona senza problemi dalla riga di comando di Linux, ma l'interfaccia utente web di Nagios mostra il seguente errore:
Status Information: SNMP problem - No data received from host CMD: /usr/bin/snmpget -t 1 -r 5 -m '' -v 1 [authpriv] 192.168.1.7:161
Soluzione: Assicurati che la definizione check_command per il plug-in check_snmp nel file switch.cfg sia definita correttamente. Gli argomenti del comando check_snmp devono corrispondere alla definizione check_snmp in /usr/local/nagios/etc/commands.cfg
check_command check_snmp!Temperature!.1.3.6.1.4.1.3076.2.1.2.22.1.29.0,.1.3.6.1.4.1.3076.2.1.2.22.1.33.0!37,:40!:40,:45 [Note: This is wrong, as it is passing 4 arguments to check_snmp command The value after the exclamation is considered as one argument. !{argument1}!{argument2}] check_command check_snmp!-l Temperature -o .1.3.6.1.4.1.3076.2.1.2.22.1.29.0,.1.3.6.1.4.1.3076.2.1.2.22.1.33.0 -w 37,:40 -c :40,:45 [Note: This is correct, as it is passing 1 argument to check_snmp command The value after the exclamation is considered as one argument. !{argument1}]
Nella definizione del comando check_snmp mostrata di seguito, c'è un solo argomento $ARG1$. Quindi, in switch.cfg, mentre definisci check_snmp, devi passare solo un argomento come mostrato sopra.
# 'check_snmp' command definition define command{ command_name check_snmp command_line $USER1$/check_snmp -H $HOSTADDRESS$ $ARG1$ }
Lettura consigliata
Questi sono i due migliori libri che coprono l'ultimo Nagios 3. Ti consiglio vivamente di leggere entrambi questi libri per ottenere una comprensione dettagliata di Nagios.