Nagios è uno dei migliori server open source e soluzioni di monitoraggio della rete disponibili. Utilizzando il framework flessibile di nagios, puoi monitorare praticamente qualsiasi cosa (inclusi database e applicazioni personalizzate). Questo articolo, utilizzando 4 semplici passaggi, spiega come impostare le definizioni dei contatti che riceveranno una notifica in caso di problemi con un host o un servizio.
In precedenza abbiamo anche discusso su come configurare Nagios e monitorare il server Windows, monitorare il server Linux, monitorare le sessioni VPN e monitorare lo switch di rete.
1. Definisci il modello di contatto generico in templates.cfg
L'installazione di Nagios fornisce un modello di contatto generico predefinito che può essere utilizzato come riferimento per creare i contatti. Si prega di notare che tutte le direttive menzionate nel modello di contatto generico di seguito sono obbligatorie. Quindi, se hai deciso di non utilizzare la definizione del modello di contatto generico nei tuoi contatti, dovresti definire tu stesso tutte queste definizioni obbligatorie all'interno dei tuoi contatti.
Il seguente contatto generico è già disponibile in /usr/local/nagios/etc/objects/templates.cfg. Inoltre, templates.cfg è incluso in nagios.cfg per impostazione predefinita, come mostrato di seguito.
Tieni presente che qualsiasi di queste direttive menzionate in templates.cfg può essere ignorata quando definisci un contatto reale usando questo modello generico.
# grep templates /usr/local/nagios/etc/nagios.cfg cfg_file=/usr/local/nagios/etc/objects/templates.cfg Note: generic-contact is available under /usr/local/nagios/etc/objects/templates.cfg define contact{ name generic-contact service_notification_period 24x7 host_notification_period 24x7 service_notification_options w,u,c,r,f,s host_notification_options d,u,r,f,s service_notification_commands notify-service-by-email host_notification_commands notify-host-by-email register 0 }
- Nome – Definisce il nome del modello di contatto (contatto generico).
- periodo_notifica_servizio – Definisce quando nagios può inviare notifiche sui problemi relativi ai servizi (ad esempio, Apache down). Per impostazione predefinita questo è un periodo di tempo 24×7, definito in /usr/local/nagios/etc/objects/timeperiods.cfg
- periodo_notifica_host – Definisce quando nagios può inviare notifiche sui problemi dell'host (ad esempio, il server si è bloccato). Per impostazione predefinita, questo è un periodo di tempo 24×7.
- opzioni_notifica_servizio – Definisce il tipo di notifica di servizio che può essere inviata. Per impostazione predefinita, questo definisce tutti i possibili stati del servizio inclusi gli eventi di flapping. Ciò include anche le attività programmate per i tempi di inattività del servizio.
- opzioni_notifica_host – Definisce il tipo di notifiche host che possono essere inviate. Per impostazione predefinita, questo definisce tutti i possibili stati host inclusi gli eventi di flapping. Ciò include anche le attività programmate per i tempi di inattività dell'host.
- service_notification_commands – Per impostazione predefinita, questo definisce che il contatto deve ricevere una notifica sui problemi di servizio (ad esempio, database inattivo) tramite e-mail. Puoi anche definire comandi aggiuntivi e aggiungerli a questa direttiva. Ad esempio, puoi definire il tuo comando notification-service-by-sms.
- host_notification_commands – Per impostazione predefinita, questo definisce che il contatto deve ricevere una notifica sui problemi dell'host (ad esempio, host inattivo) tramite e-mail. Puoi anche definire comandi aggiuntivi e aggiungerli a questa direttiva. Ad esempio, puoi definire il tuo comando notification-host-by-sms.
2. Definisci contatti individuali in Contacts.cfg
Dopo aver confermato che i modelli di contatto generico sono definiti correttamente, puoi iniziare a definire la definizione di contatti individuali per tutte le persone della tua organizzazione che riceverebbero notifiche da nagios. Tieni presente che solo definendo un contatto non significa che riceveranno una notifica. Successivamente è necessario associare questo contatto a una definizione di servizio o host, come mostrato nelle sezioni successive di seguito. Quindi, sentiti libero di definire tutti i possibili contatti qui. (ad esempio, sviluppatori, DBA, amministratori di sistema, IT-Manager, Customer Service Manager, Top Management ecc.)
Note: Define these contacts in /usr/local/nagios/etc/objects/contacts.cfg define contact{ contact_name sgupta use generic-contact alias Sanjay Gupta (Developer) email [email protected] pager [email protected] } define contact{ contact_name jbourne use generic-contact alias Jason Bourne (Sysadmin) email [email protected] }
3. Definisci gruppi di contatti con più contatti in Contacts.cfg
Una volta definiti i singoli contatti, puoi anche raggrupparli insieme per inviare le notifiche appropriate. Ad esempio, solo i DBA devono essere informati della definizione del servizio di inattività del database. Quindi, potrebbe essere necessario un gruppo db-admins. Inoltre, potrebbero essere solo gli amministratori di sistema Unix a dover essere avvisati quando Apache non funziona. Quindi, potrebbe essere necessario un gruppo unix-admins. Sentiti libero di definire tutti i gruppi che ritieni necessari. Successivamente potrai utilizzare questi gruppi nelle singole definizioni di servizi e host.
Note: Define contact groups in /usr/local/nagios/etc/objects/contacts.cfg define contactgroup{ contactgroup_name db-admins alias Database Administrators members jsmith, jdoe, mraj } define contactgroup{ contactgroup_name unix-admins alias Linux System Administrator members jbourne, dpatel, mshankar }
4. Allega gruppi di contatti o contatti individuali alle definizioni di servizi e host
Dopo aver definito i singoli contatti e gruppi di contatti, è il momento di iniziare ad allegarli a un host specifico o a una definizione di servizio come mostrato di seguito.
Note: Following host is defined under /usr/local/nagios/etc/objects/servers/email-server.cfg. This can be any host definition file. define host{ use linux-server host_name email-server alias Corporate Email Server address 192.168.1.14 contact_groups unix-admins } Note: Following is defined under /usr/local/nagios/etc/objects/servers/db-server.cfg. This can be any host definition file. define service{ use generic-service host_name prod-db service_description CPU Load contact_groups unix-admins check_command check_nrpe!check_load } define service{ use generic-service host_name prod-db service_description MySQL Database Status contact_groups db-admins check_command check_mysql_db }