Nagios est l'une des meilleures solutions de surveillance de serveur et de réseau open source disponibles. En utilisant le framework flexible nagios, vous pouvez surveiller à peu près n'importe quoi (y compris la base de données et l'application personnalisée). Cet article, en 4 étapes simples, explique comment configurer les définitions de contact qui recevront une notification lorsqu'un hôte ou un service rencontre des problèmes.
Plus tôt, nous avons également discuté de la configuration de Nagios et de la surveillance du serveur Windows, de la surveillance du serveur Linux, de la surveillance des sessions VPN et de la surveillance du commutateur réseau.
1. Définir le modèle de contact générique dans templates.cfg
L'installation de Nagios donne un modèle de contact générique par défaut qui peut être utilisé comme référence pour créer vos contacts. Veuillez noter que toutes les directives mentionnées dans le modèle de contact générique ci-dessous sont obligatoires. Ainsi, si vous avez décidé de ne pas utiliser la définition de modèle de contact générique dans vos contacts, vous devez définir vous-même toutes ces définitions obligatoires dans vos contacts.
Le contact générique suivant est déjà disponible sous /usr/local/nagios/etc/objects/templates.cfg. En outre, le templates.cfg est inclus dans le nagios.cfg par défaut comme indiqué ci-dessous.
Veuillez noter que l'une de ces directives mentionnées dans le fichier templates.cfg peut être remplacée lorsque vous définissez un contact réel à l'aide de ce modèle générique.
# 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
}
- Nom – Cela définit le nom du modèle de contact (generic-contact).
- service_notification_period – Cela définit quand nagios peut envoyer une notification sur les problèmes de services (par exemple, Apache down). Par défaut, il s'agit d'une période de 24 × 7, qui est définie sous /usr/local/nagios/etc/objects/timeperiods.cfg
- host_notification_period – Cela définit quand nagios peut envoyer une notification sur les problèmes de l'hôte (par exemple, le serveur est tombé en panne). Par défaut, il s'agit d'une période de 24 x 7.
- service_notification_options – Cela définit le type de notification de service qui peut être envoyé. Par défaut, cela définit tous les états de service possibles, y compris les événements de battement. Cela inclut également les activités d'interruption de service planifiées.
- host_notification_options – Cela définit le type de notifications d'hôte qui peuvent être envoyées. Par défaut, cela définit tous les états d'hôte possibles, y compris les événements de battement. Cela inclut également les activités d'indisponibilité planifiées de l'hôte.
- service_notification_commands – Par défaut, cela définit que le contact doit recevoir une notification sur les problèmes de service (par exemple, base de données en panne) par e-mail. Vous pouvez également définir des commandes supplémentaires et l'ajouter à cette directive. Par exemple, vous pouvez définir votre propre commande notify-service-by-sms.
- host_notification_commands – Par défaut, cela définit que le contact doit recevoir une notification sur les problèmes de l'hôte (par exemple, l'hôte en panne) par e-mail. Vous pouvez également définir des commandes supplémentaires et l'ajouter à cette directive. Par exemple, vous pouvez définir votre propre commande notify-host-by-sms.
2. Définir des contacts individuels dans contacts.cfg
Une fois que vous avez confirmé que les modèles de contacts génériques sont correctement définis, vous pouvez commencer à définir une définition de contacts individuels pour toutes les personnes de votre organisation susceptibles de recevoir des notifications de nagios. Veuillez noter que le simple fait de définir un contact ne signifie pas qu'il recevra une notification. Plus tard, vous devrez associer ce contact à une définition de service ou d'hôte, comme indiqué dans les sections suivantes ci-dessous. Alors, n'hésitez pas à définir tous les contacts possibles ici. (par exemple, développeurs, administrateurs de base de données, administrateurs système, responsable informatique, responsable du service client, top management, etc.)
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. Définir des groupes de contacts avec plusieurs contacts dans contacts.cfg
Une fois que vous avez défini les contacts individuels, vous pouvez également les regrouper pour envoyer les notifications appropriées. Par exemple, seuls les administrateurs de bases de données doivent être informés de la définition du service d'arrêt de la base de données. Ainsi, un groupe db-admins peut être nécessaire. En outre, seuls les administrateurs système Unix doivent être avertis lorsqu'Apache tombe en panne. Ainsi, un groupe unix-admins peut être nécessaire. N'hésitez pas à définir autant de groupes que vous le jugez nécessaire. Plus tard, vous pourrez utiliser ces groupes dans les définitions individuelles de service et d'hôte.
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. Attacher des groupes de contacts ou des contacts individuels aux définitions de service et d'hôte
Une fois que vous avez défini les contacts individuels et les groupes de contacts, il est temps de commencer à les associer à une définition d'hôte ou de service spécifique, comme indiqué ci-dessous.
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
}