7.2.10.1.1. Présentation¶
Le composant vitam-prometheus
permet de stocker et visualiser à minima les métriques techniques et métier collectées depuis les différents composants de la sloution VITAM. Il permet aussi d’explorer les données en appliquant différentes fonctions statistiques.
Si vous disposez déjà d’une solution de supervision promehteus, il est possible de désactiver son installation avec la solution vitam. Il suffit de modifier la varible prometheus.server.enabled: false
. Cette modification permet aussi de désinstaller le serveur prometheus s’il est déjà installé par la solution VITAM.
La solution VITAM, par defaut, déploie une seule instance de ce service. Veuillez vous référer à la documentation officielle prometheus pour pouvoir scaller le déploiement de cet outil.
7.2.10.1.1.1. Générer le fichier de configuration prometheus.yml¶
Dans le cas ou vous disposez d’un serveur prometheus, vous n’avez qu’à générer la configuration `prometheus.yml
depuis l’inventaire de l’environnement de la solution VITAM.
Pour générer uniquement la configuration il faut executer la ligne de commande suivante :
Depuis le serveur ansible, aller au dossier path_to/vitam/deploiement/
# Spécifier le repértoire de sortie dans le fichier cots_var.yml {{ prometheus.prometheus_config_file_target_directory: path_dir_output }}
ansible-playbook -i environments/hosts ansible-vitam-extra/prometheus.yml --tags gen_prometheus_config --ask-vault
Le fichier de configuration sera généré dans le répertoire de sortie avec le nom prometheus.yml
. Il suffit de récupérer les parties nécessaires, comme par exemple scrape_configs
et les intégrer dans la configuration du serveur prometheus déjà existant.
Avertissement
Les flux réseaux entre le serveur prometheus existant et les différents machines hébergeant le solution VITAM doivent être ouvets sur la patte d’administration
7.2.10.1.1.2. Intégrer de nouvelle règles d’alertes¶
Déposez les fichiers des règles dans le dossier: ../../../../../../deployment/ansible-vitam-extra/roles/prometheus-server/rules/
Ensuite lancez la commande suivante:
ansible-playbook -i environments/hosts ansible-vitam-extra/prometheus.yml --ask-vault
Avertissement
Si la variable prometheus.server.enabled
dans cots_var.yml
est false
ce playbook n’aura aucun effet.
7.2.10.1.1.2.1. Exemple de fichiers de règles¶
- Règle sur le disque
groups:
- name: system_disk
rules:
- alert: OutOfDiskSpace
expr: (node_filesystem_avail_bytes{mountpoint="/rootfs"} * 100) / node_filesystem_size_bytes{mountpoint="/rootfs"} < 15
for: 10m
labels:
severity: warning
annotations:
description: |-
Disk is almost full (< 10% left)
VALUE = {{ $value }}
LABELS: {{ $labels }}
summary: Out of disk space (instance {{ $labels.instance }})
- alert: OutOfDiskSpace
expr: (node_filesystem_avail_bytes{mountpoint="/rootfs"} * 100) / node_filesystem_size_bytes{mountpoint="/rootfs"} < 5
for: 5m
labels:
severity: critical
annotations:
description: |-
Disk is almost full (< 10% left)
VALUE = {{ $value }}
LABELS: {{ $labels }}
summary: Out of disk space (instance {{ $labels.instance }})
- Règle sur le host
groups:
- name: host
rules:
- alert: high_cpu_load
expr: node_load1 > 1.5
for: 30s
labels:
severity: warning
annotations:
summary: "Server under high load"
description: "Host is under high load, the avg load 1m is at {{ $value}}. Reported by instance {{ $labels.instance }} of job {{ $labels.job }}."
- alert: high_memory_load
expr: (sum(node_memory_MemTotal) - sum(node_memory_MemFree + node_memory_Buffers + node_memory_Cached) ) / sum(node_memory_MemTotal) * 100 > 85
for: 30s
labels:
severity: warning
annotations:
summary: "Server memory is almost full"
description: "Host memory usage is {{ humanize $value}}%. Reported by instance {{ $labels.instance }} of job {{ $labels.job }}."
- alert: high_storage_load
expr: (node_filesystem_size{fstype="aufs"} - node_filesystem_free{fstype="aufs"}) / node_filesystem_size{fstype="aufs"} * 100 > 85
for: 30s
labels:
severity: warning
annotations:
summary: "Server storage is almost full"
description: "Host storage usage is {{ humanize $value}}%. Reported by instance {{ $labels.instance }} of job {{ $labels.job }}."
- Règle sur l’utilisation de la mémoire
groups:
- name: system_disk
rules:
- alert: MemoryUsage
expr: (100 - ((node_memory_MemAvailable_bytes * 100) / node_memory_MemTotal_bytes)) > 85
for: 10m
labels:
severity: warning
annotations:
description: RAM of {{$labels.instance}} has been too used for more than 10 minutes
summary: Instance {{$labels.instance}} start to use too many memory
- alert: MemoryUsage
expr: (100 - ((node_memory_MemAvailable_bytes * 100) / node_memory_MemTotal_bytes)) > 90
for: 10m
labels:
severity: critical
annotations:
description: RAM of {{$labels.instance}} has been too used for more than 10 minutes
summary: Instance {{$labels.instance}} is in danger