Exporters
Un exporter est un composant qui envoie des données de métriques à un backend de monitoring. Les exporters sont configurés pour envoyer des données à un serveur Prometheus. Les exporters sont configurés dans le fichier de configuration de Prometheus.
Liste des exporters
Nous utilisons les exporters suivants :
- Node exporter
- Kubernetes exporter
- CAdvisor exporter
- Minio exporter
- MySQL exporter
- SNMP exporter
- Ping exporter
- XCPng exporter
- Windows Exporter
Nous n’avons pas pu déployer tous les exporters, car certains d’entre eux étaient complexes à déployer et à implémenter
Node exporter
Explication
Le node exporter est un exporter qui permet de récupérer des métriques sur le système d’exploitation. Il permet de récupérer des métriques sur le CPU, la mémoire, le disque, le réseau, etc.
Configuration
Dans notre cas, nous avons deux utilisations différentes du node exporter. L’une pour les vm et l’autre pour les nœuds kubernetes.
Configuration pour les VM
Tout d’abord pour une vm “Debian 12” il va falloir installer le paquet node exporter. Pour cela il faut ajouter le dépôt de node exporter.
echo "deb https://packagecloud.io/prometheus-community/exporter/debian/ bullseye main" >
/etc/apt/sources.list.d/prometheus-community-exporter.list
curl -s https://packagecloud.io/gpg.key | apt-key add -
apt-get update
apt-get install prometheus-node-exporterEnsuite activer le service
```bash
systemctl enable --now prometheus-node-exporter
```
Configuration pour les nœuds Kubernetes
Il faut créer un demonset qui créera une instance de node exporter par nœud.
apiVersion: apps/v1
kind: DaemonSet
metadata:
labels:
app.kubernetes.io/component: exporter
app.kubernetes.io/name: node-exporter
name: node-exporter
namespace: monitoring
spec:
selector:
matchLabels:
app.kubernetes.io/component: exporter
app.kubernetes.io/name: node-exporter
template:
metadata:
labels:
app.kubernetes.io/component: exporter
app.kubernetes.io/name: node-exporter
spec:
containers:
- args:
## Configuration pour le node exporter
- --path.sysfs=/host/sys
- --path.rootfs=/host/root
- --no-collector.wifi
- --no-collector.hwmon
- --collector.filesystem.ignored-mount-points=
^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/pods/.+)($|/)
- --collector.netclass.ignored-devices=^(veth.*)$
name: node-exporter
## Image du node exporter
image: prom/node-exporter
ports:
- containerPort: 9100
protocol: TCP
resources:
## Limite de ressources pour le node exporter
limits:
cpu: 250m
memory: 180Mi
requests:
cpu: 102m
memory: 180Mi
volumeMounts:
## Montage des volumes pour le node exporter
- mountPath: /host/sys
mountPropagation: HostToContainer
name: sys
readOnly: true
- mountPath: /host/root
mountPropagation: HostToContainer
name: root
readOnly: true
volumes:
- hostPath:
path: /sys
name: sys
- hostPath:
path: /
name: rootPuis, nous importons le dashboard grafana pour le node exporter.

Windows exporter
Explication
Le windows exporter est un exporter qui permet de récupérer des métriques sur le système d’exploitation windows. Il permet de récupérer des métriques sur le CPU, la mémoire, le disque, le réseau, etc.
Configuration
Pour l’installation du windows exporter, il faut télécharger le fichier msi sur le site de prometheus. Puis l’installer sur la machine windows.
installation

Il est possible de voir que le service est fonctionnel

Pour automatiser l’ajout des machines windows dans prometheus, il est possible de créer une GPO
Création de GPO
Tout d’abord, il faut créer un répertoire réseau qui contiendra l’installeur windows

Ensuite, il faut créer un GPO


Il faut ajouter le chemin UNC du répertoire réseau avec le package

La GPO devrait ressembler à cela

Kubernetes exporter
Explication
Le Kubernetes exporter est un exporter qui permet de récupérer des métriques sur les nœuds Kubernetes. Celui-ci s’occupe de récupérer les informations sur l’api de kubernetes, et de les envoyer à Prometheus. Tel que le nombre de pods, le nombre de nœuds, etc.
CAdvisor exporter
Explication
CAdvisor est un outil qui permet de récupérer des métriques sur les conteneurs docker. Il permet de récupérer des métriques sur le CPU, la mémoire, le disque, le réseau, etc. Mais cadvisor n’est pas un exporter, c’est un outil qui permet de récupérer des métriques sur les conteneurs docker.
Minio exporter
Explication
Cet exporter permet de récupérer les metrics de minio qui est utilisé pour stocker les backups.
SNMP exporter
Explication
L’exporter SNMP permet de récupérer des métriques sur les équipements réseaux qui supportent le protocole SNMP.
Ping exporter
Explication
Cet exporter est particulier, mais nous permet de faire du health check sur des services qui ne supportent pas le protocole