Мониторинг серверов с помощью Node Exporter, Prometheus, Grafana

Надёжный мониторинг серверов — важная часть инфраструктуры.
В этом гайде рассмотрим, как настроить популярную связку
Node Exporter → Prometheus → Grafana для отслеживания метрик сервера.
Установка будет на сервере с Debian 12
Установка Node Exporter
Node Exporter собирает метрики системы: загрузку CPU, память, сеть, диски и многое другое. Скачиваем последний на данный момент релиз
1wget https://github.com/prometheus/node_exporter/releases/download/v1.9.1/node_exporter-1.9.1.linux-arm64.tar.gzРаспаковка архива:
1tar -xvf node_exporter-1.9.1.linux-arm64.tar.gzПереместим бинарный файл:
1sudo mv node_exporter/node_exporter /usr/local/sbin/Создаём systemd-сервис:
1vim /etc/systemd/system/node-exporter.service 1[Unit]
2Description=Node Exporter
3After=network.target
4
5[Service]
6ExecStart=/usr/local/sbin/node_exporter
7Restart=always
8User=nobody
9Group=nogroup
10
11[Install]
12WantedBy=multi-user.targetЗапуск и проверка:
1systemctl daemon-reload
2systemctl enable --now node-exporter
3systemctl status node-exporter.serviceNode Exporter теперь доступен на порту 9100.
Установка Prometheus
1apt update
2apt install prometheusПроверим статус:
1systemctl is-enabled prometheus
2systemctl status prometheusНастройка конфигурации Prometheus
Файл: /etc/prometheus/prometheus.yml
Добавим job для Node Exporter:
1 - job_name: node
2 static_configs:
3 - targets: ['localhost:9100']Перезапуск:
1systemctl restart prometheus.serviceУстановка Grafana
1apt install software-properties-common
2mkdir -p /etc/apt/keyrings
3curl -fsSL https://packages.grafana.com/gpg.key | gpg --dearmor | tee /etc/apt/keyrings/grafana.gpg > /dev/nullДобавляем репозиторий:
1echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://packages.grafana.com/oss/deb stable main" | tee /etc/apt/sources.list.d/grafana.list > /dev/null
2apt update
3apt install grafanaЗапускаем и включаем автозапуск:
1systemctl daemon-reload
2systemctl enable --now grafana-serverНастройка доступа через Nginx + HTTPS
1apt install nginxКонфигурация Nginx:
1vim /etc/nginx/sites-available/grafana.conf 1server {
2 listen 443 ssl http2;
3 server_name grafana.example.com;
4
5 ssl_certificate /etc/letsencrypt/live/grafana.example.com/fullchain.pem;
6 ssl_certificate_key /etc/letsencrypt/live/grafana.example.com/privkey.pem;
7
8 ssl_protocols TLSv1.2 TLSv1.3;
9 ssl_prefer_server_ciphers on;
10 ssl_ciphers HIGH:!aNULL:!MD5;
11
12 add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
13 add_header X-Content-Type-Options nosniff;
14 add_header X-Frame-Options DENY;
15 add_header X-XSS-Protection "1; mode=block";
16
17 location / {
18 proxy_pass http://localhost:3000/;
19 proxy_set_header Host $host;
20 proxy_set_header X-Real-IP $remote_addr;
21 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
22 proxy_set_header X-Forwarded-Proto $scheme;
23 proxy_http_version 1.1;
24 proxy_set_header Connection "";
25 proxy_buffering off;
26 }
27}
28
29server {
30 listen 80;
31 server_name grafana.example.com;
32
33 location / {
34 return 301 https://$host$request_uri;
35 }
36}Создание сертификата:
1certbot certonly --manual --preferred-challenges dns -d grafana.example.comАктивация конфига:
1ln -s /etc/nginx/sites-available/grafana.conf /etc/nginx/sites-enabled/grafana.conf
2nginx -t && nginx -s reloadЗапуск Grafana
Открываем в браузере: https://grafana.example.com
Дефолтные учётные данные:
- Username: admin
- Password: admin
После входа необходимо сменить пароль на что то более надежное.
Подключение Prometheus в Grafana
Переходим в:
Connections → Data Sources → Add data source → Выбираем Prometheus

Указываем http://localhost:9090 или IP сервера. Нажимаем Test для проверки подключения.

Рекомендованные дашборды
| ID | Название | Описание |
|---|---|---|
| 1860 | Node Exporter Full | Полный обзор метрик сервера |
| 9276 | Node Exporter Quickstart & CPU Focus | Лёгкий старт, акцент на CPU |
| 11074 | Node Exporter Overview | Компактный и чистый интерфейс |
Что мы получаем
- Загрузка CPU по ядрам
- Использование памяти
- Использование файловой системы
- Сетевой трафик
- Средняя нагрузка (load average)
- Температура CPU (если доступно)
Теперь вы можете мониторить свой сервер в реальном времени и реагировать на любые отклонения ещё до того, как они станут проблемой.