Guide d'intégration Nagios – Sans agent

Nagios est l'un des principaux fournisseurs d'outils de surveillance de l'infrastructure informatique open source et de niveau entreprise. Utilisé par des centaines de milliers d'utilisateurs dans le monde, Nagios permet à ses utilisateurs de surveiller l'ensemble de leur infrastructure informatique, de repérer les problèmes avant qu'ils ne surviennent, de détecter les failles de sécurité et de planifier/budgétiser les mises à niveau informatiques.

En intégrant PagerDuty dans 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 avec PagerDuty à l'aide d'un simple plugin basé sur Perl. Notez 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 exacte, de la configuration de Nagios et de la version de Nagios. S'il te plaît 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 PagerDuty . Veuillez d'abord essayer de suivre les étapes du nouveau guide d'intégration et utilisez celui-ci uniquement si vous disposez d'un système sur lequel l'agent PagerDuty ne peut pas être installé. Sachez également que le script d'intégration bidirectionnelle du nouveau guide d'intégration ne peut pas être utilisé tel quel avec l'intégration basée sur Perl ; l'intégration bidirectionnelle n'est prise en charge que lors de l'utilisation de la nouvelle intégration.

Dans PagerDuty

      1. Aller vers Prestations de service Répertoire des services .
      2. Sur ton Répertoire des services page:
      3. Si vous créez un nouveau service pour votre intégration, cliquez sur +Nouveau service .
      4. 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 Intégrations et cliquez sur l'onglet Ajouter une nouvelle intégration lien.
      5. Sélectionnez votre application dans Type d'intégration menu et entrez un Nom de l'intégration .
      6. 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.
      7. Clique le Ajouter un service ou Ajouter une intégration bouton pour enregistrer votre nouvelle intégration. Vous serez redirigé vers la page de votre service.
      8. Copiez le Clé d'intégration pour votre nouvelle intégration : RS_API_pd_3

Sur votre serveur Nagios

Ce guide comprend des étapes pour les distributions Linux basées sur Debian (c'est-à-dire Ubuntu) et RHEL (c'est-à-dire CentOS, Fedora). 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 les dépendances Perl nécessaires. Pour les systèmes basés sur Debian :
         apt-get installer libwww-perl libcrypt-ssleay-perl 

        Pour les systèmes basés sur RHEL :

         miam, installez perl-libwww-perl perl-Crypt-SSLeay 
      2. Télécharger pagerduty_nagios.cfg depuis GitHub :
         wget https://raw.github.com/ PagerDuty/pagerduty-nagios-pl/master/pagerduty_nagios.cfg 
      3. Ouvrir pagerduty_nagios.cfg dans un éditeur de texte.
      4. Saisissez la clé d'intégration correspondant à votre service Nagios dans le champ téléavertisseur champ. La clé est une chaîne de 32 caractères qui se trouve sur la page de détail 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 dans pagerduty_nagios.cfg comme indiqué ci-dessous. N'effectuez pas ces modifications si vous utilisez Nagios 2 ou 3.
         définir la commande { nom_commande notify-service-by-pagerduty command_line /usr/local/bin/pagerduty_nagios.pl mettre en file d'attente -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$' } définir la commande { nom_commande notify-host-by-pagerduty ligne_commande /usr/local/bin/pagerduty_nagios.pl mettre en file d'attente -f pd_nagios_object=host -f CONTACTPAGER='$CONTACTPAGER$' -f NOTIFICATIONTYPE='$NOTIFICATIONTYPE$' -f HOSTNAME ='$HOSTNAME$' -f HOSTSTATE='$HOSTSTATE$' -f HOSTDISPLAYNAME='$HOSTDISPLAYNAME$' -f HOSTPROBLEMID='$HOSTPROBLEMID$' } 
      5. Copiez le fichier de configuration Nagios à sa place : 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, c'est généralement /etc/nagios :

         cp pagerduty_nagios.cfg /etc/nagios 
      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 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 
      7. 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 contact « admins ». Ensuite, ajoutez simplement le contact « pagerduty ».
         définir le groupe de contacts{ contactgroup_name admins alias Nagios administrateurs membres root,pagerduty  ; Ajouter un service de téléavertisseur ici  } 
      8. Télécharger pagerduty_nagios.pl depuis GitHub et copiez-le dans /usr/local/bin .
         wget https://raw.github.com/ PagerDuty/pagerduty-nagios-pl/master/pagerduty_nagios.pl cp pagerduty_nagios.pl /usr/local/bin 
      9. Assurez-vous que le fichier est exécutable par Nagios :
         chmod 755 /usr/local/bin/pagerduty_nagios.pl 
      10. 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) :
         activer_environnement_macros=1 

        Cette étape est obligatoire. L'intégration ne fonctionnera pas si vous n'avez pas activé les macros d'environnement.

      11. Modifier le nagios table cron de l'utilisateur :
         crontab -u nagios -e 
      12. Ajoutez la ligne suivante au fichier :
         * * * * * /usr/local/bin/pagerduty_nagios.pl flush 
      13. Redémarrez Nagios. Pour les systèmes basés sur Debian :
         /etc/init.d/nagios3 redémarrage 

        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 compatible avec les distributions Linux plus anciennes que les plus récentes. intégration basée sur des agents , mais il lui manque la fonctionnalité bidirectionnelle de la nouvelle intégration. Vous ne pouvez pas utiliser le script bidirectionnel de l'intégration basée sur agent avec le script Perl tel quel ; l'intégration bidirectionnelle n'est prise en charge que lors de l'utilisation de la nouvelle intégration. Pour cette raison, nous vous recommandons d'utiliser l'intégration basée sur un agent, sauf si vous utilisez un système avec lequel l'agent n'est pas compatible (c'est-à-dire CentOS 5).

Le script Perl fonctionne en ajoutant les événements reçus de Nagios à une file d'attente à /tmp/pagerduty_nagios . Le script essaie 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 à atteindre PagerDuty pour une raison quelconque (c'est-à-dire en raison de problèmes de connectivité), les événements sont conservés dans la file d'attente. La tâche cron existe pour réessayer de vider la file d'attente s'il y a quelque chose qui n'a pas été envoyé.

Le script propose quelques 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. Les options sont documentées dans le scénario . 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 empêcher leur envoi 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 à faire avec l'intégration actuelle, car un service Nagios dans PagerDuty est directement mappé à un « contact » dans Nagios. 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 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 n'est pas accessible pour une raison quelconque, les événements seront stockés dans une file d'attente sur le disque. La tâche cron tentera de renvoyer les événements une fois par minute.

Puisque 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 StatutCake ou NoeudPing pour surveiller la connectivité externe de votre site. Bien entendu, vous pouvez également utiliser PagerDuty pour transférer les alertes de ces services.

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

Tout d'abord, vérifiez dans 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 

Plus de conseils de dépannage peuvent être trouvés dans notre Guide de dépannage 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ÉMARRAGE FLAPPANT et BUTÉE DE FLAPPEMENT , 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.

Commencez à utiliser PagerDuty aujourd'hui

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

S'INSCRIRE