Установка node_exporter для мониторинга с Prometheus

по сравнению с
Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (16)

просмотр истории страницы
{toc}

h1. Для чего нужен node_exporter

На текущий момент связка node_exporter + Prometheus + Grafana - одно из наиболее популярных решений для мониторинга инфраструктуры.

h1. Будет ли node_exporter работать на CentOS 6.10?

Мы проверили релиз node_exporter 1.3.1 и он работает исправно.

Единственная проблема - ошибка мониторинга conntrack, сервис пишет, что не смог получить все необходимые поля:
{panel}
ts=2022-05-23T14:52:51.311Z caller=collector.go:169 level=error msg="collector failed" name=conntrack duration_seconds=8.9431e-05 err="failed to retrieve conntrack stats: failed to read conntrack stats from \"/proc/net/stat/nf_conntrack\": invalid conntrackstat entry, missing fields"
{panel}

При этом все метрики conntrack передаются корректно.

Если для Вас постоянные сообщения в логе не критичны, уберите из файла */etc/sysconfig/node_exporter* строчку "--no-collector.conntrack" и перезапустите сервис.

h1. Установка

{code}
cd /tmp
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz https://docs.carbonsoft.ru/download/attachments/186747102/node_exporter-1.3.1.linux-amd64.tar.gz
tar xvzf node_exporter-1.3.1.linux-amd64.tar.gz
mkdir -p /opt/node_exporter/
h2. Скачайте конфигурационные файлы и настройте скрипты запуска

Добавьте скрипт настройки правил фаервола, чтобы разрешить доступ на порт node_exporter

{code:title=/app/base/cfg/hooks}
#!/bin/bash

if [ "$1" = "/etc/init.d/firewall" -a "$2" = start ]; then
# Порт node_exporter
while iptables -D INPUT -i eth0 -p tcp -s 0.0.0.0/0 --dport 9100 -m state --state NEW -j ACCEPT 2>/dev/null; do :; done
iptables -I INPUT -p tcp -s 0.0.0.0/0 --dport 9100 -m state --state NEW -j ACCEPT
fi
exit 0
# Скачайте рахив с конфигурационными файлами и скриптами, распакуйте его:
{code}

Скачайте скрипт запуска node_exporter и файл с параметрами запуска:
cd /tmp
wget --no-check-certificate https://docs.carbonsoft.ru/download/attachments/186747102/node_exporter_configs.tar.gz
tar xvzf node_exporter_configs.tar.gz
chown root:root -R node_exporter_configs/
{code}
wget
wget
# Переместите файлы в нужные папки и сделайте:
{code}

Сделайте скрипт запуска исполняемым:
mv node_exporter_configs/node_exporter.init /etc/init.d/node_exporter
mv node_exporter_configs/node_exporter.sysconfig /etc/sysconfig/node_exporter
mv node_exporter_configs/os-release /etc/os-release
{code}
chmode a+x /etc/init.d/node_exporter
# Если Вы не настраивали [хуки|CarbonBilling:Дополнительные настройки. hooks. Хуки. Свои правила в firewall] в base, выполните эту команду:
{code}
mv node_exporter_configs/node_exporter.hook /app/base/cfg/hooks
{code}
Если настраивали, то добавьте содержимое файла *node_exporter_configs/node_exporter.hook* к файлу */app/base/cfg/hooks* вручную. \\ \\
# Последний шаг - сделайте скрипты исполняемыми:
{code}
chmod a+x /etc/init.d/node_exporter
chmod a+x /app/base/cfg/hooks
{code}


h2. Настройте автозапуск сервиса при загрузке системы и запустите его

node_cpu_seconds_total{cpu="1",mode="user"} 177633.25
{code}

h1. Что дальше?

Интегрируйте node_exporter с Prometheus и Grafana и настройте дешборды.
{info}Prometheus и Grafana нужно устанавливать на стороннем сервере. На сервере с Billing 5 их устанавливать не следует.{info}

Можно [взять уже готовые дешборды|https://grafana.com/docs/grafana/latest/dashboards/export-import/#import-dashboard], например [такой|https://grafana.com/grafana/dashboards/1860]. Получится что-то вроде этого:


!billing5_grafana.png|border=0,width=1000!