Aller au contenu principal
Version: 20.10

Opsgenie integration

Avantages de l'intégration Opsgenie + Centreon

  • Gérez vos notification quand une alerte est détectée par Centreon
  • Evitez les doublons d'alertes de Centreon
  • Distinguez les alertes et les incidents en couplant Centreon BAM et Opsgenie
  • Créez un reporting reposant sur les notifications de Centreon

Comment ça marche

  • A chaque fois que le statut d'un service, hôte ou BA est contrôlé, l'évènement passe par Centreon Broker qui utilise le Stream Connector puor envoyer ce changement d'état.
  • Un changement d'état peut survenir en cas de détection d'anomalie
  • Un alias est généré pour chaque alerte afin de profiter de la déduplication d'Opsgenie

architecture

Prérequis

  • L'intégration d'Opsgenie nécessite deux clé d'API différentes. La première est une clé d'intégration provenant de l'intégration Rest API HTTPS over JSON. Cette intégration doit avoir les droits Create and Update Access. la seconde clé est une clé d'API provenant des APP Settings. Cette clé doit avoir les droits d'accès Create and Update
  • Il est aussi nécessaire d'avoir un compte Centreon avec soit des droits admin ou alors la possibilité d'exporter les configuration et configurer le broker. Il faut aussi un accès en tant que root en ligne de commande sur le serveur Centreon.

Support

Si vous avez besoin d'aide avec cette intégration, selon votre utilisation de Centreon, vous pouvez :

  • Client Business Edition: Contactez le support Centreon.
  • Utilisateurs open source ou Utilisateurs Centreon IT-100 (version gratuite): Rejoignez notre communauté slack où les utiisateurs et les équipes Centreon pourront vous répondre.

Guide d'intégration

Dans Opsgenie

intégration Opsgenie: alerts

  1. Depuis le menu Setting, selectionnez Integration list
  2. Dans la liste des intégrations, ajoutez l'intégraiton API (Rest API HTTPS over JSON)
  3. Rendez vous dans le menu Configured integrations et éditez votre intégration API pour l'activer si elle ne l'est pas. Vous devez aussi donner les droits Create and Update Access. Sauvegardez votre coniguration ainsi que votre API Key qui est obligatoire pour l'envoi d'alertes depuis Centreon vers Opsgenie. Cette API Key est référrée en tant qu'integration_api_token dans la configuration Centreon

Opsgenie integration: incidents

  1. Avant de commencer, cette intégration ne marchera que si vous utilisez le module Centreon BAM
  2. Depuis le menu Settings, allez dans la sous catégorie APP SETTINGS pour y trouver le menu API key management
  3. Dans le menu API key management ajoutez une nouvelle API key avec les droits Create and Update
  4. Sauvegardez votre configuration et votre Api key qui est obligatoire pour envoyer des incidents depuis Centreon vers Opsgenie. Cette API key est référrée en tant qu'app_api_token dans le configuration Centreon.

Dans Centreon

Installation

Connectez vous en tant que root sur le serveur Centreon central en utilisant votre client SSH préféré.

Dans le cas où votre serveur Centreon central doit utiliser un proxy pour sortir sur Internet, vous devrez exporter la variable d'environnement https_proxy et configurer yum pour être capable d'installer le nécessaire.

export https_proxy=http://my.proxy.server:3128
echo "proxy=http://my.proxy.server:3128" >> /etc/yum.conf

Maintenant que votre serveur Centreon cetral est capable de sortir sur internet vous pouvez exécuter les commandes suivantes :

yum install -y lua-curl epel-release

Ces paquets sont nécessaires pour que le script marche. Maintenant, il faut le télécharger :

wget -O /usr/share/centreon-broker/lua/opsgenie.lua https://raw.githubusercontent.com/centreon/centreon-stream-connector-scripts/master/opsgenie/opsgenie.lua
chmod 644 /usr/share/centreon-broker/lua/opsgenie.lua

Le Stream Connector Opsgenie est maintenant installé sur votre serveur Centreon central !

Broker configuration

  1. Connectez vous sur l'interface web votre Centreon avec un compte administrateur
  2. Rendez vous dans le menu Configuration > Collecteurs et allez dans Configuration Broker
  3. Cliquez sur la configuration broker central-broker-master et allez dans l'onglet ouput
  4. Ajoutez un nouvel output Generic - Stream connector.
  5. Nommez le comme vous le souhaitez (ex : Opsgenie) et indiquez le bon chemin pour le script LUA : /usr/share/centreon-broker/lua/opsgenie.lua.
  6. Ajoutez au moins un paramètre string. Ce paramètre est une clé d'API qui doit être configurée. Le nom du paramètre doit être app_api_token (pour les alertes) ou integration_api_token (pour les incidents, nécessite le module Centreon BAM). Si vous voulez utilisez ces deux aspects alors vous devez renseigner les deux paramètres dans la configuration.
NameTypeValue
app_api_tokenString<paste your key here>
integration_api_tokenString<paste your key here>
  1. Sauvegardez votre configuration puis naviguez dans le menu Configurtion > Collecteurs et choisissez collecteurs.
  2. Sélectionnez le collecteur Central et cliquez sur Exporter la configuration
  3. Gardez Générer les fichiers de configuration et Lancer le débogage du moteur de supervision (-v) cochées et cochez aussi Déplacer les fichiers générés puis cliquez sur le bouton Exporter..
  4. Redémarrez le service cbd :
systemctl restart cbd

Maintenant votre serveur central a chargé le Stream Connector Opsgenie et commence à envoyer de la donnée !

To make sure that everything goes fine, you should have a look at central-broker-master.log and connector-opsgenie.log, both located in /var/log/centreon-broker. Pour être sûr que tout va bien, vous pouvez jeter un oeil aux fichiers de log central-broker-master.log et connector-opsgenie.log. Tous deux sont situés dans /var/log/centreon-broker.

Configuration avancée

Table des paramètres

NameTypeDefault valueDescription
api_urlStringhttps://api.opsgenie.comAdresse API d'Opsgenie. Utilisez https://api.eu.opsgenie.com si votre instance est en Europe
proxy_addressStringSi besoint, l'adresse du serveur proxy (nécessite le paramètre proxy_port)
proxy_portStringLe port du serveur proxy
proxy_usernameStringSi besoin, l'utilisateur pour le proxy (nécessite le paramètre proxy_password)
proxy_passwordStringLe mot de passe de l'utilisateur du serveur proxy
logfileString/var/log/centreon-broker/connector-opsgenie.logLe fichier de log du stream connector
host_statusString0,1,2Envoie les évènements d'hôte up, down and unreachable
service_statusString0,1,2,3Envoie les évènements de service ok, warning, critical, unknown services
ba_statusString0,1,2Envoie les évènements de BA ok, warning, critical business activities
hard_onlyNumber1Envoie uniquement les évènements en état HARD
acknowledgedNumber0Envoie uniquement les évènements qui ne sont pas acquittés
element_typeStringhost_status,service_status,ba_statusEnvoie les évènements de statut des hôtes, services et BA
category_typeStringneb,bamFiltre les évènements qui ne sont pas du neb ou du bam
in_downtimeNumber0Envoie uniquement les évènements qui ne sont pas en downtime
max_buffer_sizeNumber1Envoie les évènements un par un
max_buffer_ageNumber5Stocke les évènements pendant 5 secondes à moins que le max_buffer_size soit atteint avant
max_stored_eventsNumber10Garde les évènements en mémoire pour éviter d'envoyer des duplicatas. Ne pas modifier sans maîtriser les Stream Connectors
skip_anon_eventsNumber1N'envoie pas les évènements dont l'hôte ou le service ne sont pas trouvés dans le cache du broker
skip_nil_idNumber1N'envoie pes les évènements qui n'ont pas d'ID. (meta-service la plupart du temps)
accepted_hostgroupsStringListe des groupes d'hôtes dans lequel un hôte doit être (séparateur , ex : grp1,grp2,grp3)
date_formatString%Y-%m-%d %H:%M:%SFormat de conversion par défaut des timestamps (https://www.lua.org/pil/22.1)
host_alert_messageString{last_update_date} {hostname} is {state}Le message par défaut des alertes d'hôte. Voir host event macros pour plus de détails sur les macros
host_alert_descriptionStringLa description par défaut des alertes d'hôte. See host event macros for more details about macros
host_alert_aliasString{hostname}_{state}L'alias par défaut des alertes d'hôte. Utile pour la déduplication d'alertes See host event macros for more details about macros
service_alert_messageString{last_update_date} {hostname} // {serviceDescription} is {state}Le message par défaut des alertes de service. See service event macros for more details about macros
service_alert_descriptionStringLa description par défaut des alertes de service. See service event macros for more details about macros
service_alert_aliasString{hostname}_{serviceDescription}_{state}L'alias par défaut des alertes de service. Utile pour la déduplication d'alertes. See service event macros for more details about macros
ba_incident_messageString{baName} is {state}, health level reached {level_nominal}Le message par défaut des incidents de BA. See BA event macros for more details about macros
ba_incident_descriptionStringLa description par défaut des incidents de BA. See BA event macros for more details about macros
enable_incident_tagsNumber1Ajoute les tags pour les incidents
get_bvNumber1Ajoute le nom des BV dans les tags si enable_incident_tags est à 1
ba_incident_tagsStringcentreon,applicationsListe de tags pour un incident. Doit utiliser la virgule comme séparateur. Les noms des BV seront ajoutés automatiquement dans les tags
enable_severityNumber0Si positionné à 1, essaie de lier une sévérité de Centreon à une priorité d'Opsgenie
priority_must_be_setNumber0Ignorera l'alerte si positionné à 1 et qu'aucune sévérité ne correspond à une priorité selon la relation établie dans le paramètre priority_matching
priority_matchingStringP1=1,P2=2,P3=3,P4=4,P5=5Associe une priorité à une sévérité selon la syntaxe suivante : nom_priorité=valeur_sévérité,nom_priorité=valeur_sévérité.
opsgenie_prioritiesStringP1,P2,P3,P4,P5Liste des priorités Opsgenie avec la virgule pour séparateur

Remarques

  • Une valeur de 2 pour log_level est valide pour un début d'analyse en cas de dysfonctionnement. Cela peut cependant générer un grand volume de journaux si vous supervisez beaucoup d'hôtes. Pour avoir moins de messages, vous devriez conserver la valeur à 1.

Comment désinstaller

  1. Connectez vous à l'interface web de Centreon avec un compte administrateur.
  2. Naviguez dans le menu Configuration > Collecteurs et sélectionnez Configuration du broker.
  3. Cliquez sur la configuration broker central-broker-master puis allez dans l'onglet Output.
  4. Supprimez l'output Generic - Stream connector en cliquant sur l'icône de croix rouge en bout de ligne.
  5. Sauvegardez votre configuration et rendez vous dans le menu Configuration > Collecteurs et sélectionnez Collecteurs.
  6. Sélectionnez le collecteur Central et cliquez sur Exporter la configuration
  7. Gardez Générer les fichiers de configuration et Lancer le débogage du moteur de supervision (-v) cochées et cochez aussi Déplacer les fichiers générés puis cliquez sur le bouton Exporter.
  8. Redémarrez le service cbd :
systemctl restart cbd

Le stream connecteur n'est alors plus actif !

  1. Vous pouvez aussi supprimer le script LUA si vous le désirez :
rm -f /usr/share/centreon-broker/lua/opsgenie.lua

Macros

Les macros sont un outil pour créer des messages dynamiques dépendant de l'évènement que vous envoyez. Elles doivent être mises entre {} (ex : {hostname}). Si une macro est une macro de type time alors vous pouvez utiliser le suffixe _date pour le convertir en un format lisible pour l'Homme. Vous pouvez changer le format de la date avec le paramètre de type string date_format. (ex : {last_update} est une macro sous la forme d'un timestamp. Vous pouvez utiliser {last_update_date} pour la convertir)

Host event macros

Nom de la macro
hostname

Toutes les propriétés de la table Host status sont aussi utilisables

Service event macros

Nom de la macro
hostname
serviceDescription

Toutes les propriétés de la table Service status sont aussi utilisables

BA event macros

Nom de la macro
baName
baDescription

Toutes les propriétés de la table Ba status event sont aussi utilisables