Guide d'intégration de Nagios

Avantages de l'intégration PagerDuty + Nagios Core

  • Avertissez 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 entre PagerDuty et Nagios Core au fur et à mesure de leur mise à jour.

Comment ça marche

  • Lorsque Nagios Core crée une notification d'alerte pour un hôte ou un service, il envoie un événement à un service dans PagerDuty. Cet événement déclenchera un nouvel incident sur le service PagerDuty associé, ou grouper comme alertes dans un incident existant.
  • Lorsqu'un incident est reconnu dans PagerDuty, l'accusé de réception est transmis au service ou à l'hôte concerné dans Nagios. Les deux systèmes reflètent l'état actuel du 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 d'intégration

Dans PagerDuty

Il existe deux manières d'intégrer Nagios Core à PagerDuty: via le routage global des événements ou directement via une intégration sur un service PagerDuty .

Intégration avec l'orchestration d'événements

L'intégration avec Event Orchestration vous permet d'acheminer les événements vers des services PagerDuty spécifiques en fonction de la charge utile de l'événement issue de l'outil intégré. Pour en savoir plus, consultez notre article sur Orchestration d'événements .

  1. Accéder à AIOps Orchestration d'événements et sélectionnez votre orchestration préférée.
  2. Sélectionnez le Intégrations onglet puis copiez votre favori Clé d'intégration Conservez cette clé en lieu sûr pour une utilisation ultérieure. Une fois l'intégration configurée, vous reviendrez à cette interface pour spécifier comment acheminer les événements vers les services dans PagerDuty.

Intégration avec un service PagerDuty

L'intégration directe avec un service PagerDuty peut être avantageuse 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. De la Services menu, sélectionner Annuaire 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 l'option 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 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ée sur cet écran. Conservez cette clé en lieu sûr, car elle sera utilisée lors de la configuration de l'intégration avec Nagios Core dans la section suivante.

Dans le noyau de Nagios

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

Ce guide comprend les étapes pour Nagios Core tel qu'installé à partir de packages prêts à l'emploi via apt-get (basé sur Debian, c'est-à-dire Ubuntu) et miam Gestionnaires de paquets Linux (basés sur RHEL, c'est-à-dire CentOS, Fedora), ainsi que pour les systèmes sur lesquels Nagios Core a été installé depuis les sources (« installations sources »). Il n'est pas nécessaire d'exécuter toutes les commandes de ce guide, mais 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 service 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 les problèmes et réessaie 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 vivement de passer à Python 3 pour utiliser l’agent PagerDuty . L'agent ne fonctionne pas sur CentOS 5 ou une 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. Entrez 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 simultanément, vous pouvez utiliser le routage global des événements (instructions dans la section « Dans PagerDuty » ci-dessus) ou consulter notre article sur intégration directe avec plusieurs services PagerDuty .

5. Déplacez le fichier de configuration de Nagios Core. Pour les systèmes Debian, c'est généralement le cas. /etc/nagios3/conf.d :

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

Pour les systèmes basés sur RHEL, il s'agit 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 RHEL, vous devrez modifier la configuration de Nagios Core 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 

Si vous utilisez une installation source, ajoutez cette ligne au fichier de configuration principal à /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 contacts « admins ». Ajoutez ensuite simplement le contact « pagerduty ».

 définir le groupe de contacts { contactgroup_name admins  alias  Membres administrateurs Nagios root,pagerduty  ;  Ajouter  pagerduty 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_de_commandes   La variable pointe vers votre fichier de commandes Nagios Core. Le chemin peut être trouvé en exécutant la commande grep '^fichier_de_commandes' /etc/nagios3/nagios.cfg (sur les systèmes basés sur Debian) grep '^ *fichier_de_commandes' /etc/nagios/nagios.cfg (sur les systèmes basés sur RHEL), ou grep '^ *fichier_de_commandes' /usr/local/nagios/etc/nagios.cfg (sur les installations sources). Si vous ne voyez aucune information renvoyée, assurez-vous que le fichier_de_commandes 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, il s'agit 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, il s'agit 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 /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 :

 yum install 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 les commandes externes sont activées dans Nagios Core. /etc/nagios3/nagios.cfg , vérifiez cette variable vérifier_commandes_externes est égal à 1 et que la variable intervalle_de_vérification_de_commande est défini sur une valeur raisonnable pour votre environnement. intervalle_de_vérification_de_commande 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 ) permet d'écrire dans le fichier de commandes Nagios Core. Les commandes suivantes permettent d'activer cette option pour l'emplacement par défaut du fichier de commandes :

 /etc/  init.d/nagios3 stop  ## Remarque : cela arrêtera votre service Nagios ! 
 dpkg-statoverride --mise à jour --  ajouter  nagios www-data  2730  /  var  /lib/nagios3/rw 
 dpkg-statoverride --mise à jour --  ajouter  nagios nagios  751  /  var  /lib/nagios3 
 /etc/init.d/nagios3 start 

Dans PagerDuty (suite)

1. Accédez à chaque service intégré à Nagios Core, cliquez sur le Intégrations onglet, clic Ajouter ou gérer des extensions , puis cliquez sur + 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 Sauvegarder L'URL ressemblera à ceci : ip-ou-domaine/nagios3/cgi-bin/pagerduty.cgi . Ne pas inclure http:// ou https:// . Note: Sauf si vous l'avez désactivé, l'interface web de Nagios Core requiert un nom d'utilisateur et un mot de passe. Nous vous recommandons vivement de configurer un utilisateur autorisé à exécuter les commandes Nagios Core et réservé au 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 devez avoir un problème dans Nagios Core qui génère un événement et déclenche un incident dans PagerDuty. Ensuite, après avoir acquitté l'incident, un commentaire doit être ajouté indiquant que l'incident a été « Acquitté par PagerDuty».

FAQ

Puis-je bénéficier de l'intégration bidirectionnelle sans que mon installation Nagios Core soit accessible via 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 consulter le guide de PagerDuty. adresses IP de webhook dans notre base de connaissances : 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 qui peut être utilisée pour votre webhook.

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

C'est facile à réaliser avec l'intégration actuelle, car un service Nagios Core dans PagerDuty est directement associé à un « contact » dans Nagios Core. 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'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 serveur Nagios Core pour que les modifications soient prises en compte. Une autre option pour configurer plusieurs services consiste à utiliser une clé d'intégration de routage d'événements global (voir la section « Intégration avec le routage d'événements global » 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 est inaccessible pour une raison quelconque, les événements sont stockés dans une file d'attente sur disque. L'agent PagerDuty tente de renvoyer les événements une fois la connectivité rétablie.

É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 Gâteau d'état ou NodePing 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 que vous avez installé l'agent PagerDuty et qu'aucune erreur n'a été signalée par votre gestionnaire de paquets lors de l'installation. Les échecs d'installation (dus à une distribution incompatible, comme CentOS 5) sont les problèmes les plus fréquents d'intégration.

Vérifiez que le service de pagination le contact obtient le HÔTE ou NOTIFICATIONS DE SERVICE dans syslog. Vous pouvez utiliser grep dans votre syslog pour voir si service de pagination Le contact est notifié. Voici un exemple sur un système Ubuntu (sur les systèmes RHEL, le journal système est à /var/log/messages ):

 NOTIFICATION grep /  var  /log/syslog 
 Peut   28   18  :  20  :  57  ip-  10  -  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 voir, le service de pagination le contact a été notifié pour cela NOTIFICATION DE SERVICE . Si le service de pagination le contact n'apparaît jamais, cela signifie que le service de pagination Le contact n'est pas associé aux notifications de l'hôte/service concerné. Si vous utilisez la configuration par défaut, assurez-vous que service de pagination Le contact est membre du groupe de contacts de l'administrateur. Si le service de pagination le contact est notifié, vérifiez le journal de l'agent à /var/log/pdagent/pdagentd.log .

Vous trouverez d'autres conseils de dépannage dans notre Guide de dépannage de 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ÉPART EN BATTANT et ARRÊT DE BATTEMENT , sont ignorés.

Prêt à commencer ?

Essayez gratuitement n’importe quel produit sur Operations Cloud . Aucune carte de crédit requise.