Prometheus: Dodaj szyfrowanie TLS do Prometheus Node Exporter

Ta dokumentacja jest częścią przewodnika Pobieranie metryk z Linuxa. Pełny przewodnik znajdziesz tutaj: Jak pobierać metryki serwera Linux w Prometheus za pomocą Node Exporter.

👋 Witamy w dokumentacji Stackhero!

Stackhero oferuje gotowe do użycia rozwiązanie Prometheus cloud, które zapewnia wiele korzyści, w tym:

  • Alert Manager w zestawie do wysyłania alertów do Slack, Mattermost, PagerDuty, itp.
  • Dedykowany serwer e-mail do wysyłania nieograniczonych alertów e-mail.
  • Blackbox do sondowania HTTP, ICMP, TCP i więcej.
  • Łatwa konfiguracja z edytorem plików konfiguracyjnych online.
  • Bezproblemowe aktualizacje za pomocą jednego kliknięcia.
  • Optymalna wydajność i solidne bezpieczeństwo dzięki prywatnej i dedykowanej VM.

Oszczędzaj czas i upraszczaj swoje życie: wystarczy 5 minut, aby wypróbować rozwiązanie Prometheus cloud hosting Stackhero!

Domyślnie Node Exporter nie szyfruje komunikacji. Oznacza to, że dane uwierzytelniające, w tym wcześniej zdefiniowane hasło, są przesyłane w postaci niezaszyfrowanej. Aby zabezpieczyć komunikację, można włączyć szyfrowanie TLS w następujący sposób.

Uruchom następujące polecenia, aby utworzyć certyfikat i klucz TLS:

# Utwórz certyfikat 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

Dodaj następujące linie do pliku konfiguracyjnego, aby dodać ustawienia TLS, a następnie ponownie uruchom 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

# Ponowne uruchomienie Prometheus Node Exporter
sudo systemctl restart node_exporter

Można sprawdzić, czy TLS jest aktywny, łącząc się przez HTTPS za pomocą następującego polecenia:

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

Zauważ, że ta metoda nie używa certyfikatu CA, więc trzeba przekazać opcję "-k" do cURL, aby pominąć weryfikację certyfikatu.