- PagerDuty /
- Intégrations /
- Guide d'intégration Nagios
Guide d'intégration Nagios
Avantages de l'intégration de 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 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 le plus récent 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 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 le routage global des événements
L'intégration avec Global Event Routing vous permet d'acheminer les événements vers des services spécifiques en fonction de la charge utile de l'événement à partir de Nagios Core. Si vous souhaitez en savoir plus, veuillez consulter notre article sur Routage d'événements globaux . 1. De la Automation menu, sélectionner Règlement de l'événement . 2. Sélectionnez Ensemble de règles globales par défaut ou 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 de l'événement entrant pour afficher les informations de la clé d'intégration. Copiez votre Clé d'intégration et conservez-le dans un endroit sûr pour une utilisation ultérieure. Une fois que vous avez terminé la configuration de 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é l'utilisation Routage d'événements globaux , vous pouvez vérifier en recherchant la clé d'intégration des règles d'événements PagerDuty (trouvée à l'étape 3 ci-dessus) dans un fichier de configuration existant. Vous pouvez ensuite utiliser l'intégration existante et canaliser les événements Nagios Core dans 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 de niveau de 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' 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. Clé d'intégration sera générée sur cet écran. Gardez cette clé enregistrée dans un endroit sûr, car elle sera utilisée lorsque vous configurerez 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é à partir de la source (« installations source »). 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 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 systèmes d'exploitation plus anciens. 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 à la fois, vous pouvez utiliser le routage global des é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. Déplacez le fichier de configuration Nagios Core à son emplacement. Pour les systèmes basés sur Debian, il s'agit généralement /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 basée sur RHEL, vous devrez modifier la configuration de Nagios Core pour charger la configuration de 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 à /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 de sources) et recherchez le groupe de contacts « admins ». Ensuite, ajoutez simplement le contact « pagerduty ».
définir le groupe de contact { contactgroup_name admins alias Membres administrateurs de 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
-
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, cela est généralement le cas. /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 installer 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 sur Nagios Core. /etc/nagios3/nagios.cfg
, vérifie cette variable vérifier_les_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
) est capable d'écrire dans le fichier de commandes Nagios Core. Les commandes suivantes permettent d'activer cette fonction pour l'emplacement par défaut du fichier de commandes :
/etc/ init.d/nagios3 arrêter ## Remarque : cela arrêtera votre service Nagios !
dpkg-statoverride --mise à jour -- ajouter nagios www-données 2730 / var /lib/nagios3/rw
dpkg-statoverride --mise à jour -- ajouter Nagios Nagios 751 / var /lib/nagios3
/etc/init.d/nagios3 démarre
Dans PagerDuty (suite)
1. Accédez à chaque service intégré à Nagios Core, cliquez sur le Intégrations onglet, cliquez 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 sur 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 nécessite un nom d'utilisateur et un mot de passe. Nous vous recommandons vivement de configurer un utilisateur capable d'exécuter des commandes Nagios Core qui ne sont utilisées que 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 devez 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 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 trouver le fichier de configuration 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 fonctionner avec plusieurs services PagerDuty ?
C'est facile à faire 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é devoir de page
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 base de données pagerduty
, réseau pagerduty
, 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 de routage d'événements globaux (voir la section Intégration avec le routage d'événements globaux 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 disque. L'agent PagerDuty tentera 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 la tentative d'installation. Les installations échouées (c'est-à-dire en raison d'une distribution incompatible, telle que CentOS 5) sont le problème le plus courant lorsque l'intégration ne fonctionne pas. Vérifiez que le devoir de pager
le contact obtient le HÔTE
ou NOTIFICATIONS DE SERVICE
dans syslog. Vous pouvez grep votre syslog pour voir si le devoir de page
le contact est notifié. 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- 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 devoir de page
le contact a été notifié pour cela NOTIFICATION DE SERVICE
. Si le devoir de pager
le contact n'apparaît jamais, cela signifie que le devoir de pager
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 devoir de pager
contact est un membre du groupe de contacts de l'administrateur. Si le devoir de page
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 .
Quels types 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 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.