InfluxDB 2 Metrics
Le stream connector InfluxDB 2 Metrics vous permet d'envoyer des données depuis Centreon vers des instances InfluxDB 2.
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 InfluxDB 2 Metrics envoie des métriques des évènements Broker host_status et service_status. Ces métriques sont contenues dans le champ perf_data des évènements. 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 à InfluxDB 2 (serveur central, serveur distant, collecteur).
-
Connectez-vous en tant que
root
en utilisant votre client SSH préféré. -
Exécutez la commande suivante :
- Alma / RHEL / Oracle Linux 8
- Alma / RHEL / Oracle Linux 9
- Debian_11_&_12
dnf install centreon-stream-connector-influxdb
dnf install centreon-stream-connector-influxdb
apt install centreon-stream-connector-influxdb
Configurer votre équipement InfluxDB 2
Vous devrez paramétrer votre équipement InfluxDB 2 pour qu'il puisse recevoir des données de la part de Centreon. Reportez-vous à la documentation InfluxDB 2. Assurez-vous que InfluxDB 2 puisse recevoir les données envoyées par Centreon : les flux ne doivent pas être bloqués par la configuration de InfluxDB 2 ou par un équipement de sécurité.
Configurer le stream connector dans Centreon
- Sur votre serveur central, allez à la page Configuration > Collecteurs > Configuration de Centreon Broker.
- 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).
- Dans l'onglet Output, sélectionnez Generic - Stream connector dans la liste, puis cliquez sur Ajouter. Un nouvel output apparaît dans la liste.
- Remplissez les champs de la manière suivante :
Champ | Valeur |
---|---|
Name | InfluxDB 2 metrics |
Path | /usr/share/centreon-broker/lua/influxdb2-metrics-apiv2.lua |
Filter category | Neb |
- Pour permettre à Centreon de se connecter à votre équipement InfluxDB 2, 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.
Type | Nom | Explication | Exemple de valeur |
---|---|---|---|
string | bucket_id | The ID of the bucket where metrics will be sent | 65f5f748e28c92f0 |
string | bucket_api_key | The API key used to send data to the bucket | OGwOM8nse3FHjxyGw5ODLWWXS1oEpcPsjLcRl09zmCEbBE0TKgAiJiKOyKOBUZxoo76qe6-PTPq-70ECCwA== |
string | org_name | The name of the InfluxDB organization | centreon |
string | http_server_url | The InfluxDB address with the port at the end | https://myinfluxdb2.local:8086 |
- Renseignez les paramètres optionnels désirés (en utilisant le lien +Add a new entry) :
Type | Nom | Explication | Valeur par défaut |
---|---|---|---|
string | logfile | The file in which logs are written | /var/log/centreon-broker/influxdb2-metrics.log |
number | log_level | Logging level from 1 (errors) to 3 (debug) | 1 |
-
Utilisez les paramètres optionnels du stream connector pour filtrer ou adapter les données que vous voulez que Centreon envoie à InfluxDB 2.
-
Redémarrez centengine sur tous les collecteurs :
systemctl restart centengine
InfluxDB 2 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 à InfluxDB 2
Tous les stream connectors ont un jeu de paramètres optionnels qui vous permettent de filtrer les données que vous enverrez à votre équipement InfluxDB 2, de reformater 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 à Influxdb 2 que les évènements traités par un collecteur nommé "poller-1", entrez :
type = string
name = accepted_pollers
value = poller-1 -
Pour le stream connector InfluxDB 2 Metrics, les données suivantes surchargent toujours les valeurs par défaut (il n'est pas nécessaire de les redéfinir dans l'interface).
Type | Nom | Valeur par défaut pour le stream connector |
---|---|---|
string | influxdb2_api_endpoint | /api/v2/write |
string | influxdb2_precision | s |
string | accepted_categories | neb |
string | accepted_elements | host_status,service_status |
number | hard_only | 0 |
number | enable_host_status_dedup | 0 |
number | enable_service_status_dedup | 0 |
string | metric_name_regex | ([, =]) |
string | metric_replacement_character | \\%1 |
number | use_deprecated_metric_system | 0 |
Pour les noms de métriques et remplacements voir ici.
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 Spunk.
Pour utiliser cette fonctionnalité, vous devez ajouter le paramètre suivant à la configuration de votre stream connector.
Type | Nom | Valeur |
---|---|---|
number | max_buffer_size | more than one |
Conformément aux best practices,
max_buffer_size
est défini par défaut à 5000. Mais vous devriez réduire sa valeur à quelques centaines si vous avez moins de 10 000 services.
Format des évènements
Ce stream connector envoie des évènements au format suivant :
Évènement service_status
rta,type=service,service.name=my_service,host.name=central,poller=Central,metric.unit=ms value=0.008 1694370951
pl,type=service,service.name=my_service,host.name=central,poller=Central,metric.unit=% value=0.0 1694370951
Évènement host_status
rta,type=host,host.name=central,poller=Central,metric.unit=ms value=0.008 1694370951
pl,type=host,host.name=central,poller=Central,metric.unit=% value=0.0 1694370951
Format d'évènement personnalisé
Ce stream connector n'est pas compatible avec le format d'événements personnalisé.
Commandes Curl : tester le stream connector
Envoyer des évènements
Si vous voulez tester que les évènements sont envoyés correctement à InfluxDB 2 :
-
Connectez-vous au serveur que vous avez configuré pour envoyer les évènements à InfluxDB 2 (le serveur central, un serveur distant ou un collecteur)
-
Exécutez la commande suivante :
curl -X POST -H 'content-type: text/plain; charset=utf-8' -H 'accept: application/json' -H 'Authorization: Token <bucket_api_key>' 'http://<http_server_url>/api/v2/write?bucket=<bucket_id>&org=<org_name>&precision=s' -d
Remplacez tous les
<xxxx>
dans la commande ci-dessus par la valeur correcte. Par exemple, <bucket_id> pourra être remplacé par 65f5f748e28c92f0. -
Vérifiez que l'évènement a bien été reçu par InfluxDB 2.