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.
![]() | ![]() |

