Entonces, en este artículo vamos a agregar notificaciones por SMS en Nagios.
Nagios es la herramienta de monitoreo de servidores y redes de código abierto más utilizada. Por lo tanto, usamos Nagios para monitorear diferentes tipos de hosts habilitados para SNMP como conmutadores, enrutadores, servidores para servicios críticos. Además, Nagios también puede obtener datos de rendimiento del servidor mediante el agente NRPE. Además del portal web visual y la alarma de sonido, podemos enviar notificaciones por correo electrónico utilizando Nagios. Entonces, ahora enviaremos una notificación por SMS desde Nagios utilizando Kannel SMS Gateway.
Ya tenemos un servidor Nagios instalado y funcionando. Por lo tanto, para instalar y configurar el servidor de monitoreo de Nagios, consulte nuestros otros temas sobre la instalación y configuración de Nagios.
Entonces, este será nuestro entorno de laboratorio:
Servidor Nagios y Kannel IP:192.168.10.38
Kannel Enviar SMS Usuario:kannel
Kannel Enviar SMS Contraseña de usuario:kannelpasswd
Configurando Nagios:
Entonces, en este entorno de laboratorio, hemos instalado Nagios desde el código fuente en el directorio predeterminado /usr/local/nagios/
Primero necesitaremos definir comandos en /usr/local/nagios/etc/objects/commands.cfg archivo de configuración de objetos. Por lo tanto, para definir comandos, agregue líneas debajo en commands.cfg archivo
# 'notify-host-by-sms' command definition
define command{
command_name notify-host-by-sms
command_line /usr/bin/printf "%b" "Nagios: *$NOTIFICATIONTYPE$* \n$HOSTALIAS$ is $HOSTSTATE$ Info is: $HOSTOUTPUT$ Time: $SHORTDATETIME$" | /usr/bin/curl "http://192.168.10.38:13013/cgi-bin/sendsms?username=kannel&password=kannelpasswd&to=$CONTACTPAGER$" -G --data-urlencode text@-
}
# 'notify-service-by-sms' command definition
define command{
command_name notify-service-by-sms
command_line /usr/bin/printf "%b" "Nagios: *$NOTIFICATIONTYPE$*\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nStat: $SERVICESTATE$\nInfo: $SERVICEOUTPUT$\nTime: $SHORTDATETIME$" | /usr/bin/curl "http://192.168.10.38:13013/cgi-bin/sendsms?username=kannel&password=kannelpasswd&to=$CONTACTPAGER$" -G --data-urlencode text@-
}
Luego, ahora agregaremos el número de teléfono móvil del usuario objetivo de la notificación en el archivo de configuración del objeto de contacto de Nagios:/usr/local/nagios/etc/objects/contacts.cfg
Ejemplo de contacto definición:
define contact{
contact_name omar
use generic-contact
alias Omar Ali
service_notification_commands notify-service-by-sms
host_notification_commands notify-host-by-sms
email [email protected]
pager +88017XXXXXXXX
}
Además, podemos enviar notificaciones por SMS y correos electrónicos al mismo contacto usando la siguiente definición
define contact{
contact_name shamim
use generic-contact
alias Shamim Ahmed
service_notification_commands notify-service-by-email,notify-service-by-sms
host_notification_commands notify-host-by-email,notify-host-by-sms
email [email protected]
pager +88017YYYYYYYY
}
Después de eso, cree un grupo de contacto para aquellos que recibirán una notificación de un servicio. Entonces, definamos un grupo de contacto bajo contrato definición para administradores de red que recibirán una notificación si algún servicio de red falla
define contactgroup {
contactgroup_name netadmins
alias Network Administrators
members omar,shamim
}
Entonces, tenemos un enrutador MikroTik que tiene 3 puertos ascendentes:sfp1, sfp2 y sfp3, que vamos a agregar en el sistema de monitoreo.
Luego, cree un archivo de configuración de objetos /usr/local/nagios/etc/objects/nethosts.cfg para monitorear dispositivos de red con los siguientes contenidos
#### Host Defination ####
define host {
use generic-switch
host_name router-1
alias Router-1
address 192.168.10.1
hostgroups net-hosts
notifications_enabled 1
contact_groups netadmins
}
#### Host Group Defination ####
define hostgroup {
hostgroup_name net-hosts
alias Network Hosts
}
#### Service Defination for Network hosts ####
define service {
use generic-service
host_name router-1
service_description SFP-1
check_command check_snmp!-C snmpCommunity -o ifOperStatus.1 -r 1 -m RFC1213-MIB
check_interval 3
retry_interval 1
notifications_enabled 1
contact_groups netadmins
}
define service {
use generic-service
host_name router-1
service_description SFP-2
check_command check_snmp!-C snmpCommunity -o ifOperStatus.2 -r 1 -m RFC1213-MIB
check_interval 3
retry_interval 1
notifications_enabled 1
contact_groups netadmins
}
define service {
use generic-service
host_name router-1
service_description SFP-3
check_command check_snmp!-C snmpCommunity -o ifOperStatus.3 -r 1 -m RFC1213-MIB
check_interval 3
retry_interval 1
notifications_enabled 1
contact_groups netadmins
}
Por encima de check_snmp commands necesita MIB:RFC1213-MIB, que debe estar preinstalado en su sistema. Entonces, si no está presente en su sistema, puede descargarlo e instalarlo usando los siguientes paquetes
Para Debian/Ubuntu: Instale snmp-mibs-downloader de no libre repo, luego ejecute download-mibs comando desde shell
# apt-get install -y snmp-mibs-downloader
# download-mibs
Entonces, si usa CentOS 7/8
# yum install net-snmp-libs
Además, incluya el archivo de configuración del objeto nethosts.cfg en /usr/local/nagios/etc/nagios.cfg
Entonces, ejecute /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg para verificar sus configuraciones
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Entonces, si no hay ningún error, reinicie el servicio Nagios
# systemctl restart nagios.service
Notificaciones de Nagios:
Luego, consulte el portal de Nagios para conocer el estado del puerto del enrutador-1
Entonces, encontramos que los 3 puertos SFP están en funcionamiento Expresar. Ahora vamos a desconectar manualmente el puerto SFP-1, lo que debería activar una notificación de inactividad y enviar un SMS al grupo de administración de la red
Registro de notificaciones de Nagios:
Registro de canales:
Reconexión del cable:
Además, consulte el registro de notificaciones:
Registro de canales:
Finalmente, el tecipient Teléfono Móvil: