Prometheus: Añadir cifrado TLS 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 cifra las comunicaciones. Esto significa que las credenciales, incluida la contraseña definida anteriormente, se transmiten en texto plano. Para asegurar las comunicaciones, puede habilitar el cifrado TLS de la siguiente manera.

Ejecute los siguientes comandos para crear un certificado y una clave TLS:

# Crear certificado TLS
cd /tmp
sudo openssl req -new -newkey rsa:2048 -days 3650 -nodes -x509 \
  -keyout /etc/prometheus_node_exporter/tlsCertificate.key \
  -out /etc/prometheus_node_exporter/tlsCertificate.crt \
  -subj "/CN=`hostname`" \
  -addext "subjectAltName = DNS:`hostname`"
sudo chmod 600 /etc/prometheus_node_exporter/*
sudo chown -R node_exporter:node_exporter /etc/prometheus_node_exporter

Añada las siguientes líneas al archivo de configuración para añadir los ajustes TLS y luego reinicie Node Exporter:

sudo cat << 'EOF' >> /etc/prometheus_node_exporter/configuration.yml
tls_server_config:
  cert_file: /etc/prometheus_node_exporter/tlsCertificate.crt
  key_file: /etc/prometheus_node_exporter/tlsCertificate.key

EOF

# Reiniciar Prometheus Node Exporter
sudo systemctl restart node_exporter

Puede verificar que TLS está activo conectándose vía HTTPS con el siguiente comando:

curl -k -u prometheus:${password} https://localhost:9100/metrics

Tenga en cuenta que este método no utiliza un certificado CA, por lo que necesita pasar la opción "-k" a cURL para omitir la verificación del certificado.