Commencez à utiliser PagerDuty aujourd'hui
Essayez PagerDuty gratuitement pendant 14 jours – aucune carte de crédit requise.
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.
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.
apt-get installer libwww-perl libcrypt-ssleay-perl
Pour les systèmes basés sur RHEL :
miam, installez perl-libwww-perl perl-Crypt-SSLeay
pagerduty_nagios.cfg
depuis GitHub : wget https://raw.github.com/ PagerDuty/pagerduty-nagios-pl/master/pagerduty_nagios.cfg
pagerduty_nagios.cfg
dans un éditeur de texte. 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$' }
/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
/etc/nagios/nagios.cfg
et ajoutez cette ligne au fichier : cfg_file=/etc/nagios/pagerduty_nagios.cfg
/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 }
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
chmod 755 /usr/local/bin/pagerduty_nagios.pl
/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.
nagios
table cron de l'utilisateur : crontab -u nagios -e
* * * * * /usr/local/bin/pagerduty_nagios.pl flush
/etc/init.d/nagios3 redémarrage
Pour les systèmes basés sur RHEL :
redémarrage du service Nagios
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.
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.
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.
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.
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 .
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.
Nous avons un guide pour Personnalisation des notifications envoyées à PagerDuty depuis Nagios pour vous aider à démarrer.
Essayez PagerDuty gratuitement pendant 14 jours – aucune carte de crédit requise.