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":"8060","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
"8060"
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
Comment ces parametres se combinent avec les interrupteurs de chaque moniteur, et quand une alerte part : Notifications d’alerte.
Interrupteurs communs a l’Integrator. Un declencheur desactive ici l’est pour tous les moniteurs routes par cet Integrator, quoi qu’indique le moniteur. Ils se reglent dans le bloc Notifications de l’Integrator.
Champ
Description
Defaut
emailOnF / emailOnSC
Email en cas d’echec / de changement de statut
"false"
slackOnF / slackOnSC
Slack en cas d’echec / de changement de statut
"false"
teamsOnF / teamsOnSC
Teams en cas d’echec / de changement de statut
"false"
pdOnF / pdOnSC
PagerDuty en cas d’echec / de changement de statut
"false"
scriptOnF / scriptOnSC
Script personnalise en cas d’echec / de changement de statut
"false"
Utilisees par un moniteur qui active le canal en laissant sa propre destination vide. Une destination saisie sur le moniteur l’emporte toujours, champ par champ. Un defaut n’active jamais un canal.
Champ
Description
defEmailR
Destinataires par defaut (separes par des virgules)
defSlackChan
Canal Slack par defaut (ID recommande)
defSlackTok
Jeton bot Slack par defaut, xoxb-... (stocke chiffre)
defTeamsWH
URL de webhook Workflows Teams par defaut (stockee chiffree)
defPdAPI
Cle d’integration PagerDuty Events API V2 par defaut (stockee chiffree)
defScriptAction
Script par defaut : un nom de fichier de scripts/, eventuellement suivi d’arguments
defScriptActionT
Delai du script par defaut, en secondes (30 si vide ou non positif)
Le serveur SMTP ne se regle pas dans integrator.json : il est pousse par le Webserver (parametres du Webserver → SMTP) vers chaque Integrator active lors de l’enregistrement de ces parametres - smtpEnabled, smtpServerName, smtpPort, smtpUsername, smtpPwd (chiffre), smtpTLS, et smtpTLSVerify (conserve dans le stockage propre de l’Integrator). Voir Email.
Les anciennes cles slackChannel, slackToken, teamsWebhook et pagerDutyAPIKey, egalement poussees par le Webserver, ne sont pas utilisees pour les alertes des moniteurs. Utilisez les destinations par defaut ci-dessus.
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.