Passer au contenu principal
Toutes les collectionsSupervision IBMi
Fichiers de configuration de Kapsul
Fichiers de configuration de Kapsul

Cette documentation vise à expliquer la structure et les différentes parties du fichier de configuration JSON d'un agent Kabeen.

Matthieu Bonnard avatar
Écrit par Matthieu Bonnard
Mis à jour il y a plus de 2 mois

Cette documentation vise à expliquer la structure et les différentes parties du fichier de configuration JSON d'un agent Kabeen. Ce fichier de configuration est utilisé pour définir les systèmes, les moniteurs et les points de terminaison (endpoints) que l'agent doit gérer.

Structure du fichier de configuration

Le fichier de configuration JSON est composé des sections principales suivantes :

  1. UUID : Identifiant unique de la configuration.

  2. Systèmes : Liste des systèmes (Linux, Windows, IBM i) surveillés.

  3. Moniteurs : Liste des moniteurs configurés pour surveiller divers aspects des systèmes.

  4. Points de Terminaison (Endpoints) : Liste des points de terminaison pour la collecte et l'envoi des données.

  5. Groupes de Modèles de Moniteurs : Groupes de modèles de moniteurs préconfigurés.

UUID

Chaque configuration a un identifiant unique (UUID) qui permet de la distinguer des autres configurations.

"uuid": "xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"

Systèmes

Les systèmes sont classés en trois catégories : linuxSystems, windowsSystems, et ibmiSystems. Chaque système a des attributs comme l'adresse, le nom d'utilisateur, le mot de passe, et des métadonnées spécifiques.
Ces systèmes correspondent aux éléments que l'agent mesurera.

Exemple de système IBM i :

{
"name": "IBMI_SYSTEM"
"address": "10.0.0.1",
"password": "ENCRYPTEDPASSWORD",
"securedConnection": false,
"uuid": "yyyyyy-yyyy-yyyy-yyyy-yyyyyyyy",
"username": "KAPSUL_ACCOUNT",
"metadata": {
"LPAR_NAME": "IBMI01",
"MONITOR_GROUP": "zzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzz",
"ENCRYPTED_PASSWORD": "YES",
"COMPANY_ID": "MY_COMPANY"
}

Moniteurs

Les moniteurs surveillent divers aspects des systèmes. Chaque moniteur a des attributs comme metadata, arguments, systemUUID, className, monitorName, et uuid.

Exemple de moniteur SQL :

{
"uuid": "mmmmmmm-mmmm-mmmm-mmmm-mmmmmmmmmmmm",
"monitorName": "MONITOR_SQL01",
"className": "capsule.actors.monitors.managed.ibmi.SqlSingleResultMonitor",
"systemUUID": "yyyyyy-yyyy-yyyy-yyyy-yyyyyyyy",
"metadata": {
"MONITOR_GROUP_FROM": "MONITOR_GROUP01",
"MONITOR_TEMPLATE_ID": "zzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzz"
},
"arguments": {
"queries": {
"test_sql | gauge | test_sql": "SELECT count(*) FROM TABLE users"
},
"disableSqlValidation": true
},
}

Points de Terminaison (Endpoints)

Les points de terminaison sont utilisés pour envoyer les données collectées par les moniteurs vers des destinations spécifiques comme Elasticsearch, Prometheus ou des fichiers.

Exemple de point de terminaison Elasticsearch

{
"uuid": "eeeeeee-eeee-eeee-eeee-eeeeeeeeee",
"endpointName": "Elasticsearch",
"metadata": null,
"className": "capsule.actors.endpoints.managed.ElasticSearchEndpoint",
"arguments": {
"url": "http://elasticsearch-cluster.domain.com:9200",
"authentication": "admin",
"indexName": "monitoring"
}
}

Configuration générale de l'Agent

Détail de la configuration

  • include "application": inclus la configuration de base de l'agent.

  • agentUUID: identifiant unique de l'agent au format UUID

  • lang: langue des données transmisent par l'agent (fr | en)

Configuration de l'interface HTTP

Gestion des paramètre de l'interface HTTP (utilisation de SSL, port, clés d'authentifications ...)

httpInterface {
bindAddress = "0.0.0.0"
bindPort = 8662

apiKeys = [
{
key = "changeme"
admin = true
},
{
key = "changeme"
admin = false
}
]

ssl {
enabled = true
keystorePath = "keystore.local.jks" // required if enabled = true, default to "keystore.local.jks"
keystorePass = "changeme" // required if enabled = true
}
}

  • bindAddress: Adresse local de l'agent. Correspond généralement à l'IP de la carte réseaux à utiliser ou ``0.0.0.0`` si toutes les cartes sont concernées.

  • apiKeys: Tableau contenant un couple (clé / droit) de clé d'API. Les clés d'API sont utilisés comme identifiant de communication avec l'agent.

Deux cas d'utilisation :

  • la configuration de l'agent en activant le mode administration ``admin=true``. Les fonctionnalités de configuration sont accessibles en utilisant cette clé, dont l'accès à l'interface web de configuration.

  • la communication avec l'agent depuis un système de supervision de type actuator (Centreon, Prometheus). Dans ce cas, il est conseiller de multiplier les clés par système de ne pas activer le mode admin.

ssl: activation du chiffrage SSL pour la communication des systèmes de supervision vers l'agent (Centreon, Prometheus ...).

Pour l'activer:

  • Mettre ``enable=true``

  • Préciser le chemin du fichier JKS (Java Keystore) : ``keystorePath = "path/to/keystore"``

  • Préciser le mot de passe pour ouvrir le Keystore : ``keystorePass = "changeme"``

Configuration des connexions aux serveurs IBMi

Gestion des connexions par système IBMi

ibmi {
poolMaxConnections = 10
dbPoolMaxConnections = 10
}
  • poolMaxConnections: Nombre de connexion maximal par pool de commandes.

  • dbPoolMaxConnections: Nombre de connexion maximal par pool de base de données (DB2).

Avez-vous trouvé la réponse à votre question ?