Prometheus et Graphana pour voir dans son cluster Kubernetes
Installer Prometheus
Ajouter le dépôt dans helm
Là, à la manière d'APT, nous allons ajouter une source à Helm pour lui permettre d'installer ce qu'on lui demande.
helm repo add coreos https://s3-eu-west-1.amazonaws.com/coreos-charts/stable/
Installer l'operator
On enchaîne sur l'installation de l'operator, le grand patron qui va s'occuper pour nous de Prometheus dans k8s.
helm install coreos/prometheus-operator --name prometheus-operator --namespace monitoring
Installer les kubes
Les Kubes sont des pods qui vont se poser sur nos différents nodes et sur le master afin de remonter les metrics. Ce sont, en gros, nos exporters.
helm install coreos/prometheus-operator --name prometheus-operator --namespace monitoring
Une fois ces quelques commandes exécutées, vous devriez voir ça :
dada@master:~/prometheus$ kubectl get pods -n monitoring -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE
alertmanager-kube-prometheus-0 2/2 Running 0 37m 10.244.3.140 node3 <none>
kube-prometheus-exporter-kube-state-65b6dbf6b4-b52jl 2/2 Running 0 33m 10.244.3.141 node3 <none>
kube-prometheus-exporter-node-5tnsl 1/1 Running 0 37m 192.168.0.76 node1 <none>
kube-prometheus-exporter-node-fd7pt 1/1 Running 0 37m 192.168.0.49 node3 <none>
kube-prometheus-exporter-node-mfdj2 1/1 Running 0 37m 192.168.0.22 node2 <none>
kube-prometheus-exporter-node-rg5q6 1/1 Running 0 37m 192.168.0.23 master <none>
kube-prometheus-grafana-6f6c894c5b-2d6h4 2/2 Running 0 37m 10.244.2.165 node2 <none>
prometheus-kube-prometheus-0 3/3 Running 1 37m 10.244.1.187 node1 <none>
prometheus-operator-87779759-wkpfz 1/1 Running 0 49m 10.244.1.185 node1 <none>
Notez que si vous êtes, comme moi, sur une connexion ADSL classique, vous aller avoir le temps d'aller faire couler un grand café et d'aller le boire une clope au bec et au soleil. Votre cluster va télécharger beaucoup de pods et sur chaque nœud.
En y regardant bien, on retrouve :
- L'AlertManager permettant de nous spammer en cas de souci,
- Les exporter nodes placés logiquement sur chaque node et sur notre master,
- Grafana, le copain de Prometheus qui vous fait des beaux dessins,
- Le kube et l'operator.
Accéder à tout ça
L'installation est vraiment triviale. Le petit bonus de ce billet sera de vous passer une liste de commandes pour admirer le tout dans votre navigateur préféré : Firefox.
Pour accéder à l'interface de Prometheus
Commencez par ouvrir un tunnel SSH sur le port 9090 vers votre master :
ssh -L 9090:127.0.0.1:9090 dada@IPDuMaster
Puis lancez le port-foward :
kubectl port-forward -n monitoring prometheus-kube-prometheus-0 9090
Pour accéder à l'interface de Grafana
Encore un tunnel SSH, sur le 3000 ce coup-ci :
ssh -L 3000:127.0.0.1:3000 dada@IPDuMaster
Et encore un port-forward :
kubectl port-forward $(kubectl get pods --selector=app=kube-prometheus-grafana -n monitoring --output=jsonpath="{.items..metadata.name}") -n monitoring 3000
Vous êtes bons ! Les dashboards sont maintenant accessibles en tapant http://localhost:PORT dans Firefox.
En image, ça devrait donner ça pour Grafana :
Et ça pour les alertes Prometheus :
Alors, oui. Vous avez aussi remarqué que des alertes étaient déjà levées ? Ce sont des outils/configurations que Prometheus attend de rencontrer dans votre cluster. Le mien n'a pas encore ces histoires de scheduler ou de controller manager. Ça va faire partie des découvertes à suivre dans les futurs billets.
Des bisous !