Site icon IT Draft

Установка Node Exporter с авторизацией и подключение к Prometheus в Centos 8

Установка Node Exporter с авторизацией и подключение к Prometheus в Centos 8

Node Exporter + Basic Auth

Node Exporter — это экспортер Prometheus для сбора данных о состоянии сервера с подключаемыми коллекторами метрик. Он позволяет измерять различные ресурсы машины, такие как использование памяти, диска и процессора. Написана на Go

Установка Node Exporter

Добавляем системного пользователя, от которого будет работать Node Exporter

$ sudo useradd -r -M -s /bin/false node_exporter

Скачиваем node_exporter-1.0.1

$ wget https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz -P /tmp
$ cd /tmp

Распаковываем, переносим в каталог /usr/local/bin, назначаем владельца

$ tar -zxpvf node_exporter-1.0.1.linux-amd64.tar.gz
$ cd node_exporter-1.0.1.linux-amd64
$ sudo cp node_exporter /usr/local/bin
$ sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter

Создаем Systemd Unit

Selectel — ведущий провайдер облачной инфраструктуры и услуг дата-центров

Компания занимает лидирующие позиции на рынке на рынке выделенных серверов и приватных облаков, и входит в топ-3 крупнейших операторов дата-центров в России.


$ sudo nano /etc/systemd/system/node_exporter.service
[Unit]
Description=Prometheus Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target

Добавляем сервис в автозагрузку, запускаем его, проверяем статус

$ sudo systemctl daemon-reload
$ sudo systemctl enable --now node_exporter
$ sudo systemctl status node_exporter

Проверяем порт 9100

$ sudo ss -pnltu | grep 9100

Открываем его наружу

$ sudo firewall-cmd --add-port=9100/tcp  --permanent
$ sudo firewall-cmd --reload

Настройка авторизации

Устанавливаем утилиту httpd-tools

$ sudo dnf -y install httpd-tools

Генерируем пароль

$ htpasswd -nBC 10 "" | tr -d ':\n'
New password: password
Re-type new password: password

Создаем каталог, где будет лежать конфиг node_exporter

$ sudo mkdir /opt/node_exporter

Создаем конфигурационный файл для Node Exporter

$ sudo nano /opt/node_exporter/web.yml
#Если нужно https
#tls_server_config:
#  cert_file: node_exporter.crt
#  key_file: node_exporter.key
basic_auth_users:
  myuser: $2y$10$ZNpUythMY9kLqsldfkjsljfdlskjdflksdjf527W8kBkHPT4Rkl9C

Меняем владельца

$ sudo chown -R node_exporter:node_exporter /opt/node_exporter

Редактируем Systemd Unit

$ sudo nano /etc/systemd/system/node_exporter.service
[Unit]
Description=Prometheus Node Exporter
Wants=network-online.target
After=network-online.target

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

[Install]
WantedBy=multi-user.target

Перезапускаем сервис

$ sudo systemctl daemon-reload
$ sudo systemctl restart node_exporter
$ sudo systemctl status node_exporter

Переходим на сайт http://%your-ip%:9100/. Должна появиться Basic Auth

Донастраиваем Prometheus

На сервере Prometheus добавляем параметры авторизации в конфиг Prometheus

$ sudo nano /etc/prometheus/prometheus.yml
[…]
  - job_name: 'node'
    basic_auth:
      username: myuser
      password: password
#    scheme: https
#    tls_config:
#      ca_file: node_exporter.crt
    static_configs:
    - targets: ['localhost:9100'] 

где вместо localhost надо указать ip-адрес сервера, куда мы ставили node exporter

Перезапускаем Prometheus

$ sudo systemctl restart prometheus
$ sudo systemctl status prometheus

Проверяем через браузер

http://localhost:9090/targets
Exit mobile version