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 }