Prometheus: Ajouter une authentification à Prometheus Node Exporter

Cette documentation fait partie du guide Récupérer des métriques depuis Linux. Consultez le guide complet ici : Comment récupérer les métriques d'un serveur Linux dans Prometheus avec Node Exporter.

👋 Bienvenue sur la documentation de Stackhero !

Stackhero propose une solution Prometheus cloud prête à l'emploi qui offre de nombreux avantages, notamment :

  • Alert Manager inclus pour envoyer des alertes vers Slack, Mattermost, PagerDuty, etc.
  • Serveur email dédié pour envoyer un nombre illimité d'alertes par e-mail.
  • Blackbox pour sonder HTTP, ICMP, TCP et bien plus.
  • Configuration simple grâce à l'éditeur de fichier de configuration en ligne.
  • Mises à jour faciles en un clic.
  • Performance optimale et sécurité renforcée grâce à une VM privée et dédiée.

Gagnez du temps et simplifiez-vous la vie : il suffit de 5 minutes pour essayer la solution Prometheus cloud hosting de Stackhero !

Par défaut, Node Exporter ne propose aucune authentification, ce qui signifie que n'importe qui peut accéder aux métriques exposées. Pour sécuriser l'accès, vous pouvez ajouter une authentification basique pour un utilisateur.

Générez un mot de passe avec les commandes suivantes :

password=`openssl rand -base64 32`
passwordHashed=`echo ${password} | htpasswd -inBC 10 "" | tr -d ':'`
echo "Clear password to keep for Prometheus server: ${password}"

Si vous n'avez pas le binaire htpasswd, vous pouvez l'installer sur Debian/Ubuntu avec apt-get install --no-install-recommends apache2-utils.

Conservez le mot de passe en clair précieusement, car il sera nécessaire lors de la configuration de Prometheus.

Ajoutez les lignes suivantes au fichier de configuration pour créer un utilisateur "prometheus" avec le hash du mot de passe généré :

sudo cat << EOF >> /etc/prometheus_node_exporter/configuration.yml
basic_auth_users:
  prometheus: ${passwordHashed}

EOF

# Redémarrez Node Exporter
sudo systemctl restart node_exporter

Enfin, vérifiez que l'authentification fonctionne correctement :

  • L'exécution de curl http://localhost:9100/metrics doit retourner "Unauthorized".
  • L'exécution de curl -u prometheus:${password} http://localhost:9100/metrics doit retourner la liste des métriques.