Установка Node Exporter с авторизацией и подключение к Prometheus в Centos 8
Node Exporter — это экспортер Prometheus для сбора данных о состоянии сервера с подключаемыми коллекторами метрик. Он позволяет измерять различные ресурсы машины, такие как использование памяти, диска и процессора. Написана на Go
Установка Node Exporter
Добавляем системного пользователя, от которого будет работать Node Exporter
1
$ sudo useradd -r -M -s /bin/false node_exporter
Скачиваем node_exporter-1.0.1
1
2
$ 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
, назначаем владельца
1
2
3
4
$ 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ 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
Добавляем сервис в автозагрузку, запускаем его, проверяем статус
1
2
3
$ sudo systemctl daemon-reload
$ sudo systemctl enable --now node_exporter
$ sudo systemctl status node_exporter
Проверяем порт 9100
1
$ sudo ss -pnltu | grep 9100
Открываем его наружу
1
2
$ sudo firewall-cmd --add-port=9100/tcp --permanent
$ sudo firewall-cmd --reload
Настройка авторизации
Устанавливаем утилиту httpd-tools
1
$ sudo dnf -y install httpd-tools
Генерируем пароль
1
2
3
$ htpasswd -nBC 10 "" | tr -d ':\n'
New password: password
Re-type new password: password
Создаем каталог, где будет лежать конфиг Node Exporter
1
$ sudo mkdir /opt/node_exporter
Создаем конфигурационный файл для Node Exporter
1
2
3
4
5
6
7
$ 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
Меняем владельца
1
$ sudo chown -R node_exporter:node_exporter /opt/node_exporter
Редактируем Systemd Unit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ 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
Перезапускаем сервис
1
2
3
$ sudo systemctl daemon-reload
$ sudo systemctl restart node_exporter
$ sudo systemctl status node_exporter
Переходим на сайт http://%your-ip%:9100/
. Должна появиться Basic Auth
Донастраиваем Prometheus
На сервере Prometheus добавляем параметры авторизации в конфиг Prometheus
1
2
3
4
5
6
7
8
9
10
11
$ 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
1
2
$ sudo systemctl restart prometheus
$ sudo systemctl status prometheus
Проверяем через браузер
1
http://localhost:9090/targets