Aller au contenu

Installation de la stack prometheus

Introduction

Nous allons installer la stack prometheus. Cette stack comprend:

  • prometheus
  • grafana
  • alertmanager

Fichier de configuration

cd /tmp
curl https://gitforge.dyndns.org/downloads/prometheus/prometheus-1.0.0.tar.gz -o prometheus-1.0.0.tar.gz
tar -zxvf prometheus-1.0.0.tar.gz
cd prometheus-1.0.0

Configuration de la stack prometheus

Avant de procéder à l'installation, éditez le fichier values.yaml afin d'adapter les variables à votre environnement.

Installation de la stack prometheus

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm upgrade kube-prometheus prometheus-community/kube-prometheus-stack \
--install \
--atomic \
--cleanup-on-fail \
--values=./values.yaml \
--namespace kube-prometheus \
--create-namespace

Configuration des gateway prometheus, grafana et alertmanager

helm upgrade kube-prometheus-gateway . \
--install \
--atomic \
--cleanup-on-fail \
--values=./values.yaml \
--namespace kube-prometheus \
--create-namespace

Test d'envoi d'alerte

Warning

  • Assurez-vous que Postfix sur l'hôte n'écoute pas uniquement sur 127.0.0.1.
  • Il est également nécessaire d'autoriser le réseau du cluster K3s dans la directive 'mynetworks'
    en y ajoutant la plage d'IP de vos pods (obtenue avec : kubectl get nodes -o jsonpath='{.items[*].spec.podCIDR}').

Afficher le log

kubectl logs -f -n kube-prometheus -l app.kubernetes.io/name=alertmanager 

Tip

Le niveau de log étant sur info, si rien ne s'affiche, c'est plutôt bon signe

Création d'une alerte de test

kubectl run curl-test --rm -i --tty --image=curlimages/curl --namespace kube-prometheus --restart='Never' -- sh -c 'curl -X POST -H "Content-Type: application/json" -d "[{\"labels\":{\"alertname\":\"TestAlert\",\"severity\":\"critical\"},\"annotations\":{\"summary\":\"Alerte de test\",\"description\":\"Test Alertmanager\"}}]" http://kube-prometheus-kube-prome-alertmanager:9093/api/v2/alerts'

Le message peut mettre plusieurs minutes pour être délivré

Fin de l'alerte de test

Par défaut, l'alerte reste active pendant 5 minutes. Passé ce délai, en l'absence de nouveaux événements, elle est automatiquement considérée comme résolue.

La commande ci-dessous force la résolution de l'alerte

kubectl run curl-test --rm -it=false --image=curlimages/curl --namespace kube-prometheus --restart='Never' -- sh -c 'curl -X POST -H "Content-Type: application/json" -d "[{\"labels\":{\"alertname\":\"TestAlert\",\"severity\":\"critical\"},\"annotations\":{\"summary\":\"Alerte de test terminée\"},\"endsAt\":\"2020-01-01T00:00:00Z\"}]" http://kube-prometheus-kube-prome-alertmanager:9093/api/v2/alerts'

Le message peut mettre plusieurs minutes pour être délivré

Accès aux interfaces web:

  • grafana: https://<public_host_grafana>
    • Utilisateur: admin
    • mot de passe: pa55w0rd (à changer)
  • prometheus: https://<public_host_prometheus>
  • alertmanager: https://<public_host_alertmanager>

Nettoyage

cd
rm -rf /tmp/prometheus-1.0.0*

Sources

Grafana-dashboards-kubernetes
Grafana dashboard


Version Date Change Auteur
1.0 19.09.2026 Création GMo