Loading search data...

HomeLab - Monitoring des machines Linux avec Prometheus

Publié le : 10 mars 2022 | Mis à jour le : 27 juin 2023

logo prometheus

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_exporter
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
sudo tar -xzvf node_exporter-1.3.1.linux-amd64.tar.gz
sudo install node_exporter-1.3.1.linux-amd64/node_exporter /usr/local/bin
sudo vi /etc/systemd/system/node_exporter.service

Mettez-y ce contenu :

[Unit]
Description=Node Exporter
[Service]
User=node_exporter
EnvironmentFile=/etc/sysconfig/node_exporter
ExecStart=/usr/local/bin/node_exporter $OPTIONS
[Install]
WantedBy=multi-user.target

Il faut aussi créer le fichier de configuration :

sudo mkdir -p /etc/sysconfig/
sudo vi /etc/sysconfig/node_exporter

Y 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 --now

Ajout 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.yml
kubectl config set-context --current --namespace=prometheus
helm upgrade prometheus prometheus-community/kube-prometheus-stack -f my-values.yml

Release "prometheus" has been upgraded. Happy Helming!
NAME: prometheus
LAST DEPLOYED: Thu Mar 10 12:54:50 2022
NAMESPACE: prometheus
STATUS: deployed
REVISION: 6
NOTES:
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).

prometheus node export linux

Si vous n’avez créé l’ingress le voila :

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  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: prometheus
spec:
  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-cert

Maintenant, allons voir dans le dashboard node-exporter Full de Grafana si nos nœuds sont présents. Oui, ils le sont.

grafana node export linux

Mots clés :

devops tutorials homelab

Si vous avez apprécié cet article de blog, vous pouvez m'encourager à produire plus de contenu en m'offrant un café sur  Ko-Fi. Vous pouvez aussi passer votre prochaine commande sur amazon, sans que cela ne vous coûte plus cher, via  ce lien . Vous pouvez aussi partager le lien sur twitter ou Linkedin via les boutons ci-dessous. Je vous remercie pour votre soutien.

Autres Articles


Commentaires: