Quindi, in questo articolo aggiungeremo la notifica SMS in Nagios.
Nagios è lo strumento open source di monitoraggio di rete e server più utilizzato. Quindi, utilizziamo Nagios per monitorare diversi tipi di host abilitati SNMP come switch, router, server per servizi critici. Inoltre, Nagios può anche recuperare i dati sulle prestazioni del server utilizzando l'agente NRPE. Inoltre portale web visivo e allarme sonoro, possiamo inviare notifiche e-mail utilizzando Nagios. Quindi, ora invieremo notifiche SMS da Nagios utilizzando Kannel SMS Gateway.
Abbiamo già un server Nagios installato e funzionante. Quindi, per installare e configurare il server Nagios Monitoring, controlla i nostri altri argomenti su Installazione e configurazione di Nagios.
Quindi, questo sarà il nostro ambiente di laboratorio:
IP del server Nagios e Kannel:192.168.10.38
Canale Invia SMS Utente:canale
Password utente invio SMS Kannel:kannelpasswd
Configurazione di Nagios:
Quindi, in questo ambiente di laboratorio abbiamo installato Nagios dal tarball sorgente nella directory predefinita /usr/local/nagios/
Per prima cosa dovremo definire i comandi in /usr/local/nagios/etc/objects/commands.cfg file di configurazione dell'oggetto. Quindi, per definire i comandi, aggiungi le righe seguenti in commands.cfg file
# '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@-
}
Quindi, ora aggiungeremo il numero di cellulare dell'utente di destinazione della notifica nel file di configurazione dell'oggetto contatto di Nagios:/usr/local/nagios/etc/objects/contacts.cfg
Esempio di contatto definizione:
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
}
Inoltre, possiamo inviare notifiche SMS ed e-mail allo stesso contatto utilizzando la definizione di seguito
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
}
Successivamente, crea un gruppo di contatti per coloro che riceveranno una notifica per un servizio. Quindi, definiamo un gruppo di contatti sotto contratto definizione per gli amministratori di rete che riceveranno una notifica in caso di guasto di un servizio di rete
define contactgroup {
contactgroup_name netadmins
alias Network Administrators
members omar,shamim
}
Quindi, abbiamo un router MikroTik con 3 porte upstream:sfp1, sfp2 e sfp3, che aggiungeremo nel sistema di monitoraggio.
Quindi, crea un file di configurazione dell'oggetto /usr/local/nagios/etc/objects/nethosts.cfg per il monitoraggio dei dispositivi di rete con i contenuti seguenti
#### 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
}
Sopra check_snmp i comandi richiedono MIB:RFC1213-MIB, che dovrebbe essere preinstallato nel sistema. Quindi, se non è presente nel tuo sistema, puoi scaricarlo e installarlo utilizzando i seguenti pacchetti
Per Debian/Ubuntu: Installa snmp-mibs-downloader da non gratuito repo, quindi esegui download-mibs comando dalla shell
# apt-get install -y snmp-mibs-downloader
# download-mibs
Quindi, se usi CentOS 7/8
# yum install net-snmp-libs
Inoltre, includi il file di configurazione dell'oggetto nethosts.cfg in /usr/local/nagios/etc/nagios.cfg
Quindi, esegui /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg per verificare le tue configurazioni
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Quindi, se non ci sono errori, riavvia Nagios Service
# systemctl restart nagios.service
Notifiche di Nagios:
Quindi, controlla il portale Nagios per lo stato della porta Router-1
Quindi, abbiamo scoperto che tutte e 3 le porte SFP sono in attivo/in esecuzione stato. Ora disconnetteremo manualmente la porta SFP-1 che dovrebbe attivare una notifica di inattività e inviare SMS al gruppo di amministrazione di rete
Registro delle notifiche di Nagios:
Registro canale:
Ricollegare il cavo:
Inoltre, controlla il registro delle notifiche:
Registro canale:
Infine, il tecipiente Cellulare: