Guide d'intégration de Prometheus

Avantages de Prometheus + PagerDuty

  • Envoyez des données d'événements richement formatées de Prometheus à PagerDuty, ce qui vous permet d'impliquer les bonnes personnes, d'accélérer la résolution et d'améliorer l'apprentissage.
  • 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 Prometheus.

Comment ça fonctionne

  • Prometheus envoie des événements à PagerDuty via un fichier de configuration Prometheus Alertmanager. Les événements de Prometheus déclencheront un nouvel incident sur le service PagerDuty correspondant, ou seront regroupés sous forme d'alertes dans un incident existant.
  • Vous pouvez résoudre les incidents PagerDuty à partir du serveur Prometheus tant que le envoyer_résolu l'option de configuration n'est pas définie sur FAUX . La valeur par défaut est vrai , il n'est donc pas nécessaire de préciser send_resolved : vrai pour que les incidents PagerDuty soient résolus automatiquement.

Exigences

  • Remarque importante pour Prometheus Alertmanager v0.11 et versions ultérieures  : Alertmanager prend désormais en charge API d'événements v2 . Cependant, si vous définissez le clé_routage propriété et utilisation v2, le type d'intégration de l'intégration correspondant au clé_routage la valeur doit également être API d'événements v2 . Si vous sélectionnez Prométhée comme type d'intégration dans PagerDuty, vous devrez utiliser le API d'événements v1 tapez et définissez une valeur pour le clé_service propriété à la place.
  • Un rôle de base Manager ou supérieur est requis pour configurer cette intégration. Si vous n'êtes pas sûr de votre rôle ou si vous avez besoin d'ajuster vos autorisations, visitez nos sections sur Vérification de votre rôle d'utilisateur ou Modification des rôles des utilisateurs .

Procédure pas à pas d'intégration

Dans PagerDuty

Il existe deux manières d'intégrer PagerDuty: via Orchestration d'événements ou directement via un intégration sur un service PagerDuty . L'intégration avec Event Orchestration peut être bénéfique si vous souhaitez créer différentes règles de routage basées sur les événements provenant de l'outil intégré. L'intégration directe avec un service PagerDuty peut être bénéfique si vous n'avez pas besoin d'acheminer les alertes de l'outil intégré vers différents intervenants en fonction de la charge utile de l'événement.

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

1. Dans l'application Web PagerDuty , passez la souris sur le Automatisation menu, sélectionnez Orchestration d'événements , et sélectionnez l'orchestration souhaitée ou en créer un nouveau.

2. Cliquez sur Clé d'orchestration globale , copiez votre Clé d'intégration , et conservez-le dans un endroit sûr pour une utilisation ultérieure.

Event Orchestration integration key

Vous pouvez maintenant passer au Sur votre serveur Prometheus section ci-dessous.

Intégration avec un service PagerDuty

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électionner API d'événements v2 OU Prométhée (qui utilise l'API Events v1), selon vos préférences, depuis le Type d'intégration menu (voir le Exigences ci-dessus pour plus de détails sur ces options).

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. Copiez le Clé d'intégration et conservez-le dans un endroit sûr pour une utilisation ultérieure.

Sur votre serveur Prometheus

1. Installez le Gestionnaire d'alertes Prometheus si vous ne l'avez pas déjà installé. Le Alertmanager est requis pour cette intégration, car il gère le routage des alertes de Prometheus vers PagerDuty.

2. Créez un Fichier de configuration du gestionnaire d'alertes si vous n'en avez pas déjà un. Vous pouvez trouver un exemple de fichier de configuration sur GitHub .

3. Créez un destinataire pour PagerDuty dans votre fichier de configuration. Donnez au récepteur un nom , tel que «PagerDuty-Event-Orchestration » ou le nom du service auquel vous vous intégrez. Ensuite, collez la clé d'intégration PagerDuty (générée dans la section Dans PagerDuty , ci-dessus) dans le champ clé_service champ, puis enregistrez votre fichier de configuration.

 récepteurs : 
 - nom:  VOTRE-NOM-DE-RECEPTEUR 
 pagerduty_configs : 
 - clé_service :  VOTRE-CLÉ- D'INTÉGRATION 

4. Vous pouvez configurer la valeur par défaut itinéraire dans Prometheus pour envoyer toutes les alertes qui ne correspondent à aucun itinéraire personnalisé à votre nouveau PagerDuty destinataire . Voici un exemple montrant comment configurer la valeur par défaut itinéraire :

 itinéraire: 
 group_by : [cluster] 
 destinataire:  VOTRE-NOM-DE-RECEPTEUR 

5. Vous pouvez également configurer des « itinéraires » personnalisés pour envoyer des alertes à différents « récepteurs ». Par exemple, si vous souhaitez que seules les alertes avec la gravité « avertissement » soient envoyées à PagerDuty, vous devez définir une route par défaut différente et créer une route « avertissement » spéciale comme celle-ci :

 itinéraires : 
 - correspondre: 
 gravité : « avertissement » 
 destinataire:  VOTRE-NOM-DE-RECEPTEUR 

6. Grâce au puissant outil de Prometheus Alertmanager itinéraires et destinataire options de configuration, vous pouvez configurer plusieurs destinataire s avec différentes clés d'intégration PagerDuty et différentes itinéraires pour envoyer des types spécifiques d'alertes à différents destinataire s.

Voici un exemple de configuration qui met en place un itinéraire qui capture les alertes pour un service de base de données et les envoie à un destinataire lié à un service qui informera directement les administrateurs de base de données que j'ai dans PagerDuty, tandis que toutes les autres alertes seront dirigées vers un serveur par défaut destinataire avec une clé d'intégration PagerDuty différente :

 itinéraire: 
 group_by : [cluster] 
 récepteur : **RÉCEPTEUR PAR DÉFAUT** 
 intervalle_groupe : 5 m 
 itinéraires : 
 - correspondre: 
 service : base de données 
 récepteur : **RÉCEPTEUR DE BASE DE DONNÉES** 

 récepteurs : 
 - nom : **RÉCEPTEUR PAR DÉFAUT** 
 pagerduty_configs : 
 - service_key : **PRIMARY-INTEGRATION-KEY** 

 - nom : **BASE DE DONNÉES-RÉCEPTEUR** 
 pagerduty_configs : 
 - service_key : **DATABASE-INTEGRATION-KEY** 

7. Démarrez Alertmanager ou redémarrez-le pour que vos modifications de configuration prennent effet s'il était déjà en cours d'exécution.

8. Félicitations ! Prometheus pourra désormais déclencher et résoudre des incidents dans PagerDuty. Vous pouvez le vérifier en déclenchant un incident de test à l'aide de la commande suivante boucle commande:

 curl -d '[{'labels': {'Alertname': 'PagerDuty Test'}}]'  http://localhost:9093/api/v1/alerts 

FAQ

Les incidents PagerDuty seront-ils résolus lorsqu’une alerte est résolue dans Prometheus ?

Oui, tant que le envoyer_résolu l'option de configuration n'est pas définie sur FAUX . La valeur par défaut est vrai , il n'est donc pas nécessaire de préciser envoyer_résolu : true pour que les incidents PagerDuty soient résolus automatiquement.

Notez également que les notifications de résolution peuvent prendre jusqu'au prochain groupe_intervalle à envoyer, et seul un « meilleur effort » est fait pour envoyer la notification à PagerDuty selon l'équipe Prometheus.

Je ne reçois qu'une seule notification pour plusieurs alertes Prometheus différentes ; Comment puis-je réparer ça?

Essayez d'ajuster le correspondre et par groupe options pour votre itinéraire PagerDuty . La clé de déduplication (ou clé d'incident), utilisée pour déterminer si les événements d'alerte concernent un problème unique, est générée en fonction de ces options. Si une série d'alertes ont les mêmes valeurs pour les propriétés dans par groupe , ils auront la même valeur pour la clé de déduplication et seront donc fusionnés dans la première alerte/incident ouvert existant (plutôt que d'en déclencher de nouveaux).

Commencez à utiliser PagerDuty aujourd'hui

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

S'INSCRIRE