Aller au contenu principal

Prometheus

Système de monitoring et de base de données de séries temporelles (TSDB) open source, devenu le standard de facto de l'observabilité cloud-native. Fonctionne en pull : il va lui-même récupérer (scrape) les métriques exposées en HTTP par les cibles, plutôt que d'attendre qu'elles les lui envoient. Binaire prometheus, paquet prometheus.

Installation

# Debian/Ubuntu
sudo apt install prometheus

# Fedora/RHEL
sudo dnf install golang-github-prometheus

sudo systemctl enable --now prometheus

Fichiers de configuration

CheminRôle
/etc/prometheus/prometheus.ymlConfiguration principale : cibles à scraper, règles d'alerte, intervalle
/etc/prometheus/rules/*.ymlRègles d'alerte et de recording
/var/lib/prometheus/Données TSDB stockées sur disque

Commandes utiles

systemctl status|restart prometheus
promtool check config /etc/prometheus/prometheus.yml # valider la config
promtool check rules /etc/prometheus/rules/*.yml # valider les règles
curl localhost:9090/-/healthy # healthcheck
curl localhost:9090/api/v1/query?query=up # requête PromQL via l'API

Exemple de configuration

global:
scrape_interval: 15s

scrape_configs:
- job_name: node
static_configs:
- targets: ['localhost:9100'] # node_exporter

Chaque job_name définit un groupe de cibles à scraper à intervalle régulier ; ici le node_exporter local sur son port par défaut.

Sécurisation

  • Pas d'authentification native : placer Prometheus derrière un reverse proxy (nginx/traefik) avec auth, ou activer le TLS/basic-auth natif (web.config.yml depuis Prometheus 2.24+).
  • Restreindre l'écoute réseau (--web.listen-address) au réseau interne uniquement.
  • Limiter la rétention (--storage.tsdb.retention.time) pour éviter la saturation disque.
  • Ne jamais exposer l'API /api/v1/admin/tsdb/delete_series publiquement (permet de supprimer des données).

Logs & dépannage

journalctl -u prometheus -f
curl localhost:9090/api/v1/targets # état des cibles (up/down)

Voir aussi

  • Grafana — visualisation des métriques collectées par Prometheus
  • node_exporter — la cible la plus courante à scraper