- PagerDuty /
- Intégrations /
- Guide d'intégration Nagios – Sans agent
Guide d'intégration Nagios – Sans agent
Nagios est l'un des principaux fournisseurs d'outils open source de surveillance des infrastructures informatiques d'entreprise. Utilisé par des centaines de milliers d'utilisateurs dans le monde, Nagios permet de surveiller l'ensemble de leur infrastructure informatique, d'anticiper les problèmes, de détecter les failles de sécurité et de planifier et budgétiser les mises à niveau.
En intégrant PagerDuty à votre solution de surveillance Nagios existante, vous pouvez faire en sorte que les alertes Nagios soient envoyées directement à la personne de garde dans votre planning PagerDuty .
Le guide ci-dessous décrit comment intégrer votre installation Nagios 2, 3 ou 4 à PagerDuty à l'aide d'un simple plugin Perl. Veuillez noter que vous devez être connecté en tant que racine
pour terminer l'installation. Vous devrez peut-être modifier légèrement ces instructions en fonction de votre distribution Linux, de la configuration et de la version de Nagios. Veuillez contactez notre équipe d'assistance si vous rencontrez des difficultés pour terminer l'intégration.
Remarque : Ce guide a été remplacé par le Guide d'intégration bidirectionnelle de Nagios qui utilise le Agent de service de PagerDuty . Veuillez d'abord suivre les étapes du nouveau guide d'intégration et n'utiliser celui-ci que si vous disposez d'un système sur lequel l'agent PagerDuty ne peut pas être installé. Notez également que le script d'intégration bidirectionnelle du nouveau guide d'intégration n'est pas compatible avec l'intégration Perl telle quelle ; l'intégration bidirectionnelle n'est prise en charge qu'avec la nouvelle intégration.
Dans PagerDuty
- Accéder à Services → Annuaire des services .
- Sur votre Annuaire des services page:
- Si vous créez un nouveau service pour votre intégration, cliquez sur +Nouveau service .
- Si vous ajoutez votre intégration à un service existant, cliquez sur le nom du service auquel vous souhaitez ajouter l'intégration. Cliquez ensuite sur le bouton Intégrations onglet et cliquez sur le Ajouter une nouvelle intégration lien.
- Sélectionnez votre application dans la liste Type d'intégration menu et entrez un Nom de l'intégration .
- Si vous créez un nouveau service pour votre intégration, dans Paramètres généraux, saisissez un Nom pour votre nouveau service. Ensuite, configurez le Paramètres des incidents et Comportement en cas d'incident pour votre nouveau service.
- Cliquez sur le Ajouter un service ou Ajouter une intégration Cliquez sur le bouton « Enregistrer » pour enregistrer votre nouvelle intégration. Vous serez redirigé vers la page de votre service.
- Copiez le Clé d'intégration pour votre nouvelle intégration :
Sur votre serveur Nagios
Ce guide présente les étapes à suivre pour les distributions Linux basées sur Debian (Ubuntu) et RHEL (CentOS, Fedora). Il n'est pas nécessaire d'exécuter toutes les commandes de ce guide, mais uniquement celles correspondant à votre système. Notez que toutes les commandes fournies sont destinées à être exécutées en tant que racine
utilisateur.
- Installez les dépendances Perl nécessaires. Pour les systèmes basés sur Debian :
apt-get install libwww-perl libcrypt-ssleay-perl
Pour les systèmes basés sur RHEL :
yum install perl-libwww-perl perl-Crypt-SSLeay
- Télécharger
pagerduty_nagios.cfg
depuis GitHub :
wget https://raw.github.com/ PagerDuty/pagerduty-nagios-pl/master/pagerduty_nagios.cfg
- Ouvrir
pagerduty_nagios.cfg
dans un éditeur de texte. - Saisissez la clé d'intégration correspondant à votre service Nagios dans le
téléavertisseur
champ. La clé est une chaîne de 32 caractères qui se trouve sur la page de détails du service (étape 3 de la section PagerDuty ci-dessus). Si vous utilisez Nagios 4 : De légères modifications sont nécessaires pour les commandes spécifiées danspagerduty_nagios.cfg
comme indiqué ci-dessous. N'effectuez pas ces modifications si vous utilisez Nagios 2 ou 3.
define command { command_name notify-service-by-pagerduty command_line /usr/local/bin/pagerduty_nagios.pl enqueue -f pd_nagios_object=service -f CONTACTPAGER='$CONTACTPAGER$' -f NOTIFICATIONTYPE='$NOTIFICATIONTYPE$' -f HOSTNAME='$HOSTNAME$' -f SERVICEDESC='$SERVICEDESC$' -f SERVICESTATE='$SERVICESTATE$' -f HOSTDISPLAYNAME='$HOSTDISPLAYNAME$' -f SERVICEDISPLAYNAME='$SERVICEDISPLAYNAME$' -f SERVICEPROBLEMID='$SERVICEPROBLEMID$' } define command { command_name notify-host-by-pagerduty command_line /usr/local/bin/pagerduty_nagios.pl enqueue -f pd_nagios_object=host -f CONTACTPAGER='$CONTACTPAGER$' -f NOTIFICATIONTYPE='$NOTIFICATIONTYPE$' -f HOSTNAME='$HOSTNAME$' -f HOSTSTATE='$HOSTSTATE$' -f HOSTDISPLAYNAME='$HOSTDISPLAYNAME$' -f HOSTPROBLEMID='$HOSTPROBLEMID$' }
- Copiez le fichier de configuration Nagios à l'emplacement suivant : pour les systèmes basés sur Debian, il s'agit généralement de
/etc/nagios3/conf.d
:
cp pagerduty_nagios.cfg /etc/nagios3/conf.d
Pour les systèmes basés sur RHEL, il s'agit généralement
/etc/nagios
:cp pagerduty_nagios.cfg /etc/nagios
- Ignorez cette étape si vous utilisez une distribution basée sur Debian. Si vous utilisez une distribution RHEL, vous devrez modifier la configuration de Nagios pour charger la configuration de PagerDuty . Pour cela, ouvrez
/etc/nagios/nagios.cfg
et ajoutez cette ligne au fichier :
cfg_file=/etc/nagios/pagerduty_nagios.cfg
- Ajoutez le contact « pagerduty » au groupe de contacts principal de votre configuration Nagios. Si vous utilisez la configuration par défaut, ouvrez
/etc/nagios3/conf.d/contacts_nagios2.cfg
(pour les systèmes basés sur Debian) ou/etc/nagios/localhost.cfg
(pour les systèmes basés sur RHEL) et recherchez le groupe de contacts « admins ». Ajoutez ensuite simplement le contact « pagerduty ».
définir le groupe de contacts { contactgroup_name admins alias Nagios Administrators membres root,pagerduty ; Ajoutez pagerduty ici }
- Télécharger
pagerduty_nagios.pl
depuis GitHub et copiez-le sur/usr/local/bin
.
wget https://raw.github.com/ PagerDuty/pagerduty-nagios-pl/master/pagerduty_nagios.pl cp pagerduty_nagios.pl /usr/local/bin
- Assurez-vous que le fichier est exécutable par Nagios :
chmod 755 /usr/local/bin/pagerduty_nagios.pl
- Si ce n'est pas déjà fait, activez les macros de variables d'environnement dans
/etc/nagios3/nagios.cfg
(pour les systèmes basés sur Debian) ou/etc/nagios/nagios.cfg
(pour les systèmes basés sur RHEL) :
enable_environment_macros=1
Cette étape est obligatoire. L'intégration ne fonctionnera pas si vous n'avez pas activé les macros d'environnement.
- Modifier le
nagios
table cron de l'utilisateur :
crontab -u nagios -e
- Ajoutez la ligne suivante au fichier :
* * * * * /usr/local/bin/pagerduty_nagios.pl flush
- Redémarrez Nagios. Pour les systèmes basés sur Debian :
/etc/init.d/nagios3 redémarrer
Pour les systèmes basés sur RHEL :
redémarrage du service nagios
FAQ
Comment fonctionne cette intégration et en quoi est-elle différente de la nouvelle intégration ?
Cette intégration utilise un script Perl qui est compatible avec les anciennes distributions Linux par rapport aux plus récentes. intégration basée sur les agents , cependant, il ne dispose pas de la fonctionnalité bidirectionnelle de la nouvelle intégration. Vous ne pouvez pas utiliser le script bidirectionnel de l'intégration basée sur un agent avec le script Perl tel quel ; l'intégration bidirectionnelle n'est prise en charge qu'avec la nouvelle intégration. C'est pourquoi nous recommandons l'intégration basée sur un agent, sauf si vous utilisez un système avec lequel l'agent n'est pas compatible (par exemple, CentOS 5).
Le script Perl fonctionne en ajoutant les événements reçus de Nagios à une file d'attente à /tmp/pagerduty_nagios
Le script tente de vider la file d'attente (envoyer les événements à PagerDuty) immédiatement après les avoir reçus de Nagios. Si le script ne parvient pas à joindre PagerDuty pour une raison quelconque (par exemple, en raison de problèmes de connectivité), les événements sont conservés dans la file d'attente. La tâche cron permet de réessayer de vider la file d'attente si des événements n'ont pas été envoyés.
Le script propose plusieurs options que vous pouvez définir lors de son exécution, notamment la possibilité de modifier le répertoire utilisé pour la file d'attente ou de définir un proxy. Ces options sont documentées. dans le script . Notez que vous devez définir toutes les options dans les deux des commandes définies dans votre configuration Nagios ainsi que la tâche cron.
Conseil: Si vous rencontrez des problèmes avec l'intégration et accumulez plusieurs événements dans la file d'attente que vous ne souhaitez pas envoyer à PagerDuty, supprimez simplement les fichiers d'événements dans /tmp/pagerduty_nagios
pour éviter qu'ils ne soient envoyés lorsque le script est capable d'envoyer des alertes à PagerDuty avec succès.
Comment configurer Nagios pour qu'il fonctionne avec plusieurs services PagerDuty ?
C'est facile à réaliser avec l'intégration actuelle, car un service Nagios dans PagerDuty est directement associé à un « contact » dans Nagios. Par défaut, ce contact est nommé service de pagination
et défini dans le pagerduty_nagios.cfg
fichier. Pour configurer plusieurs services, dupliquez simplement la définition de contact existante et renommez-la (c.-à-d. pagerduty_database
, pagerduty_network
, etc.). Copiez et collez ensuite la clé d'intégration correspondante de PagerDuty dans le téléavertisseur
champ. N'oubliez pas de redémarrer votre Nagios pour que les modifications prennent effet.
Que se passe-t-il si un événement Nagios se produit alors que mon réseau est en panne ?
Si un serveur PagerDuty est inaccessible pour une raison quelconque, les événements sont stockés dans une file d'attente sur disque. La tâche cron tente de renvoyer les événements toutes les minutes.
Étant donné que Nagios a besoin de ma connexion Internet externe pour envoyer des rapports d'échec à PagerDuty, comment recevrai-je une notification si notre site perd la connectivité externe ?
Vous devez configurer un service de vérification de ping externe tel que Gâteau d'état ou NodePing pour surveiller la connectivité externe de votre site. Bien entendu, vous pouvez également utiliser PagerDuty pour transmettre les alertes de ces services.
L'intégration ne semble pas fonctionner. Que se passe-t-il ?
Tout d’abord, vérifiez dans le syslog les messages contenant pagerduty_nagios
.
Pour les systèmes basés sur Debian :
grep pagerduty_nagios /var/log/syslog
Pour les systèmes basés sur RHEL :
grep pagerduty_nagios /var/log/messages
Vous trouverez d'autres conseils de dépannage dans notre Guide de dépannage de Nagios .
Quel type de messages Nagios PagerDuty comprend-il ?
PagerDuty peut traiter PROBLÈME
, RECONNAISSANCE
, et RÉCUPÉRATION
messages. Tous les autres messages, y compris DÉPART EN BATTANT
et ARRÊT DE BATTEMENT
, sont ignorés.
Comment puis-je personnaliser mes alertes Nagios ?
Nous avons un guide pour Personnalisation des notifications envoyées à PagerDuty depuis Nagios pour vous aider à démarrer.
Prêt à commencer ?
Essayez gratuitement n’importe quel produit sur Operations Cloud .
Aucune carte de crédit requise.