Найти в Дзене
Linux Blog

Установка и настройка мониторинга grafana, prometheus, node-exporter на CentOS

В этой статье подробно рассмотрено, как установить и настроить стек мониторинга на базе Prometheus, Node Exporter и Grafana на CentOS 8. Мы пройдём весь путь: от установки необходимых пакетов до создания первого дашборда в Grafana. Пошаговые инструкции, примеры конфигураций и рекомендации по безопасности помогут вам быстро запустить мониторинг. После установки не забудьте закрыть все ненужные порты с помощью firewalld или iptables. Node Exporter собирает метрики системы и предоставляет их в формате, понятном Prometheus. Для установки на время отключим Firewalld: systemctl stop firewalld cd /opt wget https://github.com/prometheus/node_exporter/releases/download/v1.9.1/node_exporter-1.9.1.linux-amd64.tar.gz tar -xzf node_exporter-1.9.1.linux-amd64.tar.gz mv node_exporter-1.9.1.linux-amd64/* /usr/local/bin/ useradd --no-create-home --shell /bin/false node_exporter
cat <<EOF >/etc/systemd/system/node_exporter.service
[Unit]
Description=Node Exporter
After=network.target
[Service]
User=n
Оглавление

Введение

В этой статье подробно рассмотрено, как установить и настроить стек мониторинга на базе Prometheus, Node Exporter и Grafana на CentOS 8. Мы пройдём весь путь: от установки необходимых пакетов до создания первого дашборда в Grafana. Пошаговые инструкции, примеры конфигураций и рекомендации по безопасности помогут вам быстро запустить мониторинг.

Предварительные требования

  1. Сервер CentOS 8.
  2. Открытые порты:
    9100 для Node Exporter
    9090 для Prometheus
    3000 для Grafana
После установки не забудьте закрыть все ненужные порты с помощью firewalld или iptables.

Шаг 1. Установка Node Exporter

Node Exporter собирает метрики системы и предоставляет их в формате, понятном Prometheus.

Для установки на время отключим Firewalld:

systemctl stop firewalld

  • Перейдите в каталог загрузки:
cd /opt
  • Скачайте последнюю версию Node Exporter:
wget https://github.com/prometheus/node_exporter/releases/download/v1.9.1/node_exporter-1.9.1.linux-amd64.tar.gz
  • Распакуйте архив и переместите бинарник:
tar -xzf node_exporter-1.9.1.linux-amd64.tar.gz
mv node_exporter-1.9.1.linux-amd64/* /usr/local/bin/

  • Создайте пользователя и демон автозапуска:
useradd --no-create-home --shell /bin/false node_exporter
cat <<EOF >/etc/systemd/system/node_exporter.service
[Unit]
Description=Node Exporter
After=network.target

[Service]
User=node_exporter
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=default.target
EOF

  • Запустите и включите сервис:
systemctl daemon-reload
systemctl start node_exporter
systemctl enable node_exporter

  • Проверьте статус и метрики:
systemctl status node_exporter

Откройте браузер и введите http://<ваш_сервер>:9100

-2

Шаг 2. Установка Prometheus

Prometheus опрашивает Node Exporter и хранит метрики в базе данных.

  • Скачайте Prometheus:
cd /opt

wget
https://github.com/prometheus/prometheus/releases/download/v2.53.4/prometheus-2.53.4.linux-amd64.tar.gz

  • Распакуйте и переместите:
tar -xzf prometheus-2.53.4.linux-amd64.tar.gz
mkdir /usr/local/prometheus
mv prometheus-2.53.4.linux-amd64/* /usr/local/prometheus
  • Создайте пользователя и директории:
useradd --no-create-home --shell /bin/false prometheus
mkdir /etc/prometheus
mkdir /var/lib/prometheus
chown prometheus:prometheus /etc/prometheus
chown prometheus:prometheus /var/lib/prometheus
  • Перенесите конфиги и бинарники:
cp /usr/local/prometheus/prometheus /usr/local/prometheus/promtool /usr/local/bin/
cp -r /usr/local/prometheus/consoles /usr/local/prometheus/console_libraries /etc/prometheus/
chown prometheus:prometheus /usr/local/bin/prometheus /usr/local/bin/promtool
chown -R prometheus:prometheus /etc/prometheus/consoles /etc/prometheus/console_libraries

  • Настройте /etc/prometheus/prometheus.yml:
global:
scrape_interval: 15s

scrape_configs:
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']
-3

  • Создайте systemd-сервис:
cat <<EOF >/etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus Monitoring
After=network.target

[Service]
User=prometheus
ExecStart=/usr/local/bin/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/var/lib/prometheus

[Install]
WantedBy=multi-user.target
EOF

  • Запустите Prometheus:
systemctl daemon-reload
systemctl start prometheus
systemctl enable prometheus

  • Проверьте работу:
systemctl status prometheus

Откройте http://<ваш_сервер>:9090

-4

Шаг 3. Установка Grafana

Grafana визуализирует данные из Prometheus.

Так как сейчас из России Grafana загрузить невозможно, для загрузки нам потребуется VPN

-5

  • Подключаем VPN и скачиваем Grafana c официального сайта https://grafana.com/grafana/download
  • После загрузки через команду scp на windows или с помощью MobaXterm переносим дистрибутив на машину

Устанавливаем дистрибутив на машине:

yum localinstall grafana-enterprise-12.0.0-1.x86_64.rpm
  • Запустите и включите:

systemctl start grafana-server.service
systemctl enable grafana-server.service

  • Проверьте доступ:


Перейдите по адресу http://<ваш_сервер>:3000
Логин по умолчанию: admin, пароль: admin (меняйте при первом входе)

-6
-7

Шаг 4. Настройка Grafana

  • Добавление источника данных Prometheus:
    В Grafana:
    Configuration → Data Sources → Add data source → Prometheus.
    URL: http://localhost:9090
-8

Нажмите Save & Test.

  • Импорт дашборда Node Exporter:
    Перейдите в
    Create → Import.
    Вставьте ID дашборда 1860 (официальный Node Exporter Full).
    Выберите созданный источник данных и нажмите
    Import.
-9

Шаг 5. Firewall и безопасность

  • Включаем обратно firewalld
systemctl start firewalld

  • Разрешить порты в firewalld
firewall-cmd --permanent --add-port=9100/tcp
firewall-cmd --permanent --add-port=9090/tcp
firewall-cmd --permanent --add-port=3000/tcp
firewall-cmd --reload

Заключение

Вы развернули стек мониторинга на CentOS 8.

Дальнейшие шаги:

  • Настройка алертов в Prometheus (Alertmanager).
  • Создание кастомных дашбордов в Grafana.
  • Мониторинг кластеров Kubernetes и других сервисов.