GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo monitorear las sesiones activas de VPN y la temperatura usando Nagios

Anteriormente hablamos sobre cómo usar Nagios para monitorear un servidor Linux y Windows. En este artículo, revisemos cómo monitorear las sesiones activas y la temperatura del dispositivo VPN usando Nagios. Puede monitorear prácticamente cualquier cosa sobre un hardware utilizando el complemento nagios check_snmp.

1. Identifique un archivo cfg para definir el host, el grupo de host y los servicios para el dispositivo VPN

Puede crear un nuevo archivo vpn.cfg o reutilizar uno de los archivos .cfg existentes. En este artículo, agregué el servicio VPN y la definición del grupo de host a un archivo switch.cfg existente. Asegúrese de que la línea switch.cfg en el archivo nagios.cfg no esté comentada como se muestra a continuación.

# grep switch.cfg /usr/local/nagios/etc/nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/switch.cfg

2. Agregue un nuevo grupo de host para el dispositivo VPN en switch.cfg

Agregue el siguiente grupo de host ciscovpn al archivo /usr/local/nagios/etc/objects/switch.cfg.

define hostgroup{
hostgroup_name  ciscovpn
alias           Cisco VPN Concentrator
}

3. Agregue un nuevo host para el dispositivo VPN en switch.cfg

En este ejemplo, he definido dos hosts, uno para el concentrador de VPN de Cisco principal y otro para el secundario en el archivo /usr/local/nagios/etc/objects/switch.cfg. Cambie la directiva de dirección a la dirección IP de su dispositivo VPN en consecuencia.

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. Agregue nuevos servicios para monitorear las sesiones activas de VPN y la temperatura en switch.cfg

Agregue el servicio "Temperatura" y el servicio "Sesiones VPN activas" al archivo /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. Valide check_snmp desde la línea de comando

El complemento Check_snmp utiliza el comando 'snmpget' del paquete NET-SNMP. Asegúrese de que net-snmp esté instalado en su sistema como se muestra a continuación. Si no, descárguelo del sitio web de 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

Asegúrese de que check_snmp funcione desde la línea de comandos como se muestra a continuación.

# /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

En este ejemplo, los siguientes parámetros se pasan a check_snmp:

  • -H, –hostname=DIRECCIÓN Nombre de host, dirección IP o socket de Unix (debe ser una ruta absoluta)
  • -P, –protocolo=[1|2c|3] Versión del protocolo SNMP
  • -l, –label=CADENA Etiqueta de prefijo para la salida del complemento. es decir, temperatura o sesiones activas
  • -w, –warning=INTEGER_RANGE(s) Rango(s) que no darán como resultado un estado de ADVERTENCIA
  • -c, –critical=INTEGER_RANGE(s) Rango(s) que no darán como resultado un estado CRÍTICO
  • -o, –oid=OID(s) Identificador(es) de objeto o variables SNMP cuyo valor desea consultar. Asegúrese de consultar el manual de su dispositivo para ver todos los oid compatibles y disponibles para su equipo. Si tiene más de dos oid, sepárelos con comas.

En el ejemplo de ActiveSessions, se están monitoreando dos OID. es decir, uno para túneles VPN LAN-2-LAN (iso.3.6.1.4.1.3076.2.1.2.17.1.7.0) y otro para sesiones PPTP (iso.3.6.1.4.1.3076.2.1.2.17.1.9.0). En el ejemplo anterior, las sesiones activas VPN LAN-2-LAN superaron el límite crítico de 100.

El identificador de objeto (OID) se organiza en un árbol jerárquico de base de información de administración (MIB) con raíces y ramas basadas en el estándar de Internet.

6. Validar configuración y reiniciar nagios

Verifique la configuración de nagios para asegurarse de que no haya advertencias ni errores.

# /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

Reinicie el servidor nagios para comenzar a monitorear el dispositivo VPN.

# /etc/rc.d/init.d/nagios stop
Stopping nagios: .done.

# /etc/rc.d/init.d/nagios start
Starting nagios: done.

Verifique el estado de ActiveSessions y Temperature del dispositivo VPN desde la interfaz de usuario web de Nagios (http://{nagios-server}/nagios) como se muestra a continuación.


Fig:interfaz de usuario web de Nagios que muestra el estado del dispositivo VPN

7. Solución de problemas

Problema: check_snmp funciona sin problemas desde la línea de comandos de Linux, pero la interfaz de usuario web de Nagios muestra el siguiente error:

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

Solución: Asegúrese de que la definición de check_command para el complemento check_snmp en el archivo switch.cfg esté definida correctamente. Los argumentos del comando check_snmp deben coincidir con la definición de check_snmp en /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}]

En la definición del comando check_snmp que se muestra a continuación, solo hay un argumento $ARG1$. Entonces, en switch.cfg, al definir check_snmp, debe pasar solo un argumento como se muestra arriba.

# 'check_snmp' command definition
define command{
command_name    check_snmp
command_line    $USER1$/check_snmp -H $HOSTADDRESS$ $ARG1$
}

Lecturas recomendadas

Estos son los dos mejores libros que cubren el último Nagios 3. Le recomiendo que lea estos dos libros para obtener una comprensión detallada de Nagios.


Linux
  1. Cómo monitorear la temperatura de una CPU en el sistema Redhat 7 Linux

  2. Cómo instalar Nagios 4 y monitorear sus servidores en Ubuntu 20.04

  3. Cómo monitorear una máquina remota de Windows usando Nagios en Linux

  4. Cómo monitorear el conmutador de red y los puertos usando Nagios

  5. Cómo monitorear y registrar el tráfico de red en Linux usando vnStat

Cómo acercar y alejar videos usando FFmpeg

Cómo grabar sesiones de terminal de Linux usando Asciinema

Cómo monitorear el servidor Linux y las métricas desde el navegador usando Scout Realtime

Cómo monitorear una máquina Linux a través de Nagios

Cómo usar el comando DD y cómo grabar ISO usándolo

Cómo configurar el servidor y el cliente VPN de Linux usando OpenVPN