Modification du fichier de configuration toml canopsis.toml
¶
Description¶
Le fichier canopsis.toml
regroupe la plupart des réglages fondamentaux des différents moteurs et services de Canopsis.
Note
Les réglages d'exploitation « du quotidien » se situent plutôt dans l'interface web de Canopsis.
D'autres réglages propres à certains moteurs se font au travers de :
- leurs variables d'environnement ;
- leurs options de lancement, que l'on retrouve dans l'aide intégrée au binaire de chaque moteur (
-help
) ; - valeurs définies par défaut dans un fichier de configuration
canopsis.toml
, surchargeables (objet de cette page).
Emplacement¶
L'emplacement du fichier de configuration diffère entre les différents types d'environnement d'installation proposés par Canopsis.
Type d'environnement | Emplacement du fichier |
---|---|
Paquets RPM | /opt/canopsis/etc/canopsis.toml |
Docker Compose/K8S (Canopsis Pro) | /canopsis-pro.toml dans le conteneur reconfigure |
Docker Compose/K8S (Canopsis Community) | /canopsis-community.toml dans le conteneur reconfigure |
Attention
La modification de valeurs ne doit pas se faire dans le fichier d'origine.
On utilise plutôt un fichier de surcharge (canopsis-override.toml
), comme
indiqué dans la suite de cette documentation.
Modification et maintenance du fichier¶
Le fichier canopsis-override.toml
permet de surcharger la configuration par défaut.
Ce fichier contiendra seulement les paramètres qui diffèrent de la configuration par défaut.
Le fichier est situé au chemin suivant : /opt/canopsis/etc/conf.d/canopsis-override.toml
.
Lors de la mise à jour de Canopsis, vos modifications dans ce fichier seront préservées par le gestionnaire de paquets dnf
.
Le fichier est situé dans le conteneur reconfigure
au chemin suivant : /opt/canopsis/etc/conf.d/canopsis-override.toml
.
Montez-y votre fichier personnalisé à l'aide d'un volume.
Ceci est déjà en place dans les environnements de référence Docker Compose :
services:
# ...
reconfigure:
# ...
volumes:
- ./files/canopsis/reconfigure/conf.d/:/opt/canopsis/etc/conf.d/
Un exemple de fichier avec des paramètres commentés est présent dans la configuration Docker Compose livrée.
Vous référer au chart Helm et sa documentation.
Méthode 1 (applicable dans tous les cas) :
- mettez votre fichier
canopsis-override.toml
dans unConfigMap
- indiquez le nom du
ConfigMap
via la valuereconfigure.tomlConfigMap
Méthode 2 (applicable si vous avez fait un helm pull
et maintenez votre
propre copie locale du chart) :
- placez votre fichier dans le répertoire local
files/reconfigure/
prévu à cet effet
Prise en compte des modifications¶
Après toute modification de valeur dans les fichiers .toml
de Canopsis,
la commande canopsis-reconfigure
doit être relancée, puis les services et
moteurs Canopsis doivent être redémarrés.
Exécuter les commandes suivantes :
set -o allexport ; source /opt/canopsis/etc/go-engines-vars.conf
/opt/canopsis/bin/canopsis-reconfigure
systemctl restart canopsis.service
Exécuter les commandes suivantes :
docker compose restart reconfigure
docker compose restart
Après modification du contenu du fichier local ou du ConfigMap
de votre
cru, il faut redéployer le chart avec la commande helm upgrade
.
Le job reconfigure
sera alors recréé et lancé (nom de la forme
release-name-reconfigure-x-y-z
basé sur votre nom de release et la
version de Canopsis en cours).
Attendez la bonne fin d'exécution du job reconfigure
, puis redémarrez
tous les Deployments
correspondant aux moteurs et services Canopsis, par
exemple avec ce type de commande :
kubectl rollout restart deploy -l app.kubernetes.io/instance=$RELEASE_NAME
Description des options¶
Section [Canopsis.global]¶
Attribut | Exemple de valeur | Description |
---|---|---|
PrefetchCount | 10000 | |
PrefetchSize | 0 | |
ReconnectTimeoutMilliseconds | 8 | Délai de reconnexion auprès des services tiers (redis, mongodb, rabbitmq, ...) |
ReconnectRetries | 3 | Nombre de tentative de reconnexion aux services tiers |
MaxExternalResponseSize | 10485760 # 10Mb | Taille maximale d'une réponse d'API tierce |
BuildEntityInfosDictionary | true, false | Activation de la génération des infos d'entités dans un dictionnaire servant à l'auto complétation coté WebUI |
BuildDynamicInfosDictionary | true, false | Activation de la génération des infos d'alarmes dans un dictionnaire servant à l'auto complétation coté WebUI |
InfosDictionaryLimit | 1100 | Nombre maximum de paires clé/valeur à stocker dans les dictionnaires mentionnés ci-dessus |
EventsCountTriggerDefaultThreshold | 10 | Valeur par défaut du nombre d'événements utilisé par le trigger |
Section [Canopsis.file]¶
Attribut | Exemple de valeur | Description |
---|---|---|
Upload | "/opt/canopsis/var/lib/upload-files" | Emplacement des fichiers uploadés. Utilisé pour le module de remédiation et des paramètres de l'interface graphique |
UploadMaxSize | 314572800 # 300Mb | Taille maximale d'un fichier à uploader (en octet) |
Junit | "/opt/canopsis/var/lib/junit-files" | Emplacement des fichiers traités par le module Junit |
JunitApi | "/tmp/canopsis/junit" | Emplacement des fichiers temporaires uploadés par le module Junit (via API) |
SnmpMib | ["/usr/share/snmp/mibs"] | Emplacement des fichiers MIB qui seront utilisés par le module SNMP |
Icon | "/opt/canopsis/var/lib/icons" | Emplacement des fichiers d'icônes |
IconMaxSize | 10240 # 10Kb | Taille max des fichiers d'icônes |
Section [Canopsis.alarm]¶
Attribut | Exemple de valeur | Description |
---|---|---|
StealthyInterval | Encore utilisé ? | |
Obsolète EnableLastEventDate | true,false | Active la mise à jour du champ last_event_date d'une alarme à chaque événement Depuis Canopsis 23.10, la date de dernier changement est nécessairement calculée |
CancelAutosolveDelay | "1h" | Délai de résolution effective d'une alarme après annulation depuis l'interface graphiqe |
DisplayNameScheme | "{{ rand_string 3 }}-{{ rand_string 3 }}-{{ rand_string 3 }}" | Schéma utilisé pour générer le champ display_name d'une alarme |
OutputLength | 255 | Nombre maximum de caractères du champ output avant troncage |
LongOutputLength | 1024 | Nombre maximum de caractères du champ long_output avant troncage |
DisableActionSnoozeDelayOnPbh | true,false | Si vrai alors le délai du snooze n'est pas ajouté à un comportement périodique |
TimeToKeepResolvedAlarms | "720h" | Délai durant lequel les alarmes résolues sont conservées dans la collection principale des alarmes |
AllowDoubleAck | true,false | Permet d'acquitter plusieurs fois une alarme |
ActivateAlarmAfterAutoRemediation | true,false | Permet de décaler l'activation d'une alarme après l'exécution de la remédiation automatique |
EnableArraySortingInEntityInfos | true,false | Active ou désactive le tri dans les listes utilisées dans les attributs d'événements. Par exemple, si un événement contient info1=["item2", "item1"] et que l'option est activée alors info1 vaudra en sortie info1=["item1", "item2"] |
CropStepsNumber | 0 | Nombre de steps stateinc ou statedec continus avant de les "compresser" en un step "statecounter".Cerla permet de diminuer drastiquement le nombre de steps d'un alarme |
Section [Canopsis.timezone]¶
Attribut | Exemple de valeur | Description |
---|---|---|
Timezone | "Europe/Paris" | Timezone générale du produit Canopsis |
Section [Canopsis.data_storage]¶
Attribut | Exemple de valeur | Description |
---|---|---|
TimeToExecute | "Sunday,23" | Jour et heure d'exécution de la politique de rotation des données définie dans le module Data Storage |
Section [Canopsis.import_ctx]¶
Attribut | Exemple de valeur | Description |
---|---|---|
ThdWarnMinPerImport | "30m" | Durée d'import au délà de laquelle une alarme mineure sera générée |
ThdCritMinPerImport | "60m" | Durée d'import au délà de laquelle une alarme critique sera générée |
FilePattern | "/tmp/import_s.json" | Pattern de nommage des fichiers temporaires d'import |
Section [Canopsis.api]¶
Attribut | Exemple de valeur | Description |
---|---|---|
TokenSigningMethod | "HS256" | Méthode de signature d'un token d'authentification |
BulkMaxSize | 1000 | Taille maximum d'un batch (api endpoint) de changement en données en base |
ExportMongoClientTimeout | "1m" | Durée maximum d'un export au format CSV |
AuthorScheme | ["$username"] | Permet de définir la manière de représenter l'auteur d'une action dans Canopsis. Ex : ["$username", " ", "$firstname", " ", "$lastname", " ", "$email", " ", "$_id"] |
MetricsCacheExpiration | "24h" | Durée de validité du cache des API liées aux métriques |
Section [Canopsis.logger]¶
Attribut | Exemple de valeur | Description |
---|---|---|
Writer | "stdout" | Canal de sortie du logger. stdout ou stderr |
Sous-section [Canopsis.logger.console_writer]¶
Toute modification dans cette section nécessite un redémarrage de Canopsis
Attribut | Exemple de valeur | Description |
---|---|---|
Enabled | true | Active ou désactive le mode ConsoleWriter. Si désactivé alors les messages sont loggués en JSON. |
NoColor | true | Active ou désactive les couleurs dans les logs |
TimeFormat | "2006-01-02T15:04:05Z07:00" | Format des dates des messages de logs au format GO |
PartsOrder | ["time", "level", "caller", "message"] | Ordre des parties des messages de logs parmi "time", "level", "message", "caller", "error" |
Section [Canopsis.metrics]¶
Attribut | Exemple de valeur | Description |
---|---|---|
Enabled | false | true |
FlushInterval | "10s" | Délai d'écriture des métriques dans la base de données |
SliInterval | "1h" | Les longs intervalles de SLI sont découpés en plus petits intervalles définis par cet attribut. Une valeur faible augmente la précision des métriques mais nécessite plus d'espace disque. Une valeur élevée diminue la précision des métriques mais nécessaite moins d'espace disque. "1h" est la valeur recommandée dans la mesure où l'intervalle le plus petit gérée par l'interface graphique correspond à 1 heure (Ne peut pas être > "1h" |
UserSessionGapInterval | "1h" | Précision des temps de session utilisateur. Prenons un utilisateur, actif sur la l'interface graphique de 9:00 à 18:00, avec UserSessionGapInterval=1h. La table des métriques user ressemblera à : - 9:00 3600 - 10:00 3600 - 11:00 3600 - ... - 17:00 3600 |
AllowedPerfDataUnits | ["%","°C","s","us","ms","B","KB","MB","TB","c"] | Liste blanche des unités de métriques autorisées dans un événement |
Section [Canopsis.tech_metrics]¶
Attribut | Exemple de valeur | Description |
---|---|---|
Enabled | false | true |
DumpKeepInterval | "1h" | Détermine le temps durant lequel les dumps seront disponibles avant leur suppression |
Section [Canopsis.template.vars]¶
Attribut | Exemple de valeur | Description |
---|---|---|
system_env_var_prefixes | ["ENV_"] | Les variables d'environnement peuvent être utilisées dans des templates Go sous la forme {{ .Env.System.ENV_var }} ou dans l'interface graphique en Handlebars sous la forme {{ env.System.ENV_var }} .Seules les variables dont le prefixe est mentionné dans ce paramètre seront lues. |
var1 | "valeur1" | Ces variables peuvent être utilisées dans des templates Go sous la forme {{ .Env.var }} ou dans l'interface graphique en Handlebars sous la forme {{ env.var1 }} |
Section [Remediation]¶
Attribute | Example | Description |
---|---|---|
http_timeout | "1m" | Timeout de connexion au serveur distant |
launch_job_retries_amount | 3 | Nombre de tentatives d'exécution du job sur le serveur distant |
launch_job_retries_interval | "5s" | Intervalle de temps entre 2 tentative d'exécution d'un job |
wait_job_complete_retries_amount | 12 | Nombre par défaut de tentatives de récupération du statut d'un job |
wait_job_complete_retries_interval | 5s | Intervalle par défaut entre 2 tentatives de récupération du statut d'un job |
pause_manual_instruction_interval | 15s | Délai d'inactivité de l'utilisateur après lequel une consigne manuelle est mise en pause |
Exemples
- Rundeck est défaillant. Le moteur
remediation
essaie de se connecter à Rundeck. Après le délaihttp_timeout
, la requête est considérée en échec. - Le moteur
remédiation
émet une requête vers Rundeck pour déclencher un job. Rundeck renvoie une erreur 500. Le moteur tente de déclencher le joblaunch_job_retries_amount
fois toutes leslaunch_job_retries_interval
. - Le moteur
remediation
récupère le statut d'un job Rundeck. Rundeck renvoie un statut running. Le moteur répète cette requêtewait_job_complete_retries_amount
fois toutes leswait_job_complete_retries_interval
. - Un utilisateur exécute une consigne manuelle, il ferme son navigateur. Après
pause_manual_instruction_interval
, la consigne est mise en pause
Section [HealthCheck]¶
Attribut | Exemple de valeur | Description |
---|---|---|
update_interval | "10s" | Intervalle de mise à jour des informations de HealthCheck |
Références¶
Pour référence, vous pouvez aussi consulter les fichiers d'origine complets, avec les valeurs par défaut et des exemples commentés (en anglais) dans les sources de Canopsis :
Prenez soin de sélectionner la branche release-YY.MM
en fonction de la
version majeure de Canopsis qui vous concerne, la branche develop
représentant la prochaine version de Canopsis.