Guide d'intégration de Prometheus

Avantages de Prometheus + PagerDuty

  • Envoyez des données d'événements richement formatées de Prometheus à PagerDuty, vous permettant d'engager 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 marche

  • Prometheus envoie des événements à PagerDuty via un fichier de configuration Prometheus Alertmanager. Les événements de Prometheus déclenchent un nouvel incident sur le service PagerDuty correspondant ou sont regroupés sous forme d'alertes dans un incident existant.
  • Vous pouvez résoudre les incidents PagerDuty à partir du serveur Prometheus à condition 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 le 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é_de_routage propriété et utilisation v2, le type d'intégration de l'intégration correspondant à la clé_de_routage la valeur doit également être API d'événements v2 . Si vous sélectionnez Prométhée en tant que type d'intégration dans PagerDuty, vous devrez utiliser le API d'événements v1 tapez et définissez une valeur pour le clé_de_service propriété à la place.
  • Un rôle de base de gestionnaire ou supérieur est requis pour configurer cette intégration. Si vous n'êtes pas sûr du rôle que vous avez ou si vous avez besoin que vos autorisations soient ajustées, visitez nos sections sur Vérification de votre rôle d'utilisateur ou Modification des rôles d'utilisateur .

Procédure d'intégration

Dans PagerDuty

Il existe deux façons 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 utile si vous souhaitez créer différentes règles de routage en fonction des événements provenant de l'outil intégré. L'intégration directe avec un service PagerDuty peut être utile 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 l' Automation menu, sélectionner Orchestration d'événements , et sélectionnez l'orchestration souhaitée ou créer un nouveau.
  2. Cliquez 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
  3. Vous pouvez maintenant passer à la Sur votre serveur Prometheus section ci-dessous.

Intégration avec un service PagerDuty

  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électionner API d'événements v2 OU Prométhée (qui utilise l'API Events v1), selon votre préférence, à partir du Type d'intégration menu (voir le Exigences section ci-dessus pour plus de détails sur ces options).
  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. 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é. Alertmanager est requis pour cette intégration, car il gère le routage des alertes de Prometheus vers PagerDuty.
  2. Créer un Fichier de configuration d'Alertmanager si vous n'en avez pas déjà un. Vous pouvez trouver un exemple de fichier de configuration sur GitHub .
  3. Créer un récepteur pour PagerDuty dans votre fichier de configuration. Donnez au récepteur un nom , comme «PagerDuty-Event-Orchestration » ou le nom du service avec lequel vous effectuez l'intégration. Ensuite, collez la clé d'intégration PagerDuty (générée dans la section Dans PagerDuty , ci-dessus) dans le clé_de_service champ, puis enregistrez votre fichier de configuration.
     récepteurs : - nom :  VOTRE-NOM-DE-DESTINATAIRE  pagerduty_configs : - service_key :  VOTRE-CLE-D'INTEGRATION 
  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 récepteur Voici un exemple montrant comment vous configureriez la valeur par défaut itinéraire :
     route : group_by : [cluster] récepteur : VOTRE-NOM-DE-RÉCEPTEUR 
  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 de niveau de gravité « avertissement » soient envoyées à PagerDuty, vous devez définir un itinéraire par défaut différent et créer un itinéraire « avertissement » spécial comme celui-ci :
     itinéraires : - correspondance : gravité : « avertissement » récepteur :  VOTRE-NOM-DE-DESTINATAIRE 
  6. Grâce au puissant gestionnaire d'alertes Prometheus itinéraires et récepteur options de configuration, vous pouvez configurer plusieurs récepteur 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 récepteur p.

    Voici un exemple de configuration qui définit un itinéraire qui capture les alertes pour un service de base de données et les envoie à un récepteur lié à un service qui notifiera directement les administrateurs de bases de données que j'ai dans PagerDuty, tandis que toutes les autres alertes seront dirigées vers une valeur par défaut récepteur avec une clé d'intégration PagerDuty différente :

     route : group_by : [cluster] récepteur : **DEFAULT-RECEIVER** group_interval : 5 m routes : - correspondance : service : base de données récepteur : **DATABASE-RECEIVER** récepteurs : - nom : **DEFAULT-RECEIVER** pagerduty_configs : - service_key : **PRIMARY-INTEGRATION-KEY** - nom : **DATABASE-RECEIVER** 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': {'Nom d'alerte': ' Test PagerDuty '}}]' 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 le préciser envoyer_résolu : vrai pour que les incidents PagerDuty soient résolus automatiquement.

Notez également que la résolution des notifications peut prendre jusqu'à la prochaine intervalle_de_groupe à 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ésoudre ce problème ?

Essayez d'ajuster le correspondre et groupe_par options pour votre itinéraire PagerDuty . La clé de déduplication (également appelée clé d'incident), qui est 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 groupe_par , ils auront la même valeur pour la clé de déduplication et seront donc fusionnés dans l'alerte/l'incident ouvert existant le plus ancien (plutôt que d'en déclencher de nouveaux).

Prêt à commencer ?

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