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 w pełni zarządzaną platformę Prometheus cloud, zaprojektowaną z myślą o niezawodności i prostocie:

  • Alert Manager jest wbudowany, dzięki czemu można przekierowywać alerty bezpośrednio do Slack, Mattermost, PagerDuty oraz innych popularnych narzędzi.
  • Dedykowany serwer e-mail umożliwia wysyłanie nieograniczonej liczby powiadomień e-mail bez dodatkowej konfiguracji.
  • Blackbox jest dostępny, co pozwala na sondowanie protokołów takich jak HTTP, ICMP, TCP i innych, zapewniając kompleksowy monitoring.
  • Szybka konfiguracja instancji dzięki edytorowi plików konfiguracyjnych online – nie trzeba ręcznie zarządzać plikami YAML.
  • Aktualizacje można zastosować jednym kliknięciem. Stackhero zajmuje się całym procesem aktualizacji, minimalizując przestoje i konieczność ręcznej interwencji.
  • Wysoka wydajność i silne zabezpieczenia są zapewnione dzięki prywatnej, dedykowanej infrastrukturze.

Uruchom usługę w około 5 minut. Stackhero zajmuje się konfiguracją, abyś mógł skupić się na monitorowaniu, a nie na utrzymaniu. Wypróbuj Prometheus cloud hosting na Stackhero i usprawnij swoje procesy monitorowania oraz powiadamiania.

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.