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 |