Prometheus - Outer Heaven

Prometheus

Prometheus est un logiciel libre de surveillance informatique et générateur d’alertes. Il enregistre des métriques en temps réel dans une base de données de séries temporelles en se basant sur le contenu de point d’entrée exposé à l’aide du protocole HTTP. Ces métriques peuvent ensuite être interrogées à l’aide d’un langage de requête simple, le PromQL, et peuvent également servir à générer des alertes. Le projet est écrit en Go et est disponible sous licence Apache 2. Prometheus a été développé chez SoundCloud à partir de 2012. Prometheus a été conçu pour répondre à ces problèmes : disposer d’une base de données multidimensionnelle, un outil simple à faire fonctionner, un mécanisme de collecte simple et évolutif et un langage de requête puissant, le tout dans un seul outil. Prometheus utilise des exporters (des agents lightweight) afin de recuperer les metriques dans sa base de données.

Installation par Docker

Pour la mise en place de la solution nous avons utilisé Docker afin de facilé le déploiement et la mise ne place de la solution.

Son docker compose se présente ainsi

version: "3.7"
networks:
  monitor:
services:
  prometeus:
    image: prom/prometheus
    ports:
      - 9090:9090
    volumes:
      - ./prometheus:/etc/prometheus/
    hostname: prometheus.monitor

afin d’accéder à l’interface de Prometheus nous allons donc sur l’ip de l’hôte docker avec le port 9090.

Alertmanager

L’alertmanager est une extension de prometheus permettant d’afficher des alertes personnalisé au sujet des métriques récolté par Prometheus.

Pour ce faire nous ajouter ces ligne ci-dessous a notre docker compose.

[...]
Services
[...]
  AlertManage:
    image: prom/alertmanager
    ports:
      - 9093:9093
    volumes:
      - ./alertmanager:/etc/alertmanager/
    hostname: alertmanager.monitor
[...]

Exporters

Les expoteurs sont des agents lightweight qui récoltent les métriques selon le besoin de supervision voulu. Il en existe plus d’une centaine. https://prometheus.io/docs/instrumenting/exporters/.

Il faut noter que les exporters rassemblent les données sur la machine, qui doivent ensuite être récupérées par prometheus en mode pull. C’est donc à prometheus de connaitre ses cibles, et non à l’exporteur de déterminer où envoyer ses métriques, à la différence par exemple des agents Wazuh.

Recharger la configuration

Lorsque des modifications ont été apportées au fichier de configuration, il est nécessaire de redémarrer prometheus, ou de recharger la configuration en envoyant un requête POST à l’url /-/reload. Ex :

curl -X POST http://192.168.20.21:9090/-/reload