Prometheus: Instalacja Prometheus Node Exporter na serwerze Linux

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.

Można pobrać Node Exporter z jego strony wydań GitHub. Jest on dystrybuowany jako binarka, która działa bezpośrednio na systemie. Ponieważ jest zaprojektowany do ciągłego działania, zaleca się skonfigurowanie go do automatycznego uruchamiania przy starcie serwera.

Domyślnie Node Exporter otwiera port 9100 dla świata bez uwierzytelniania i szyfrowania. Zdecydowanie zaleca się dodanie zarówno uwierzytelniania, jak i szyfrowania TLS (patrz poniżej) oraz skonfigurowanie zapory, aby ograniczyć dostęp do portu 9100, tak aby tylko serwer Prometheus lub inne autoryzowane adresy IP mogły się połączyć.

Można postępować zgodnie z tymi krokami na Ubuntu:

# Przejdź do https://github.com/prometheus/node_exporter/releases, aby uzyskać najnowszy numer wersji.
node_exporter_version="1.2.0"
node_exporter_release="linux-amd64"

# Pobierz i zainstaluj node_exporter
cd /tmp
wget https://github.com/prometheus/node_exporter/releases/download/v${node_exporter_version}/node_exporter-${node_exporter_version}.${node_exporter_release}.tar.gz
tar xvfa node_exporter-${node_exporter_version}.${node_exporter_release}.tar.gz
sudo mv node_exporter-${node_exporter_version}.${node_exporter_release}/node_exporter /usr/local/bin/
rm -rf node_exporter-${node_exporter_version}.${node_exporter_release} node_exporter-${node_exporter_version}.${node_exporter_release}.tar.gz

# Utwórz użytkownika "node_exporter"
sudo useradd -rs /bin/false node_exporter

# Utwórz usługę systemd, aby automatycznie uruchamiać node_exporter przy starcie
sudo bash -c 'cat << EOF > /etc/systemd/system/node_exporter.service
[Unit]
Description=Node Exporter
After=network.target

[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter --web.config=/etc/prometheus_node_exporter/configuration.yml

[Install]
WantedBy=multi-user.target
EOF'

# Utwórz katalog i plik konfiguracyjny
sudo mkdir -p /etc/prometheus_node_exporter/
sudo touch /etc/prometheus_node_exporter/configuration.yml
sudo chmod 700 /etc/prometheus_node_exporter
sudo chmod 600 /etc/prometheus_node_exporter/*
sudo chown -R node_exporter:node_exporter /etc/prometheus_node_exporter

sudo systemctl daemon-reload
sudo systemctl enable node_exporter

# Uruchom demona node_exporter i sprawdź jego status
sudo systemctl start node_exporter
sudo systemctl status node_exporter

W tym momencie binarka node_exporter powinna działać na serwerze. Aby potwierdzić, że działa, można się z nią połączyć i sprawdzić, czy zwraca metryki:

curl http://localhost:9100/metrics

Node Exporter otwiera port 9100 dla sieci publicznej. Oznacza to, że każdy może się połączyć i pobrać metryki serwera! Co najmniej, należy dodać uwierzytelnianie i szyfrowanie TLS (patrz poniżej) i zdecydowanie zaleca się skonfigurowanie zapory, aby blokować żądania do portu 9100 z adresów IP innych niż serwer Prometheus.

Proces instalacji Node Exporter na Debian jest identyczny z metodą Ubuntu opisaną powyżej. Wystarczy postępować zgodnie z tymi samymi instrukcjami.

Kroki instalacji Node Exporter zależą od używanego systemu. Chociaż szczegółowa dokumentacja dla każdej platformy nie jest dostarczona, podstawowa procedura polega na pobraniu binarki odpowiadającej systemowi i skonfigurowaniu jej do uruchamiania przy starcie.