# 7.2.10.1.2. Configuration / fichiers utiles

## 7.2.10.1.2.1. Fichier de configuration

`prometheus.yml`

    # my global config
    global:
      scrape_interval:     {{ prometheus.server.scrape_interval | default(15) }}s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
      evaluation_interval: {{ prometheus.server.evaluation_interval | default(15) }}s # Evaluate rules every 15 seconds. The default is every 1 minute.
      # scrape_timeout is set to the global default (10s).

    # Alertmanager configuration
    alerting:
      alertmanagers:
      - static_configs:
        # - alertmanager:9093
    {% for host in groups['hosts_alertmanager'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ prometheus.alertmanager.api_port | default(9093) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}

    # Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
    rule_files:
      # - rule.yml
    {% for item in rules_files.files %}
      - {{ item.path }}
    {% endfor %}

    scrape_configs:
    {% if prometheus.node_exporter.enabled | default(true) | bool == true %}
      - job_name: vitam-node-exporter
        metrics_path: {{ prometheus.node_exporter.metrics_path | default('/metrics') }}
        static_configs:
    {% for host in groups['vitam'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ prometheus.node_exporter.port | default(9101) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% if host in groups['hosts_elasticsearch_data'] %}
            elastic_cluster_name: "{{ elasticsearch.data.cluster_name }}"
    {% elif host in groups['hosts_elasticsearch_log'] %}
            elastic_cluster_name: "{{ elasticsearch.log.cluster_name }}"
    {% endif %}
    {% endfor %}

    {% if (groups['hosts_vitamui'] | default([]) | length > 0) %}
      - job_name: vitamui-node-exporter
        metrics_path: {{ prometheus.node_exporter.metrics_path | default('/metrics') }}
        static_configs:
    {% for host in groups['hosts_vitamui'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ prometheus.node_exporter.port | default(9101) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}
    {% endif %}

    {% if prometheus.consul_exporter.enabled | default(true) | bool == true %}
      - job_name: vitam-consul-exporter
        metrics_path: {{ prometheus.consul_exporter.metrics_path | default('/metrics') }}
        static_configs:
    {% for host in groups['vitam'] | union(groups['hosts_vitamui'] | default([])) %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ prometheus.consul_exporter.port | default(9107) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if prometheus.elasticsearch_exporter.enabled | default(true) | bool == true %}
      - job_name: vitam-elasticsearch-exporter
        metrics_path: {{ prometheus.elasticsearch_exporter.metrics_path | default('/metrics') }}
        static_configs:
    {% for host in groups['elasticsearch'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ prometheus.elasticsearch_exporter.port | default(9114) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_access_internal']|length >0) %}
      - job_name: vitam-access-internal
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_access_internal'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.accessinternal.port_admin | default(28101) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_access_external']|length >0) %}
      - job_name: vitam-access-external
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_access_external'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.accessexternal.port_admin | default(28102) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_ingest_internal']|length >0) %}
      - job_name: vitam-ingest-internal
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_ingest_internal'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.ingestinternal.port_admin | default(28100) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_ingest_external']|length >0) %}
      - job_name: vitam-ingest-external
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_ingest_external'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.ingestexternal.port_admin | default(28001) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_metadata']|length >0) %}
      - job_name: vitam-metadata
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_metadata'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.metadata.port_admin | default(28200) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_ihm_demo']|length >0) %}
      - job_name: vitam-ihm-demo
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_ihm_demo'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.ihm_demo.port_admin | default(28002) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_ihm_recette']|length >0) %}
      - job_name: vitam-ihm-recette
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_ihm_recette'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.ihm_recette.port_admin | default(28204) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_logbook']|length >0) %}
      - job_name: vitam-logbook
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_logbook'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.logbook.port_admin | default(29002) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_workspace']|length >0) %}
      - job_name: vitam-workspace
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_workspace'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.workspace.port_admin | default(28201) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_processing']|length >0) %}
      - job_name: vitam-processing
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_processing'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.processing.port_admin | default(28203) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_worker']|length >0) %}
      - job_name: vitam-worker
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_worker'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.worker.port_admin | default(29104) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_storage_engine']|length >0) %}
      - job_name: vitam-storage-engine
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_storage_engine'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.storageengine.port_admin | default(29102) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_storage_offer_default']|length >0) %}
    {% set offerInstances = [] %}
    {% for host in groups['hosts_storage_offer_default'] %}
    {{ offerInstances.append({"offerId": hostvars[host]['offer_conf'], "host": host }) }}
    {% endfor %}
      - job_name: vitam-storage-offer-default
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for offerId, hosts in offerInstances | groupby('offerId') %}
    {% for host in hosts %}
        - targets:
          - {{ hostvars[host.host]['ip_admin'] }}:{{ vitam.storageofferdefault.port_admin | default(29900) }}
          labels:
            offerId: {{ offerId }}
            hostname: "{{ host.host }}"
    {% endfor %}
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_functional_administration']|length >0) %}
      - job_name: vitam-functional-administration
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_functional_administration'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.functional_administration.port_admin | default(18004) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_metadata_collect']|length >0) %}
      - job_name: vitam-metadata-collect
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_metadata_collect'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.metadata_collect.port_admin | default(28290) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_workspace_collect']|length >0) %}
      - job_name: vitam-workspace-collect
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_workspace_collect'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.workspace_collect.port_admin | default(28291) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_collect_internal']|length >0) %}
      - job_name: vitam-collect-internal
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_collect_internal'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.collect_internal.port_admin | default(28038) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_collect_external']|length >0) %}
      - job_name: vitam-collect-external
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_collect_external'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.collect_external.port_admin | default(28030) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_scheduler']|length >0) %}
      - job_name: vitam-scheduler
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_scheduler'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.scheduler.port_admin | default(28799) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if prometheus.blackbox_exporter.enabled | bool %}
      - job_name: vitam-blackbox
        metrics_path: /probe
        params:
          module:
          - http_2xx
        relabel_configs:
        - source_labels:
          - __address__
          regex: ([^,]*),(.*)
          replacement: $1
          target_label: __param_target
        - source_labels:
          - __address__
          target_label: instance
        - source_labels:
          - __address__
          regex: ([^,]*),(.*)
          replacement: $2
          target_label: instance
        - source_labels:
          - __address__
          regex: ([^,]*),(.*)
          replacement: $1
          target_label: addresse
        - target_label: __address__
          replacement: localhost:9115
        static_configs:
        - targets:
    {% for target in prometheus.blackbox_exporter.targets %}
          - {{ target }}
    {% endfor %}
    {% endif %}

    {% if prometheus.mongodb_exporter.enabled | default(true) | bool %}
    {% if (groups['hosts_mongoc_data']|length >0) %}
      - job_name: vitam-mongoc-data
        metrics_path: /metrics
        static_configs:
    {% for host in groups['hosts_mongoc_data'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ prometheus.mongodb_exporter.port_mongoc | default(9216) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
            service_name: vitam-mongoc-data
            cluster: {{ hostvars[host]['mongo_cluster_name'] }}
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_mongod_data']|length >0) %}
      - job_name: vitam-mongod-data
        metrics_path: /metrics
        static_configs:
    {% for host in groups['hosts_mongod_data'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ prometheus.mongodb_exporter.port_mongod | default(9217) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
            service_name: vitam-mongod-data
            cluster: {{ hostvars[host]['mongo_cluster_name'] }}
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_mongoc_offer']|length >0) %}
      - job_name: vitam-mongoc-offer
        metrics_path: /metrics
        static_configs:
    {% for host in groups['hosts_mongoc_offer'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ prometheus.mongodb_exporter.port_mongoc | default(9216) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
            service_name: vitam-mongoc-offer
            cluster: {{ hostvars[host]['mongo_cluster_name'] }}
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_mongod_offer']|length >0) %}
      - job_name: vitam-mongod-offer
        metrics_path: /metrics
        static_configs:
    {% for host in groups['hosts_mongod_data'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ prometheus.mongodb_exporter.port_mongod | default(9217) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
            service_name: vitam-mongod-offer
            cluster: {{ hostvars[host]['mongo_cluster_name'] }}
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_vitamui_mongod'] | default([]) | length > 0) %}
      - job_name: vitamui-mongod
        metrics_path: /metrics
        static_configs:
    {% for host in groups['hosts_vitamui_mongod'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ prometheus.mongodb_exporter.port_mongod | default(9217) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
            service_name: vitamui-mongod
            cluster: {{ hostvars[host]['mongo_cluster_name'] | default('mongo-vitamui') }}
    {% endfor %}
    {% endif %}
    {% endif %}

## 7.2.10.1.2.2. Génération du fichier de configuration

Dans le cas où un serveur Prometheus est déjà en place, il est possible de générer le fichier de configuration `prometheus.yml` depuis l’inventaire de l’environnement de la solution VITAM.

Pour se faire, depuis la machine Ansible, se placer dans le répertoire `path_to/vitam/deploiement/` et exécuter la ligne de commande suivante :

    # 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 est alors 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 de les intégrer à la configuration du serveur Prometheus déjà existant.

Avertissement

Les flux réseau 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.2.3. Fichier de variable d’environnement

    # my global config
    global:
      scrape_interval:     {{ prometheus.server.scrape_interval | default(15) }}s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
      evaluation_interval: {{ prometheus.server.evaluation_interval | default(15) }}s # Evaluate rules every 15 seconds. The default is every 1 minute.
      # scrape_timeout is set to the global default (10s).

    # Alertmanager configuration
    alerting:
      alertmanagers:
      - static_configs:
        # - alertmanager:9093
    {% for host in groups['hosts_alertmanager'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ prometheus.alertmanager.api_port | default(9093) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}

    # Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
    rule_files:
      # - rule.yml
    {% for item in rules_files.files %}
      - {{ item.path }}
    {% endfor %}

    scrape_configs:
    {% if prometheus.node_exporter.enabled | default(true) | bool == true %}
      - job_name: vitam-node-exporter
        metrics_path: {{ prometheus.node_exporter.metrics_path | default('/metrics') }}
        static_configs:
    {% for host in groups['vitam'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ prometheus.node_exporter.port | default(9101) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% if host in groups['hosts_elasticsearch_data'] %}
            elastic_cluster_name: "{{ elasticsearch.data.cluster_name }}"
    {% elif host in groups['hosts_elasticsearch_log'] %}
            elastic_cluster_name: "{{ elasticsearch.log.cluster_name }}"
    {% endif %}
    {% endfor %}

    {% if (groups['hosts_vitamui'] | default([]) | length > 0) %}
      - job_name: vitamui-node-exporter
        metrics_path: {{ prometheus.node_exporter.metrics_path | default('/metrics') }}
        static_configs:
    {% for host in groups['hosts_vitamui'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ prometheus.node_exporter.port | default(9101) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}
    {% endif %}

    {% if prometheus.consul_exporter.enabled | default(true) | bool == true %}
      - job_name: vitam-consul-exporter
        metrics_path: {{ prometheus.consul_exporter.metrics_path | default('/metrics') }}
        static_configs:
    {% for host in groups['vitam'] | union(groups['hosts_vitamui'] | default([])) %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ prometheus.consul_exporter.port | default(9107) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if prometheus.elasticsearch_exporter.enabled | default(true) | bool == true %}
      - job_name: vitam-elasticsearch-exporter
        metrics_path: {{ prometheus.elasticsearch_exporter.metrics_path | default('/metrics') }}
        static_configs:
    {% for host in groups['elasticsearch'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ prometheus.elasticsearch_exporter.port | default(9114) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_access_internal']|length >0) %}
      - job_name: vitam-access-internal
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_access_internal'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.accessinternal.port_admin | default(28101) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_access_external']|length >0) %}
      - job_name: vitam-access-external
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_access_external'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.accessexternal.port_admin | default(28102) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_ingest_internal']|length >0) %}
      - job_name: vitam-ingest-internal
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_ingest_internal'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.ingestinternal.port_admin | default(28100) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_ingest_external']|length >0) %}
      - job_name: vitam-ingest-external
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_ingest_external'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.ingestexternal.port_admin | default(28001) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_metadata']|length >0) %}
      - job_name: vitam-metadata
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_metadata'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.metadata.port_admin | default(28200) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_ihm_demo']|length >0) %}
      - job_name: vitam-ihm-demo
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_ihm_demo'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.ihm_demo.port_admin | default(28002) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_ihm_recette']|length >0) %}
      - job_name: vitam-ihm-recette
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_ihm_recette'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.ihm_recette.port_admin | default(28204) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_logbook']|length >0) %}
      - job_name: vitam-logbook
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_logbook'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.logbook.port_admin | default(29002) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_workspace']|length >0) %}
      - job_name: vitam-workspace
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_workspace'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.workspace.port_admin | default(28201) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_processing']|length >0) %}
      - job_name: vitam-processing
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_processing'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.processing.port_admin | default(28203) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_worker']|length >0) %}
      - job_name: vitam-worker
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_worker'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.worker.port_admin | default(29104) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_storage_engine']|length >0) %}
      - job_name: vitam-storage-engine
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_storage_engine'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.storageengine.port_admin | default(29102) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_storage_offer_default']|length >0) %}
    {% set offerInstances = [] %}
    {% for host in groups['hosts_storage_offer_default'] %}
    {{ offerInstances.append({"offerId": hostvars[host]['offer_conf'], "host": host }) }}
    {% endfor %}
      - job_name: vitam-storage-offer-default
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for offerId, hosts in offerInstances | groupby('offerId') %}
    {% for host in hosts %}
        - targets:
          - {{ hostvars[host.host]['ip_admin'] }}:{{ vitam.storageofferdefault.port_admin | default(29900) }}
          labels:
            offerId: {{ offerId }}
            hostname: "{{ host.host }}"
    {% endfor %}
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_functional_administration']|length >0) %}
      - job_name: vitam-functional-administration
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_functional_administration'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.functional_administration.port_admin | default(18004) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_metadata_collect']|length >0) %}
      - job_name: vitam-metadata-collect
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_metadata_collect'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.metadata_collect.port_admin | default(28290) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_workspace_collect']|length >0) %}
      - job_name: vitam-workspace-collect
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_workspace_collect'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.workspace_collect.port_admin | default(28291) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_collect_internal']|length >0) %}
      - job_name: vitam-collect-internal
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_collect_internal'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.collect_internal.port_admin | default(28038) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_collect_external']|length >0) %}
      - job_name: vitam-collect-external
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_collect_external'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.collect_external.port_admin | default(28030) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_scheduler']|length >0) %}
      - job_name: vitam-scheduler
        metrics_path: {{ prometheus.metrics_path | default('/admin/v1/metrics') }}
        static_configs:
    {% for host in groups['hosts_scheduler'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ vitam.scheduler.port_admin | default(28799) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
    {% endfor %}
    {% endif %}

    {% if prometheus.blackbox_exporter.enabled | bool %}
      - job_name: vitam-blackbox
        metrics_path: /probe
        params:
          module:
          - http_2xx
        relabel_configs:
        - source_labels:
          - __address__
          regex: ([^,]*),(.*)
          replacement: $1
          target_label: __param_target
        - source_labels:
          - __address__
          target_label: instance
        - source_labels:
          - __address__
          regex: ([^,]*),(.*)
          replacement: $2
          target_label: instance
        - source_labels:
          - __address__
          regex: ([^,]*),(.*)
          replacement: $1
          target_label: addresse
        - target_label: __address__
          replacement: localhost:9115
        static_configs:
        - targets:
    {% for target in prometheus.blackbox_exporter.targets %}
          - {{ target }}
    {% endfor %}
    {% endif %}

    {% if prometheus.mongodb_exporter.enabled | default(true) | bool %}
    {% if (groups['hosts_mongoc_data']|length >0) %}
      - job_name: vitam-mongoc-data
        metrics_path: /metrics
        static_configs:
    {% for host in groups['hosts_mongoc_data'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ prometheus.mongodb_exporter.port_mongoc | default(9216) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
            service_name: vitam-mongoc-data
            cluster: {{ hostvars[host]['mongo_cluster_name'] }}
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_mongod_data']|length >0) %}
      - job_name: vitam-mongod-data
        metrics_path: /metrics
        static_configs:
    {% for host in groups['hosts_mongod_data'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ prometheus.mongodb_exporter.port_mongod | default(9217) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
            service_name: vitam-mongod-data
            cluster: {{ hostvars[host]['mongo_cluster_name'] }}
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_mongoc_offer']|length >0) %}
      - job_name: vitam-mongoc-offer
        metrics_path: /metrics
        static_configs:
    {% for host in groups['hosts_mongoc_offer'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ prometheus.mongodb_exporter.port_mongoc | default(9216) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
            service_name: vitam-mongoc-offer
            cluster: {{ hostvars[host]['mongo_cluster_name'] }}
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_mongod_offer']|length >0) %}
      - job_name: vitam-mongod-offer
        metrics_path: /metrics
        static_configs:
    {% for host in groups['hosts_mongod_data'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ prometheus.mongodb_exporter.port_mongod | default(9217) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
            service_name: vitam-mongod-offer
            cluster: {{ hostvars[host]['mongo_cluster_name'] }}
    {% endfor %}
    {% endif %}

    {% if (groups['hosts_vitamui_mongod'] | default([]) | length > 0) %}
      - job_name: vitamui-mongod
        metrics_path: /metrics
        static_configs:
    {% for host in groups['hosts_vitamui_mongod'] %}
        - targets:
          - {{ hostvars[host]['ip_admin'] }}:{{ prometheus.mongodb_exporter.port_mongod | default(9217) }}
          labels:
            hostname: "{{ host.split(".")[0] }}"
            service_name: vitamui-mongod
            cluster: {{ hostvars[host]['mongo_cluster_name'] | default('mongo-vitamui') }}
    {% endfor %}
    {% endif %}
    {% endif %}

## 7.2.10.1.2.4. Fichiers de données

Ce service utilise des fichiers de données localisés dans le répertoire `/vitam/data/prometheus/`

## 7.2.10.1.2.5. Règles livrées avec la solution VITAM

### 7.2.10.1.2.5.1. Etat de la machine

- Remonte une alerte critique si une machine n’est pas joignable depuis plus d’une minute

### 7.2.10.1.2.5.2. Processeur

- Remonte une alerte d’avertissement si la consommation globale du processeur d’une machine est à plus de 75% depuis 10 minutes
- Remonte une alerte critique si la consommation globale du processeur d’une machine est à plus de 90% depuis 10 minutes

### 7.2.10.1.2.5.3. Mémoire

- Remonte une alerte d’avertissement si la consommation de la mémoire d’une machine est à plus de 75% depuis 10 minutes
- Remonte une alerte critique si la consommation de la mémoire d’une machine est à plus de 90% depuis 10 minutes

### 7.2.10.1.2.5.4. Disque

- Remonte une alerte d’avertissement si la consommation de l’espace disque de la partition root d’une machine est à plus de 75% depuis 10 minutes
- Remonte une alerte d’avertissement si la consommation de l’espace disque de la partition Vitam d’une machine est à plus de 75% depuis 10 minutes
- Remonte une alerte critique si la consommation de l’espace disque de la partition root d’une machine est à plus de 90% depuis 10 minutes
- Remonte une alerte critique si la consommation de l’espace disque de la partition Vitam d’une machine est à plus de 90% depuis 10 minutes

## 7.2.10.1.2.6. Ajout de nouvelles règles

Afin d’ajouter de nouvelles règles, il suffit de déposer les nouveaux fichiers de règles dans le répértoire suivant : `deployment/ansible-vitam-extra/roles/prometheus-server/rules/`

Puis d’exécuter la commande suivante :

    ansible-playbook ansible-vitam-extra/prometheus.yml -i environments/hosts.<environnement> --ask-vault-pass