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 plataforma totalmente gestionada de Prometheus en la nube diseñada para ofrecer fiabilidad y simplicidad:

  • Alert Manager está integrado, lo que le permite enviar alertas directamente a Slack, Mattermost, PagerDuty y otros destinos populares.
  • Un servidor de correo electrónico dedicado le permite enviar alertas ilimitadas por email sin necesidad de configuración adicional.
  • Blackbox está incluido, permitiéndole monitorizar HTTP, ICMP, TCP y otros protocolos para una supervisión completa.
  • Configure su instancia rápidamente utilizando el editor online de archivos de configuración. No es necesario gestionar archivos YAML manualmente.
  • Aplique actualizaciones con un solo clic. Stackhero se encarga del proceso de actualización por usted, minimizando el tiempo de inactividad y la intervención manual.
  • Alto rendimiento y máxima seguridad integrados, gracias a su propia infraestructura privada y dedicada.

Ponga todo en marcha en unos 5 minutos. Stackhero se encarga de la configuración para que pueda centrarse en la monitorización, no en el mantenimiento. Pruebe el hosting de Prometheus en la nube de Stackhero para optimizar sus flujos de trabajo de monitorización y alertas.

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.