Guide d'intégration de Prometheus

Avantages de Prometheus et PagerDuty

  • Envoyez des données d'événements richement formatées depuis Prometheus vers PagerDuty, ce qui vous permettra de mobiliser les bonnes personnes, d'accélérer la résolution des problèmes et d'améliorer l'apprentissage.
  • Créez des incidents de haute et de basse urgence en fonction de la gravité de l'événement à partir de la charge utile d'événement Prometheus.

Comment ça marche

  • Prometheus envoie des événements à PagerDuty via un fichier de configuration Prometheus Alertmanager. Ces événements 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 depuis le serveur Prometheus tant que envoyer_résolu L'option de configuration n'est pas définie. FAUX La valeur par défaut est vrai , il n'est donc pas nécessaire de préciser envoyer_résolu: vrai pour que les incidents PagerDuty soient résolus automatiquement.

Exigences

  • Note importante pour Prometheus Alertmanager v0.11 et versions ultérieures Alertmanager prend désormais en charge API É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 Événements v2 Si vous sélectionnez Prométhée En tant que type d'intégration dans PagerDuty, vous devrez utiliser API Événements v1 saisissez et définissez une valeur pour le clé de service plutôt une propriété.
  • Un rôle de base de gestionnaire 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 de modifier vos autorisations, consultez nos sections sur Vérification de votre rôle d'utilisateur ou Modification des rôles des utilisateurs .

Présentation de l'intégration

Dans PagerDuty

Il existe deux façons d'intégrer PagerDuty: via Orchestration d'événements ou directement par l'intermédiaire d'un intégration sur un service PagerDuty L'intégration avec Event Orchestration peut s'avérer avantageuse si vous souhaitez définir 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 avantageuse si vous n'avez pas besoin de router les alertes de l'outil intégré vers différents destinataires en fonction de la charge utile de l'événement.

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

  1. Dans l'application web PagerDuty , survolez le Automation menu, sélectionnez Orchestration d'événements , et sélectionnez l'orchestration souhaitée ou Créez-en 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 suite Sur votre serveur Prometheus section ci-dessous.

Intégration avec un service PagerDuty

  1. De la part de Services menu, sélectionnez 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 le Onglet Intégrations et cliquez sur Ajouter une nouvelle intégration .

    Si vous créez un nouveau service pour votre intégration, veuillez consulter 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 Événements v2 OU Prométhée (qui utilise l'API Events v1), selon vos préférences, à partir de Type d'intégration menu (voir le Exigences (voir la 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. Trouvez 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 nécessaire pour cette intégration, car il gère le routage des alertes de Prometheus vers PagerDuty.
  2. Créez un fichier de configuration d'Alertmanager si vous n'en avez pas déjà un. Vous pouvez en trouver un Exemple de fichier de configuration sur GitHub .
  3. Créer un récepteur pour PagerDuty dans votre fichier de configuration. Attribuez au récepteur un nom , par exemple «PagerDuty-Event-Orchestration » ou le nom du service que 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 prévu à cet effet. clé de service Saisissez ensuite votre fichier de configuration dans ce champ.
     récepteurs : - nom :  NOM DE VOTRE RÉCEPTIONNAIRE  pagerduty_configs : - service_key :  VOTRE-CLÉ-D'INTÉGRATION 
  4. Vous pouvez configurer les paramètres par défaut. itinéraire Dans Prometheus, envoyez toutes les alertes qui ne correspondent à aucune route personnalisée à votre nouveau PagerDuty. récepteur Voici un exemple montrant comment configurer la valeur par défaut. itinéraire :
     route : group_by : [cluster] récepteur : VOTRE-NOM-DE-RÉCEPTEUR 
  5. Vous pouvez également configurer des `routes` personnalisées pour envoyer des alertes à différents `destinataires`. Par exemple, si vous souhaitez que seules les alertes de niveau `avertissement` soient envoyées à PagerDuty, vous devez définir une route par défaut différente et créer une route `avertissement` spécifique comme ceci :
     itinéraires : - correspondance : gravité : « avertissement » destinataire :  NOM DE VOTRE RÉCEPTIONNAIRE 
  6. Grâce à la puissance de Prometheus Alertmanager itinéraires et récepteur options de configuration, vous pouvez configurer plusieurs récepteur avec différentes clés d'intégration PagerDuty , et différentes itinéraires envoyer des types d'alertes spécifiques à différents récepteur s.

    Voici un exemple de configuration qui met en place un itinéraire qui capture les alertes d'un service de base de données et les envoie à un récepteur Ce système est lié à un service qui notifiera directement les administrateurs de bases de données (DBA) que j'ai configurés dans PagerDuty, tandis que toutes les autres alertes seront dirigées vers une destination par défaut. récepteur avec une clé d'intégration PagerDuty différente :

     route : group_by : [cluster] receiver : **DEFAULT-RECEIVER** group_interval : 5m routes : - match : service : database receiver : **DATABASE-RECEIVER** receivers : - name : **DEFAULT-RECEIVER** pagerduty_configs : - service_key : **PRIMARY-INTEGRATION-KEY** - name : **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 peut 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': 'Test PagerDuty '}}]' https://localhost:9093/api/v1/alerts 

FAQ

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

Oui, tant que le envoyer_résolu L'option de configuration n'est pas définie. 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 la résolution des notifications peut prendre jusqu'au prochain jour. intervalle de groupe L'envoi de la notification à PagerDuty ne sera effectué que dans la mesure du possible, 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 route PagerDuty . La clé de déduplication (ou clé d'incident), utilisée pour déterminer si les alertes concernent un problème unique, est générée en fonction de ces options. Si une série d'alertes présente les mêmes valeurs pour les propriétés dans groupe par , elles auront la même valeur pour la clé de déduplication et seront donc fusionnées dans l'alerte/incident ouvert 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.