Guide d'intégration de Nagios

Avantages de l'intégration PagerDuty + Nagios Core

  • Informez les intervenants d'astreinte en fonction des alertes envoyées depuis Nagios Core.
  • Créez des incidents d'urgence élevée et faible en fonction de la gravité de l'événement à partir de la charge utile de l'événement Nagios Core.
  • Les incidents et les escalades sont synchronisés sur PagerDuty et Nagios Core au fur et à mesure de leur mise à jour.

Comment ça fonctionne

  • Lorsque Nagios Core crée une notification d'alerte pour un hôte ou un service, il enverra un événement à un correspondant. service dans PagerDuty. Cet événement déclenchera un nouvel incident sur le service PagerDuty associé, ou groupe comme alertes dans un incident existant.
  • Lorsqu'un incident est reconnu dans PagerDuty, l'accusé de réception sera transmis au service ou à l'hôte concerné dans Nagios. Les deux systèmes refléteront l’état le plus actuel d’un problème.
  • Lorsqu'un message de récupération est généré pour un hôte ou un service dans Nagios Core, un événement de résolution sera envoyé au service PagerDuty pour résoudre l'alerte et l'incident associé sur ce service.

Exigences

Les intégrations PagerDuty nécessitent un Rôle de base du gestionnaire ou supérieur pour l’autorisation de compte. Si vous ne disposez pas de ce rôle, veuillez contacter un administrateur ou un propriétaire de compte au sein de votre organisation pour configurer l'intégration.

Procédure pas à pas d'intégration

Dans PagerDuty

Il existe deux manières d'intégrer Nagios Core à PagerDuty: via Global Event Routing ou directement via une intégration sur un service PagerDuty .

Intégration avec le routage global des événements

L'intégration avec Global Event Routing vous permet d'acheminer des événements vers des services spécifiques en fonction de la charge utile de l'événement de Nagios Core. Si vous souhaitez en savoir plus, veuillez consulter notre article sur Routage global des événements .

1. Du Automatisation menu, sélectionnez Règles de l'événement .

2. Sélectionnez Ensemble de règles globales par défaut ou en créer un nouveau .

3. Cliquez sur le nom de l'ensemble de règles que vous souhaitez utiliser et cliquez sur la flèche à côté de Source d'événement entrant pour afficher les informations sur la clé d'intégration. Copiez votre Clé d'intégration et conservez-le dans un endroit sûr pour une utilisation ultérieure. Lorsque vous aurez terminé de configurer l'intégration dans Nagios Core, vous reviendrez à cette interface pour spécifier comment acheminer les événements de Nagios Core vers les services dans PagerDuty.

Note : Si votre équipe a déjà intégré en utilisant Routage global des événements , vous pouvez vérifier en recherchant la clé d'intégration des règles d'événement PagerDuty (trouvée à l'étape 3 ci-dessus) dans un fichier de configuration existant. Vous pouvez ensuite utiliser l'intégration existante et rediriger les événements Nagios Core vers votre service en écrivant de nouvelles règles d'événements globales pour votre service.

Vous pouvez maintenant passer à la section Dans Nagios Core de ce guide.

Intégration avec un service PagerDuty

L'intégration directe avec un service PagerDuty peut être bénéfique si vous n'avez pas besoin d'acheminer les alertes de Nagios Core vers différents intervenants en fonction de la charge utile de l'événement. Vous pouvez toujours utiliser règles d'événement au niveau du service pour effectuer des actions telles que la suppression des alertes non exploitables et l'ajustement de la gravité.

1. Du Prestations de service menu, sélectionnez Répertoire des services .

2. Si vous ajoutez votre intégration à un service existant , cliquez sur le nom du service auquel vous souhaitez ajouter l'intégration. Sélectionnez ensuite le Onglet Intégrations et cliquez sur le Ajouter une nouvelle intégration .

Si vous créez un nouveau service pour votre intégration, veuillez lire notre documentation dans la section Configuration des services et des intégrations et suivez les étapes décrites dans le Créer un nouveau service section.

3. Sélectionnez Nagios Core dans le Type d'intégration menu.

4. Cliquez sur Ajouter un service ou Ajouter une intégration pour enregistrer votre nouvelle intégration. Vous serez redirigé vers l'onglet Intégrations de votre service.

5. Recherchez votre intégration dans la liste et cliquez sur ∨ à droite. Un Clé d'intégration sera généré sur cet écran. Conservez cette clé enregistrée dans un endroit sûr, car elle sera utilisée lors de la configuration de l'intégration avec Nagios Core dans la section suivante.

Dans Nagios Core

Si vous avez déjà intégré Nagios Core dans le passé et souhaitez maintenant intégrer des services supplémentaires, passez à l'étape 3.

Ce guide comprend les étapes pour Nagios Core installé à partir de packages prêts à l'emploi via apt-obtenir (basé sur Debian, c'est-à-dire Ubuntu) et Miam (Basés sur RHEL, c'est-à-dire CentOS, Fedora) Gestionnaires de paquets Linux, ainsi que pour les systèmes sur lesquels Nagios Core a été installé à partir des sources (« installations sources »). Vous n'avez pas besoin d'exécuter toutes les commandes de ce guide, uniquement celles correspondant à votre type de système. Notez que toutes les commandes fournies sont destinées à être exécutées en tant que racine utilisateur.

1. Installez le Agent de PagerDuty . L'agent reçoit les événements de Nagios Core et les envoie à PagerDuty à l'aide d'une file d'attente, fournit une journalisation qui aide à résoudre tout problème et réessaye automatiquement d'envoyer des événements en cas d'échec de connexion (c'est-à-dire si votre serveur Nagios Core perd temporairement la connectivité). Note: Si vous ne l'avez pas déjà fait, nous vous recommandons fortement de passer à Python 3 pour utiliser l'agent PagerDuty . L'agent ne s'exécute pas sur CentOS 5 ou version antérieure, car il nécessite une version de Python plus récente que la version incluse avec CentOS 5. Veuillez utiliser le Intégration basée sur Perl pour Nagios Core sur les anciens systèmes d'exploitation.

2. Télécharger pagerduty_nagios.cfg depuis GitHub :

 wget https://raw.githubusercontent.com/ PagerDuty/pdagent-integrations/master/pagerduty_nagios.cfg 

3. Ouvrir pagerduty_nagios.cfg dans un éditeur de texte.

4. Entrer le clé d'intégration (généré dans la section In PagerDuty ci-dessus) dans le téléavertisseur champ. Si vous souhaitez intégrer Nagios Core à plusieurs services PagerDuty à la fois, vous pouvez utiliser le routage global d'événements (instructions dans la section Dans PagerDuty ci-dessus) ou vous pouvez lire notre article sur intégration directe avec plusieurs services PagerDuty .

5. Mettez en place le fichier de configuration Nagios Core. Pour les systèmes basés sur Debian, c'est généralement /etc/nagios3/conf.d :

 mv pagerduty_nagios.cfg /etc/nagios3/conf.d 

Pour les systèmes basés sur RHEL, c'est généralement /etc/nagios :

 mv pagerduty_nagios.cfg /etc/nagios 

Pour les installations sources, déplacez le fichier vers /usr/local/nagios/etc/objets :

 mv pagerduty_nagios.cfg /usr/  locale  /nagios/etc/objets 

6. Ignorez cette étape si vous utilisez une distribution basée sur Debian. Si vous utilisez une distribution basée sur RHEL, vous devrez modifier la configuration Nagios Core pour charger la configuration PagerDuty . Pour ce faire, ouvrez /etc/nagios/nagios.cfg et ajoutez cette ligne au fichier :

 cfg_file=/etc/  nagios/pagerduty_nagios.cfg 

Si vous utilisez une installation source, ajoutez cette ligne au fichier de configuration principal à l'adresse /usr/local/nagios/etc/nagios.cfg

 cfg_file=/usr/  locale  /nagios/etc/objects/pagerduty_nagios.cfg 

7. Ajoutez le contact « pagerduty » au groupe de contacts principal de votre configuration Nagios Core. Si vous utilisez la configuration par défaut, ouvrez /etc/nagios3/conf.d/contacts_nagios2.cfg (sur les systèmes basés sur Debian) ou /etc/nagios/objects/contacts.cfg (sur les systèmes basés sur RHEL) ou /usr/local/nagios/etc/objects/contacts.cfg (pour les installations sources) et recherchez le groupe de contact « admins ». Ensuite, ajoutez simplement le contact « pagerduty ».

 définir un groupe de contacts{contactgroup_name admins  alias  Racine des membres administrateurs Nagios, pagerduty  ;  Ajouter  téléavertisseur ici  } 

8. Rechargez ou redémarrez Nagios Core pour que vos modifications de configuration prennent effet :

  • Systèmes basés sur Debian :
    •  redémarrage du service Nagios3 
  • Systèmes basés sur RHEL :
    •  redémarrage du service Nagios 

9. Télécharger pagerduty.cgi :

 wget https://raw.githubusercontent.com/mdcollins05/pd-nag-connector/master/pagerduty.cgi 

10. Modifiez le pagerduty.cgi fichier afin que le fichier_commande   variable pointe vers votre fichier de commandes Nagios Core. Le chemin peut être trouvé en exécutant la commande grep '^fichier_commande' /etc/nagios3/nagios.cfg (sur les systèmes basés sur Debian) grep '^ *fichier_commande' /etc/nagios/nagios.cfg (sur les systèmes basés sur RHEL), ou grep '^ *fichier_commande' /usr/local/nagios/etc/nagios.cfg (sur les installations sources). Si vous ne voyez aucune information renvoyée, assurez-vous que le fichier_commande la variable n'est pas commentée (ne commence pas par un # ).

11. Déplacer pagerduty.cgi au cgi-bin de Nagios. Pour les systèmes basés sur Debian, c'est généralement /usr/lib/cgi-bin/nagios3/ :

 mv pagerduty.cgi /usr/lib/cgi-bin/nagios3/ 

Pour la plupart des systèmes basés sur RHEL, c'est généralement /usr/lib64/nagios/cgi/ :

 mv pagerduty.cgi /usr/lib64/nagios/cgi/ 

Pour les systèmes Amazon Linux et CentOS 6+, il s'agit généralement de /usr/local/nagios/sbin :

 mv pagerduty.cgi /usr/local/nagios/sbin/ 

12. Faire pagerduty.cgi exécutable.

Pour les systèmes basés sur Debian :

 chmod +x /usr/lib/cgi-bin/nagios3/pagerduty.cgi 

Pour la plupart des systèmes basés sur RHEL :

 chmod +x /usr/lib64/nagios/cgi/pagerduty.cgi 

Pour les systèmes Amazon Linux et CentOS 6+ :

 chmod +x /usr/local/nagios/sbin//pagerduty.cgi 

13. Installez les bibliothèques Perl requises pour que le script fonctionne.

Pour les systèmes basés sur Debian :

 apte-  obtenir  installer libwww-perl libjson-perl 

Pour les systèmes Ubuntu 16.04, vous devrez également installer libcgi-pm-perl :

 apte-  obtenir  installer libwww-perl libjson-perl libcgi-pm-perl 

Pour les systèmes basés sur RHEL :

 miam, installez perl-JSON perl-CGI perl-libwww-perl 

14. Ignorez cette étape si vous utilisez une distribution basée sur RHEL. Si vous utilisez une distribution basée sur Debian, vous devrez vous assurer que Nagios Core a activé les commandes externes. Dans /etc/nagios3/nagios.cfg , vérifie cette variable check_external_commands équivaut à 1 et que la variable command_check_interval est défini sur une valeur raisonnable pour votre environnement. Le command_check_interval La variable détermine la fréquence à laquelle Nagios Core vérifie les commandes externes à exécuter.

15. Ignorez cette étape si vous utilisez une distribution basée sur RHEL. Si vous utilisez une distribution basée sur Debian, vous devrez vous assurer que l'utilisateur de votre serveur Web (généralement www-données ) est capable d'écrire dans le fichier de commandes Nagios Core. Les commandes suivantes activent cela pour l'emplacement du fichier de commandes par défaut :

 /etc/  init.d/nagios3 arrêter  ## Remarque : Cela arrêtera votre service Nagios ! 
 dpkg-statoverride --update--  ajouter  nagios www-données  2730  /  var  /lib/nagios3/rw 
 dpkg-statoverride --update--  ajouter  nagios nagios  751  /  var  /lib/nagios3 
 /etc/init.d/nagios3 démarrer 

Dans PagerDuty (suite)

1 . Accédez à chaque service intégré à Nagios Core, cliquez sur le bouton Intégrations onglet, cliquez sur Ajouter ou gérer des extensions , puis clique + Nouvelle extension.

2. Pour le Extension Taper sélectionner Nagios , puis entrez dans un Nom pour votre webhook, collez votre Nagios Nom d'utilisateur , Mot de passe et Racine URL , et cliquez sur Sauvegarder . L'URL ressemblera à ceci : ip-ou-domaine/nagios3/cgi-bin/pagerduty.cgi . N'incluez pas http:// ou https:// . Note: Sauf si vous l'avez désactivé, l'interface Web de Nagios Core nécessite un nom d'utilisateur et un mot de passe. Nous vous recommandons fortement de configurer un utilisateur capable d'exécuter les commandes Nagios Core utilisées uniquement pour le webhook. Si vous accédez à cette URL dans votre navigateur, vous devriez voir 400 requêtes doivent être des POST . Si vous ne voyez pas cela, vérifiez les journaux de votre serveur Web pour plus de détails sur ce qui s'est passé lorsque vous avez essayé d'appeler cette URL.

3. Pour tester cette intégration, vous devrez avoir un problème dans Nagios Core qui génère un événement et déclenche un incident dans PagerDuty. À partir de là, la reconnaissance de l'incident doit ajouter un commentaire indiquant que l'incident a été « Reconnu par PagerDuty».

 

FAQ

Puis-je bénéficier de l'intégration bidirectionnelle sans que mon installation Nagios Core soit accessible sur Internet ?

L'intégration bidirectionnelle nécessite que votre serveur Nagios Core soit accessible via Internet pour recevoir les appels webhook de PagerDuty. Si vous souhaitez restreindre l'accès à votre serveur Web Nagios Core à des adresses IP spécifiques, vous pouvez trouver le site de PagerDuty IP des webhooks dans notre base de connaissances : Mise en liste sécurisée des adresses IP . Alternativement, vous pouvez utiliser un service comme ngrok pour créer un tunnel sécurisé vers votre serveur Nagios Core avec une URL publique pouvant être utilisée pour votre webhook.

Comment configurer Nagios Core pour qu'il fonctionne avec plusieurs services PagerDuty ?

C'est facile à faire avec l'intégration actuelle, car un service Nagios Core dans PagerDuty est directement mappé à un « contact » dans Nagios Core. Par défaut, ce contact est nommé téléavertisseur et défini dans le pagerduty_nagios.cfg déposer. Afin de configurer plusieurs services, dupliquez simplement la définition de contact existante et renommez-la (c'est-à-dire 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 Core pour que les modifications prennent effet. Une autre option pour configurer plusieurs services consiste à utiliser une clé d'intégration Global Event Routing (voir la section Intégration avec Global Event Routing ci-dessus).

Que se passe-t-il si un événement Nagios Core se produit alors que mon réseau est en panne ?

Si un serveur PagerDuty n'est pas accessible pour une raison quelconque, les événements seront stockés dans une file d'attente sur le disque. L'agent PagerDuty tentera de renvoyer les événements lorsque la connectivité sera restaurée.

Étant donné que Nagios Core 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 StatutCake ou NoeudPing pour surveiller la connectivité externe de votre site. Bien entendu, vous pouvez également utiliser PagerDuty pour recevoir des alertes de ces services.

L'intégration ne semble pas fonctionner. Que se passe-t-il?

Tout d'abord, assurez-vous d'avoir installé l'agent PagerDuty , et qu'il n'y a eu aucune erreur de votre gestionnaire de paquets lors de la tentative d'installation. Les installations ayant échoué (c'est-à-dire en raison d'une distribution incompatible, telle que CentOS 5) sont le problème le plus courant avec l'intégration qui ne fonctionne pas.

Vérifiez que le téléavertisseur le contact obtient le HÔTE ou NOTIFICATIONS DE SERVICE dans Syslog. Vous pouvez récupérer votre syslog pour voir si le téléavertisseur le contact est averti. Voici un exemple d'un système Ubuntu (sur les systèmes basés sur RHEL, syslog est à /var/log/messages ) :

 grep NOTIFICATION /  var  /log/syslog 
 Peut   28   18  :  20  :  57  ip-  dix  -  11  -  139  -  249  nagios3 : NOTIFICATION DE SERVICE : pagerduty;localhost;  Actuel   Utilisateurs  ;CRITIQUE;notifier-service-  par  -pagerduty; UTILISATEURS CRITIQUES -  3  utilisateurs actuellement connectés  dans 

Comme vous pouvez le constater, le téléavertisseur le contact a été informé à ce sujet AVIS DE SERVICE . Si la téléavertisseur le contact ne se présente jamais, cela signifie que le téléavertisseur le contact n’est pas associé aux notifications pour l’hôte/service en question. Si vous utilisez la configuration par défaut, assurez-vous que le téléavertisseur le contact est membre du groupe de contact de l'administrateur. Si la téléavertisseur le contact reçoit une notification, vérifiez le journal de l'agent à l'adresse /var/log/pdagent/pdagentd.log .

Plus de conseils de dépannage peuvent être trouvés dans notre Guide de dépannage Nagios .

Quel type de messages Nagios Core PagerDuty comprend-il ?

PagerDuty peut traiter PROBLÈME , RECONNAISSANCE , et RÉCUPÉRATION messages. Tous les autres messages, y compris DÉMARRAGE FLAPPANT et BUTÉE DE FLAPPEMENT , sont ignorés.

Commencez à utiliser PagerDuty aujourd'hui

Essayez PagerDuty gratuitement pendant 14 jours – aucune carte de crédit requise.

S'INSCRIRE