# Blackbox Exporter https://github.com/prometheus/blackbox_exporter --- <!-- .slide: style="text-align: left;"> --> ## Principe de fonctionnement * peut être vu comme un "curl à la demande" qui renvoie un résultat compatible avec Prometheus * URL de probe pour Prometheus : [`http://<blackbox_exporter>:9115/probe?module=http_check&target=https://mondomaine.fr`]() * Les modules (comme `http_check`) sont définis dans la configuration de blackbox_exporter ---- <!-- .slide: style="text-align: left;"> --> ## Blackbox interactif ``` k -n monitoring port-forward \ svc/blackbox-exporter-prometheus-blackbox-exporter \ 9115:9115 ``` http://localhost:9115 dans mon navigateur --- <!-- .slide: style="text-align: left;"> --> ## Support Blackbox_exporter chez Monitoring * ajouter une URL à monitorer * ajouter un module et une nouvelle target * visualiser les métriques générées * créer des alertes à partir de ces métriques Note : on doit aussi savoir le déployer, le mettre à jour... Et un jour, migrer son déploiement sur Trackbone ? --- <!-- .slide: style="text-align: left;"> --> ## Ajouter une URL à monitorer * Documentation : [howto/blackbox-exporter/BlackboxExporter.md](https://git.corp.cloudwatt.com/caascad/monitoring/blob/master/documentation/howto/blackbox-exporter/BlackboxExporter.md) * Principe : ajouter un servicemonitor ---- <!-- .slide: style="text-align: left;"> --> ## Ajouter une URL à monitorer chez Monitoring * modifier [ansible/inventory/group_vars/all/blackbox_exporter.yaml](https://git.corp.cloudwatt.com/caascad/monitoring/blob/master/ansible/inventory/group_vars/all/blackbox_exporter.yaml) * redéployer avec ansible Paramétrage facultatif * `module` : `http_2xx` par défaut * `url` : [`https://<your name>.<The blackbox exporter zonename>.caascad.com`]() par défaut --- <!-- .slide: style="text-align: left;"> --> ## Ajouter un nouveau module * Documentation : * [howto/blackbox-exporter-maintenance/modules.md](https://git.corp.cloudwatt.com/caascad/monitoring/blob/master/documentation/howto/blackbox-exporter-maintenance/modules.md) * Upstream : https://github.com/prometheus/blackbox_exporter/blob/master/CONFIGURATION.md * Principe : * modifier [ansible/roles/blackbox-exporter/templates/blackbox-exporter.yaml.j2](https://git.corp.cloudwatt.com/caascad/monitoring/blob/master/ansible/roles/blackbox-exporter/templates/blackbox-exporter.yaml.j2) * redéployer avec ansible ---- <!-- .slide: style="text-align: left;"> --> ## Pour tester * ajouter le module dans le ConfigMap : `kubectl edit cm blackbox-exporter-prometheus-blackbox-exporter` * faire prendre en compte la nouvelle modif avec `kubectl -n monitoring delete pod ...` * ajouter un servicemonitor à la main : `kubectl apply -f servicemonitor-de-test.yaml` * ne pas oublier de faire le ménage ---- <!-- .slide: style="text-align: left;"> --> ## Pour déboguer ... parce que ça ne marche pas toujours du premier coup ! Voir les logs de blackbox_exporter en filtrant sur la target qui vient d'être ajoutée. Et on peut utiliser cette méthode à tout moment. Elle n'est pas limitée au développement ! --- <!-- .slide: style="text-align: left;"> --> ## Visualiser les métriques * Grafana : dashboard "Blackbox-exporter" (la liste des probes est générée dynamiquement) * Grafana : explore. Les métriques sont préfixées de `probe_` * `kubectl port-forward` sur le port 9115 ---- <!-- .slide: style="text-align: left;"> --> ## Les métriques à disposition des clients Les clients ont un blackbox_exporter à leur disposition. Il monitore en particulier les services qui lui sont exposés : * grafana * karma Ils peuvent consulter les métriques sur leur Grafana et disposent également d'un dashboard "Blackbox Exporter". --- <!-- .slide: style="text-align: left;"> --> ## Créer des alertes * Documentation : [howto/blackbox-exporter/rules.md](https://git.corp.cloudwatt.com/caascad/monitoring/blob/master/documentation/howto/blackbox-exporter/rules.md) * Principe : il s'agit de PrometheusRules. Il n'y a rien de spécifique pour Blackbox_exporter. --- ## The end * mais on n'a pas parlé de l'upgrade de blackbox_exporter * ni de la création de l'image que nous utilisons * ni du rôle Ansible * encore moins de tout ce qu'on pourrait améliorer pour nous faciliter la vie... Des questions ?
{"type":"slide","slideOptions":{"transition":"slide","theme":"white"}}