Aller au contenu principal
Version: 24.04

ServiceNow Event Manager Events

Le stream connector ServiceNow Event Manager Events vous permet d'envoyer des données depuis Centreon vers des instances ServiceNow Event Manager.

Avant de commencer

  • Dans la plupart des cas, vous enverrez les données depuis le serveur central. Il est également possible de les envoyer depuis un serveur distant ou un collecteur (par exemple si vous voulez éviter que le serveur central ne représente un point de défaillance unique, ou bien si vous êtes un MSP et vous installez le stream connector sur un collecteur ou un serveur distant dans l'infratructure de votre client).
  • Par défaut, le stream connector ServiceNow Event Manager Events envoie des évènements Broker host_status et service_status. Le format des évènements est décrit ici.
  • Ces évènements sont envoyés à chaque contrôle sur l'hôte ou le service. Des paramètres dédiés vous permettent de ne pas envoyer certains évènements.

Installation

Faites l'installation sur le serveur qui enverra les données à ServiceNow Event Manager (serveur central, serveur distant, collecteur).

  1. Connectez-vous en tant que root en utilisant votre client SSH préféré.

  2. Exécutez la commande suivante :

dnf install centreon-stream-connector-servicenow

Configurer votre équipement ServiceNow Event Manager

Vous devrez paramétrer votre équipement ServiceNow Event Manager pour qu'il puisse recevoir des données de la part de Centreon. Reportez-vous à la documentation ServiceNow Event Manager. Assurez-vous que ServiceNow Event Manager puisse recevoir les données envoyées par Centreon : les flux ne doivent pas être bloqués par la configuration de ServiceNow Event Manager ou par un équipement de sécurité.

Configurer le stream connector dans Centreon

  1. Sur votre serveur central, allez à la page Configuration > Collecteurs > Configuration de Centreon Broker.
  2. Cliquez sur central-broker-master (ou sur la configuration du Broker correspondant si les évènements seront envoyés par un serveur distant ou un collecteur).
  3. Dans l'onglet Output, sélectionnez Generic - Stream connector dans la liste, puis cliquez sur Ajouter. Un nouvel output apparaît dans la liste.
  4. Remplissez les champs de la manière suivante :
ChampValeur
NameServicenow events
Path/usr/share/centreon-broker/lua/servicenow-em-events-apiv2.lua
Filter categoryNeb
  1. Pour permettre à Centreon de se connecter à votre équipement ServiceNow Event Manager, remplissez les paramètres obligatoires suivants. La première entrée existe déjà. Cliquez sur le lien +Add a new entry en-dessous du tableau Filter category pour en ajouter un autre.
TypeNomExplicationExemple de valeur
stringinstanceNom de l'instance ServiceNowMyCompany
stringclient_idLe client_id Oauth
stringclient_secretLe client_secret Oauth
stringusernameL'utilisateur Oauth
stringpasswordLe mot de passe
  1. Renseignez les paramètres optionnels désirés (en utilisant le lien +Add a new entry) :
TypeNomExplicationValeur par défaut
stringlogfileLe fichier dans lequel les logs sont écrits/var/log/centreon-broker/servicenow-em-stream-connector.log
numberlog_levelNiveau de log allant de 1 (errors) à 3 (debug)1
  1. Utilisez les paramètres optionnels du stream connector pour filtrer ou adapter les données que vous voulez que Centreon envoie à ServiceNow Event Manager.

  2. Déployez la configuration.

  3. Redémarrez centengine sur tous les collecteurs :

    systemctl restart centengine

    ServiceNow Event Manager reçoit maintenant des données de Centreon. Pour tester le bon fonctionnement de l'intégration, voir Commandes curl : tester le stream connector.

Filtrer ou adapter les données que vous voulez envoyer à ServiceNow Event Manager

Tous les stream connectors ont un jeu de paramètres optionnels qui vous permettent de filtrer les données que vous enverrez à votre équipement ServiceNow Event Manager, de reformatter les données, de définir un proxy...

Chaque paramètre optionnel a une valeur par défaut, qui est indiquée dans la documentation correspondante.

  • Pour surcharger la valeur par défaut d'un paramètre, cliquez sur le lien +Add a new entry en-dessous du tableau Filter category, afin d'ajouter un paramètre personnalisé. Par exemple, si vous ne voulez envoyer à ServiceNow Event Manager que les évènmenes traités par un collecteur nommé "poller-1", entrez :

    type = string
    name = accepted_pollers
    value = poller-1
  • Pour le stream connector ServiceNow Event Manager Events, les données suivantes surchargent toujours les valeurs par défaut (il n'est pas nécessaire de les redéfinir dans l'interface).

TypeNomValeur par défaut pour le stream connector
stringaccepted_categoriesneb
stringaccepted_elementshost_status,service_status

Event bulking

Ce stream connector est compatible avec l'event bulking. Cela signifie qu'il est capable d'envoyer plus d'un évènement lors de chaque appel à l'API REST ServiceNow Event Manager.

Pour utiliser cette fonctionnalité, vous devez ajouter le paramètre suivant à la configuration de votre stream connector.

TypeNomValeur
numbermax_buffer_sizemore than one

Format des évènements

Ce stream connector envoie des évènements au format suivant :

Évènement service_status

{
"records": [{
"source": "centreon",
"event_class": "centreon",
"severity": 5,
"node": "my_host",
"resource": "my_service",
"time_of_event": "2022-09-06 11:52:12",
"description": "CRITICAL: USB cable behaving like a water hose"
}]
}

Évènement host_status

{
"records": [{
"source": "centreon",
"event_class": "centreon",
"severity": 5,
"node": "my_host",
"resource": "my_host",
"time_of_event": "2022-09-06 11:52:12",
"description": "DOWN: someone plugged an UPS on another UPS to create infinite energy"
}]
}

Format d'évènement personnalisé

Ce stream connector vous permet de modifier le format de l'événement en fonction de vos besoins. Seule la partie event du json est personnalisable. Il vous permet également de gérer des types d'événements qui ne sont pas gérés par défaut, tels que les événements ba_status.

Pour utiliser cette fonctionnalité, vous devez configurer un fichier json de format d'événement et ajouter un nouveau paramètre de connecteur de flux.

TypeNameValue
stringformat_file/etc/centreon-broker/servicenow-em-events-format.json

Le fichier de configuration du format des événements doit être lisible par l'utilisateur centreon-broker.

Pour en savoir plus sur les formats d'événements personnalisés et les fichiers modèles, consultez cette page.

Commandes Curl : tester le stream connector

Voici la liste des commandes curl qui sont utilisées dans ce stream connector.

Remplacez tous les <xxxx> dans les commande suivantes par la valeur correcte. Par exemple, <instance> pourra être remplacé par MyCompany.

Obtention des tokens OAuth

Si vous voulez tester que l'obtention des tokens 0Auth :

  1. Connectez-vous au serveur que vous avez configuré pour envoyer les évènements à ServiceNow Event Manager (le serveur central, un serveur distant ou un collecteur)
  2. Exécutez la commande suivante :
curl -X POST -H "Content-Type: application/x-www-form-urlencoded" 'https://<instance_name>.service-now.com/oauth_token.do' -d 'grant_type=password&client_id=<client_id>&client_secret=<client_secret>&username=<username>&password=<password>'

Rafraîchissement des tokens OAuth

Si vous voulez tester le rafraîchissement des tokens 0Auth :

  1. Connectez-vous au serveur que vous avez configuré pour envoyer les évènements à ServiceNow Event Manager (le serveur central, un serveur distant ou un collecteur)
  2. Exécutez la commande suivante :
curl -X POST -H "Content-Type: application/x-www-form-urlencoded" 'https://<instance_name>.service-now.com/oauth_token.do' -d 'grant_type=refresh_token&client_id=<client_id>&client_secret=<client_secret>&username=<username>&password=<password>&refresh_token=<refresh_token>'

Le <refresh_token> est obtenu grâce à cette commande curl.

Envoyer des évènements

Si vous voulez tester que les évènements sont envoyés correctement à ServiceNow Event Manager :

  1. Connectez-vous au serveur que vous avez configuré pour envoyer les évènements à ServiceNow Event Manager (le serveur central, un serveur distant ou un collecteur)
  2. Exécutez la commande suivante :
curl -X POST -H 'content-type: application/json' -H 'Accept: application/json' -H 'Authorization: Bearer <access_token>' 'https://<instance_name>.service-now.com/api/global/em/jsonv2' -d '{"records":[{"source": "centreon","event_class": "centreon","severity": 5,"node": "my_host","resource": "my_service","time_of_event": "2022-09-06 11:52:12","description": "CRITICAL: USB cable behaving like a water hose"}]}'

Le <access_token> est obtenu grâce à cette commande curl.

  1. Vérifiez que l'évènement a bien été reçu par ServiceNow Event Manager.