Prometheus: Añadir autenticación a Prometheus Node Exporter

Esta documentación forma parte de la guía Recuperación de métricas desde Linux. Consulte la guía completa aquí: Cómo recuperar métricas de un servidor Linux en Prometheus usando Node Exporter.

👋 ¡Bienvenido a la documentación de Stackhero!

Stackhero ofrece una solución nube de Prometheus lista para usar que proporciona una serie de beneficios, incluyendo:

  • Alert Manager incluido para enviar alertas a Slack, Mattermost, PagerDuty, etc.
  • Servidor de correo electrónico dedicado para enviar alertas de correo electrónico ilimitadas.
  • Blackbox para sondear HTTP, ICMP, TCP, y más.
  • Configuración fácil con un editor de archivos de configuración en línea.
  • Actualizaciones sin esfuerzo con solo un clic.
  • Rendimiento óptimo y seguridad robusta gracias a una VM privada y dedicada.

Ahorre tiempo y simplifique su vida: solo toma 5 minutos probar la solución de alojamiento en la nube de Prometheus de Stackhero!

Por defecto, Node Exporter no realiza autenticación, lo que significa que cualquiera puede recuperar las métricas expuestas. Para asegurar el acceso, puede añadir autenticación básica para un usuario.

Genere una contraseña usando los siguientes comandos:

password=`openssl rand -base64 32`
passwordHashed=`echo ${password} | htpasswd -inBC 10 "" | tr -d ':'`
echo "Contraseña clara para guardar para el servidor Prometheus: ${password}"

Si no tiene el binario htpasswd, puede instalarlo en Debian/Ubuntu usando apt-get install --no-install-recommends apache2-utils.

Mantenga la contraseña clara segura ya que la necesitará al configurar Prometheus.

Añada las siguientes líneas al archivo de configuración para añadir un usuario llamado "prometheus" con el hash de la contraseña generada:

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

EOF

# Reiniciar Node Exporter
sudo systemctl restart node_exporter

Finalmente, verifique que la autenticación esté funcionando correctamente:

  • Ejecutar curl http://localhost:9100/metrics debería devolver "Unauthorized".
  • Ejecutar curl -u prometheus:${password} http://localhost:9100/metrics debería devolver la lista de métricas.