Prometheus: Adicionar autenticação 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 realiza autenticação, o que significa que qualquer pessoa pode recuperar as métricas expostas. Para proteger o acesso, pode adicionar autenticação básica para um utilizador.

Gere uma palavra-passe usando os seguintes comandos:

password=`openssl rand -base64 32`
passwordHashed=`echo ${password} | htpasswd -inBC 10 "" | tr -d ':'`
echo "Palavra-passe clara a manter para o servidor Prometheus: ${password}"

Se não tiver o binário htpasswd, pode instalá-lo no Debian/Ubuntu usando apt-get install --no-install-recommends apache2-utils.

Mantenha a palavra-passe clara segura, pois irá precisar dela ao configurar o Prometheus.

Adicione as seguintes linhas ao ficheiro de configuração para adicionar um utilizador chamado "prometheus" com o hash da palavra-passe gerada:

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 se a autenticação está a funcionar corretamente:

  • Executar curl http://localhost:9100/metrics deve retornar "Unauthorized".
  • Executar curl -u prometheus:${password} http://localhost:9100/metrics deve retornar a lista de métricas.