
Mon Home Lab Devops est composé à ce jour de 3
mini-pc dont un se fige de temps en temps (le plus vieux). J'ai donc mis en
place le monitoring de leurs ressources avec Prometheus. Le plus
compliqué a été de trouver où ajouter dans le fichier de valeurs du chart
helm ces jobs de scraping. Mais avant cela voyons comment installer
node-exporter sur les machines Linux.
Installation de prometheus-node-exporter sur les machines Linux
Pour installer node-exporter, il faudra tout installer à la main.
sudo useradd -rs /bin/false node_exporterwget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gzsudo tar -xzvf node_exporter-1.3.1.linux-amd64.tar.gzsudo install node_exporter-1.3.1.linux-amd64/node_exporter /usr/local/binsudo vi /etc/systemd/system/node_exporter.serviceMettez-y ce contenu :
[Unit]Description=Node Exporter[Service]User=node_exporterEnvironmentFile=/etc/sysconfig/node_exporterExecStart=/usr/local/bin/node_exporter $OPTIONS[Install]WantedBy=multi-user.targetIl faut aussi créer le fichier de configuration :
sudo mkdir -p /etc/sysconfig/sudo vi /etc/sysconfig/node_exporterY mettre ce contenu :
OPTIONS="--collector.textfile.directory /var/lib/node_exporter/textfile_collector"On active et on démarre le service :
sudo systemctl enable node_exporter.service --nowAjout des jobs de scraping des machines Linux à la configuration de Prometheus
Si comme moi vous avez installé la stack Prometheus/Grafana avec le helm chart, il faut ajouter au fichier de valeurs ceci :
additionalScrapeConfigs: - job_name: devbox2 scrape_interval: 30s static_configs: - targets: - 192.168.1.103:9100 labels: env: 'production' app: 'rundeck' - job_name: devbox3 scrape_interval: 30s static_configs: - targets: - 192.168.1.41:9100 labels: env: 'production' app: 'test'On upgrade notre release Helm :
export KUBECONFIG=~/.kube/config-devbox1.ymlkubectl config set-context --current --namespace=prometheushelm upgrade prometheus prometheus-community/kube-prometheus-stack -f my-values.yml
Release "prometheus" has been upgraded. Happy Helming!NAME: prometheusLAST DEPLOYED: Thu Mar 10 12:54:50 2022NAMESPACE: prometheusSTATUS: deployedREVISION: 6NOTES:kube-prometheus-stack has been installed. Check its status by running: kubectl --namespace prometheus get pods -l "release=prometheus"
Visit https://github.com/prometheus-operator/kube-prometheus for instructions on how to create & configure Alertmanager and Prometheus instances using the Operator.Maintenant, il suffit d'aller faire un tour sur le dashboard de Prometheus. Vous devriez voir apparaître vos machines Linux (il faut patienter une petite minute pour les voir apparaître).

Si vous n'avez créé l'ingress le voila :
apiVersion: networking.k8s.io/v1kind: Ingressmetadata: annotations: kubernetes.io/ingress.class: traefik traefik.ingress.kubernetes.io/frontend-entry-points: http,https traefik.ingress.kubernetes.io/redirect-entry-point: https traefik.ingress.kubernetes.io/redirect-permanent: "true" name: prometheus-ingress namespace: prometheusspec: rules: - host: prometheus.robert.local http: paths: - path: / pathType: Prefix backend: service: name: prometheus-operated port: number: 9090 tls: - hosts: - prometheus.robert.local secretName: wildcard-tls-certMaintenant, allons voir dans le dashboard node-exporter Full de Grafana si nos nœuds sont présents. Oui, ils le sont.

À lire ensuite
- Monitoring de k8s avec prometheus et grafana
Surveillez votre cluster Kubernetes k3s avec Prometheus et Grafana via Helm et Ingress pour visualiser les performances et détecter les incidents.
- Contrôler vos VM sous FlatCar avec Nabraska
Utilisez Nebraska pour contrôler les mises à jour Flatcar Linux en interne : déploiement via Docker Compose, configuration des clients, rollback et suivi centralisé.
- Optimisation des temps de build
Accélérez vos builds Python avec Nexus : stockez vos packages en format wheel, réduisez la compilation et optimisez vos pipelines DevOps.
- Enregistrer les IP dans PowerDNS avec Terraform
Apprenez à enregistrer des adresses IP dans PowerDNS avec Terraform pour optimiser votre home lab DevOps et gérer vos DNS efficacement.