- PagerDuty /
- Intégrations /
- Guide d'intégration de Prometheus
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 surFAUX
. La valeur par défaut estvrai
, il n'est donc pas nécessaire de le précisersend_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 à laclé_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 leclé_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
- 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.
- Cliquez Clé d'orchestration globale , copiez votre Clé d'intégration , et conservez-le dans un endroit sûr pour une utilisation ultérieure.
- Vous pouvez maintenant passer à la Sur votre serveur Prometheus section ci-dessous.
Intégration avec un service PagerDuty
- De la Services menu, sélectionner Annuaire des services .
- 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. - 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).
- 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.
- 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
- 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.
- 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 .
- Créer un
récepteur
pour PagerDuty dans votre fichier de configuration. Donnez au récepteur unnom
, 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 leclé_de_service
champ, puis enregistrez votre fichier de configuration.
récepteurs : - nom : VOTRE-NOM-DE-DESTINATAIRE pagerduty_configs : - service_key : VOTRE-CLE-D'INTEGRATION
- 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 PagerDutyrécepteur
Voici un exemple montrant comment vous configureriez la valeur par défautitinéraire
:route : group_by : [cluster] récepteur : VOTRE-NOM-DE-RÉCEPTEUR
- 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
-
Grâce au puissant gestionnaire d'alertes Prometheus
itinéraires
etrécepteur
options de configuration, vous pouvez configurer plusieursrécepteur
s avec différentes clés d'intégration PagerDuty et différentesitinéraires
pour envoyer des types spécifiques d'alertes à différentsré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 à unré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éfautré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**
- 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.
- 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.