7.2.10.1.1. Présentation¶
Le composant vitam-prometheus
permet de stocker et visualiser les métriques techniques et métier collectées depuis les différents composants de la solution VITAM. Il permet aussi d’explorer les données en appliquant différentes fonctions statistiques.
La solution VITAM, par défaut, 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 exécuter la ligne de commande suivante :
Depuis le serveur ansible, aller au dossier path_to/vitam/deploiement/
# Spécifier le répertoire de sortie dans le fichier cots_var.yml {{ prometheus.prometheus_config_file_target_directory: path_dir_output }}
ansible-playbook ansible-vitam-extra/prometheus.yml -i environments/hosts.<environnement> --ask-vault-pass --tags gen_prometheus_config
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 ouverts 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 ansible-vitam-extra/prometheus.yml -i environments/hosts.<environnement> --ask-vault-pass
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 }})
- name: vitam_disk
rules:
- alert: OutOfDiskSpace
expr: (node_filesystem_avail_bytes{mountpoint="/vitam"} * 100) / node_filesystem_size_bytes{mountpoint="/vitam"} < 20
for: 10m
labels:
severity: warning
annotations:
description: |-
Disk is almost full (< 20% left)
VALUE = {{ $value }}
LABELS: {{ $labels }}
summary: Out of disk space (instance {{ $labels.instance }})
- alert: OutOfDiskSpace
expr: (node_filesystem_avail_bytes{mountpoint="/vitam"} * 100) / node_filesystem_size_bytes{mountpoint="/vitam"} < 5
for: 5m
labels:
severity: critical
annotations:
description: |-
Disk is almost full (< 5% 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
- Règle sur erreur bloquante dans une offre froide
groups:
- name: tape_offer
rules:
- alert: DriveWorkerKO
expr: vitam_offer_tape_workers_interrupted > 0
for: 1s
labels:
severity: critical
annotations:
description: |-
At least one tape offer drive worker is KO
summary: Drive worker KO (offerId {{$labels.offerId}})