La configuration de l’Integrator couvre l’identite du service, le dimensionnement du pool de workers, toutes les cibles d’integration (InfluxDB, Splunk, Elastic, Kafka, Zabbix, Canopsis, ServiceNow, GLPI, Jira), les canaux de notification et l’export de donnees.
Astuce : inutile d’ecrire ce fichier a la main — l’assistant de configuration des composants genere un integrator.json pret a l’emploi a partir de quelques questions guidees.
Configuration du service (integrator.json)
Ce fichier doit se trouver dans le meme repertoire que l’executable.
{"name":"integrator1","ip":"","port":"8052","location":"Datacenter-1","description":"Main data integration hub","logLevel":"info","nbworker":"4","queuesize":"10000","backupInterval":"24","nbDaysBackup":"336","maxBackups":"5","maxSize":"10","maxAge":"28","logCompress":"true","send2CSVEnabled":"false","send2JSONEnabled":"false","influxDBEnabled":"false","splunkEnabled":"false","elasticEnabled":"false","kafkaEnabled":"false","zabbixEnabled":"false","canopsisEnabled":"false","serviceNowEnabled":"false","glpiEnabled":"false","jiraEnabled":"false","smtpEnabled":"false"}
Reference des parametres
Identite et reseau
Champ
Type
Description
Defaut
name
string
Identifiant unique de l’integrator
requis
ip
string
Adresse IP de liaison (vide = toutes les interfaces)
""
port
string
Port TCP pour l’API REST
"8052"
location
string
Etiquette de localisation geographique/logique
""
description
string
Description libre
""
Pool de workers
Champ
Type
Description
Defaut
nbworker
string
Nombre de goroutines worker traitant la file de taches
"4"
queuesize
string
Nombre maximum de taches dans la file avant suppression
"10000"
notifBufferSize
string
Nombre max de notifications echouees conservees sur disque pour reprise (la plus ancienne supprimee si plein)
"500"
Guide de dimensionnement : Pour les environnements a fort volume (>1000 moniteurs), augmentez nbworker a 8-16 et queuesize a 50000+. Chaque worker traite les taches sequentiellement, donc plus de workers = plus de parallelisme.
Gestion des donnees
Champ
Type
Description
Defaut
backupInterval
int
Heures entre les sauvegardes automatiques du magasin cle-valeur
24
nbDaysBackup
int
Jours de conservation des fichiers de sauvegarde
336
Journalisation
Champ
Type
Description
Defaut
logLevel
string
debug, info, warn, error
"info"
maxBackups
int
Fichiers journaux en rotation a conserver
5
maxSize
int
Taille max du fichier journal (Mo)
10
maxAge
int
Age max du fichier journal (jours)
28
logCompress
string
Compresser les journaux en rotation
"true"
Moteur de correlation
Champ
Type
Description
Defaut
correlationEnabled
string
Active la correlation de cause racine inter-agents
"false"
correlationWindowMinutes
string
Minutes de recherche d’un depassement amont
"10"
Optionnel. Le moteur de correlation est desactive par defaut. Une fois active, les depassements des moniteurs url/api/tcp/db/ping/nslookup sont correles avec les depassements amont anterieurs rattachables au meme hoteet qui precedent reellement la panne, et l’evenement est enrichi d’un objet rca (en plus de l’indice [RCA] dans le journal). Le lien peut traverser les sondes lorsqu’il provient d’un Sentinel Agent tournant sur l’hote cible (rattachement declared ou address) — jamais sur la seule identite de sonde. Un moniteur deja en panne avant le depassement du candidat n’en devient jamais le symptome. Voir Integrator — Moteur de correlation inter-agents pour le modele complet. Les deux champs peuvent aussi etre pousses en direct depuis l’interface Webserver sans redemarrer le service.
Hote de l’instance ServiceNow (ex. dev12345.service-now.com)
serviceNowPort
Port serveur (en general 443)
serviceNowUser
Utilisateur d’integration
serviceNowPwd
Mot de passe
serviceNowSSL
"true" pour HTTPS
serviceNowResolvedState
Valeur state de l’incident a la resolution automatique (defaut 6 = Resolu)
serviceNowCloseCode
close_code defini a la resolution automatique (defaut Resolved by caller)
serviceNowAutoResolve
"true" (defaut) pour resoudre automatiquement au retablissement. Un incident pris en charge par un humain (attribue / au-dela de Nouveau) n’est jamais cloture automatiquement — une note de travail de retablissement est ajoutee a la place
serviceNowGraceSeconds
Fenetre d’amortissement (anti-flapping) en secondes avant l’ouverture d’un incident a la panne. Si le moniteur se retablit dans cette fenetre, le flap est supprime et aucun incident n’est cree. Defaut 0 = ouverture immediate
serviceNowIncidentScope
Nombre d’incidents que vaut une panne. "all" (defaut) = un incident par moniteur en depassement. "root" = un evenement rattache par le moteur RCA a une defaillance amont anterieure n’ouvre aucun incident propre ; il est publie en note de travail sur l’incident de la cause racine. Necessite correlationEnabled — sans correlation rien n’est un symptome et chaque evenement ouvre toujours son propre incident
Ouvre un incident a la panne et le resout automatiquement au retablissement, correle par correlation_id.
Champ
Description
glpiEnabled
"true" pour activer
glpiServer
Hote GLPI (ex. glpi.example.com)
glpiPort
Port serveur (en general 443)
glpiUser
Utilisateur d’integration
glpiPwd
Mot de passe
glpiAppToken
App-Token du client API (laisser vide si le client API GLPI n’en a pas)
glpiSSL
"true" pour HTTPS
glpiSolvedStatus
Statut du ticket a la resolution automatique (defaut 5 = Resolu ; 6 = Clos)
glpiAutoResolve
"true" (defaut) pour resoudre automatiquement au retablissement. Un ticket pris en charge par un humain (attribue / en cours / en attente) n’est jamais cloture automatiquement — un suivi de retablissement est ajoute a la place
glpiGraceSeconds
Fenetre d’amortissement (anti-flapping) en secondes avant l’ouverture d’un ticket a la panne. Si le moniteur se retablit dans cette fenetre, le flap est supprime et aucun ticket n’est cree. Defaut 0 = ouverture immediate
Ouvre un ticket a la panne et le resout automatiquement au retablissement, correle par une cle embarquee dans le titre du ticket.
Champ
Description
jiraEnabled
"true" pour activer
jiraServer
Hote Jira Cloud (ex. your-domain.atlassian.net)
jiraPort
Port serveur (en general 443)
jiraUser
Email du compte (utilisateur Basic auth)
jiraPwd
Jeton d’API (mot de passe Basic auth)
jiraSSL
"true" pour HTTPS
jiraProjectKey
Cle du projet cible (ex. OPS) ou les demandes sont creees
jiraIssueType
Type de demande pour les demandes creees (defaut Bug)
jiraResolveTransition
Nom de la transition de workflow utilisee pour la resolution automatique (defaut Done)
jiraAutoResolve
"true" (defaut) pour resoudre automatiquement au retablissement. Une demande prise en charge par un humain (attribuee / en cours) n’est jamais cloturee automatiquement — un commentaire de retablissement est ajoute a la place
jiraGraceSeconds
Fenetre d’amortissement (anti-flapping) en secondes avant l’ouverture d’une demande a la panne. Un retablissement dans la fenetre supprime le flap (aucune demande). Defaut 0 = ouverture immediate
Ouvre une demande a la panne et la resout automatiquement (via une transition de workflow) au retablissement, correlee par un label retrouve en JQL.
Export de donnees
Champ
Type
Description
Defaut
send2CSVEnabled
string
Exporter les donnees en fichiers CSV dans data/
"false"
send2JSONEnabled
string
Exporter les donnees en fichiers JSON dans data/
"false"
Parametres de notification
Champ
Description
smtpEnabled
"true" pour activer les notifications par email
smtpServerName
Nom d’hote du serveur SMTP
smtpPort
Port SMTP (25, 465, 587)
smtpUsername
Nom d’utilisateur SMTP
smtpPwd
Mot de passe SMTP (stocke chiffre)
smtpTLS
"true" pour TLS
Champ
Description
slackChannel
Canal de notification par defaut
slackToken
Jeton de bot (stocke chiffre)
Champ
Description
teamsWebhook
URL du webhook entrant (stocke chiffre)
Champ
Description
pagerDutyAPIKey
Cle API pour la creation d’incidents (stockee chiffree)
Champ
Description
emailOnF
Envoyer un email en cas d’echec
emailOnSC
Envoyer un email en cas de changement de statut
slackOnF
Envoyer sur Slack en cas d’echec
slackOnSC
Envoyer sur Slack en cas de changement de statut
teamsOnF
Envoyer sur Teams en cas d’echec
teamsOnSC
Envoyer sur Teams en cas de changement de statut
pdOnF
Envoyer sur PagerDuty en cas d’echec
pdOnSC
Envoyer sur PagerDuty en cas de changement de statut
scriptOnF
Executer un script en cas d’echec
scriptOnSC
Executer un script en cas de changement de statut
Notes de securite
Tous les champs sensibles (mots de passe, jetons, cles API, webhooks) sont :
Chiffres au repos avec AES-256-GCM avant le stockage dans le magasin cle-valeur integre
Jamais journalises en clair – masques dans la sortie de debogage
Proteges par mutex pour un acces thread-safe lors des mises a jour de configuration
La cle de chiffrement est generee lors de l’installation et stockee dans le repertoire config/sec/.
Secret interne des composants (_sharedInternal)
La cle _sharedInternal definit le mot de passe du compte machine interne adminMNS utilise pour l’authentification API entre composants (l’Integrateur l’utilise pour se connecter au Webserver, et le Webserver l’utilise pour piloter l’Integrateur). Elle doit etre identique dans la configuration de chaque composant (monitor.json, webserver.json, integrator.json, discovery_agent.json) ; une non-correspondance fait echouer des actions comme Enable et Push Settings avec une erreur bcrypt. Lorsqu’elle est vide, adminMNS n’est pas cree (fail-closed). Voir Secret interne des composants pour les details et la rotation.