Prometheus: Adicionar encriptação TLS ao Prometheus Node Exporter

Esta documentação faz parte do guia Recuperar métricas de Linux. Consulte o guia completo aqui: Como recuperar métricas de servidores Linux no Prometheus usando Node Exporter.

👋 Bem-vindo à documentação da Stackhero!

A Stackhero oferece uma solução Prometheus cloud pronta a usar que proporciona uma série de benefícios, incluindo:

  • Alert Manager incluído para enviar alertas para Slack, Mattermost, PagerDuty, etc.
  • Servidor de email dedicado para enviar alertas de email ilimitados.
  • Blackbox para sondar HTTP, ICMP, TCP, e mais.
  • Configuração fácil com editor de ficheiros de configuração online.
  • Atualizações sem esforço com apenas um clique.
  • Desempenho ótimo e segurança robusta alimentados por uma VM privada e dedicada.

Poupe tempo e simplifique a sua vida: leva apenas 5 minutos para experimentar a solução de hospedagem cloud Prometheus da Stackhero!

Por padrão, o Node Exporter não encripta as comunicações. Isto significa que as credenciais, incluindo a palavra-passe definida anteriormente, são transmitidas em texto simples. Para proteger as comunicações, pode ativar a encriptação TLS da seguinte forma.

Execute os seguintes comandos para criar um certificado e uma chave TLS:

# Criar 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

Adicione as seguintes linhas ao ficheiro de configuração para adicionar as definições TLS e depois reinicie o 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

Pode verificar que o TLS está ativo conectando-se via HTTPS com o seguinte comando:

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

Note que este método não usa um certificado CA, por isso precisa passar a opção "-k" para o cURL para ignorar a verificação do certificado.