Как установить и настроить Grafana и Prometheus на VPS
Prometheus и Grafana — золотой стандарт современного мониторинга. Prometheus собирает и хранит метрики в своей быстрой базе временных рядов, а Grafana превращает их в живые дашборды, на которые приятно смотреть и по которым сразу видно проблему. Связка гибкая, бесплатная и масштабируется от одного VPS до огромных кластеров. Разберём установку с нуля: Prometheus, экспортёр метрик сервера, Grafana и первый дашборд.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Как устроена связка и зачем она нужна
Важно понять разделение ролей, иначе настройка кажется запутанной. Prometheus — это движок: он по расписанию ходит к «экспортёрам» (маленьким программам, которые отдают метрики в его формате), забирает цифры и складывает в свою базу временных рядов. Grafana — это витрина: она не собирает ничего сама, а подключается к Prometheus как к источнику данных и рисует графики, таблицы и панели.
Такое разделение даёт гибкость. Один Prometheus может собирать метрики с десятков серверов, баз, приложений и очередей — под каждый есть готовый экспортёр. Grafana поверх этого строит любые дашборды: от загрузки CPU до бизнес-метрик. А система алертов бьёт тревогу, когда значение выходит за порог.
Честно про порог входа: связка требует чуть больше понимания, чем «поставил и работает». Зато в награду вы получаете самый мощный и распространённый стек мониторинга, навык работы с которым востребован везде. Для одного сервера это может быть избыточно, но для инфраструктуры — стандарт де-факто.
Требования к серверу и локация
Сам Prometheus и Grafana нетребовательны: для мониторинга небольшой инфраструктуры хватает 2 ядер, 2 ГБ RAM и 20–40 ГБ диска. Диск важнее всего — Prometheus хранит историю метрик, и чем длиннее период хранения и чаще опрос, тем больше места нужно. Под серьёзную нагрузку берите SSD.
Локацию сервера мониторинга держите ближе к наблюдаемым узлам: меньше пинг — точнее метрики и меньше ложных таймаутов. Для российской инфраструктуры берите RU-локацию, для зарубежной — US или UK. MAATRIX даёт VPS в нужной локации с оплатой картами российских банков, СБП, криптовалютой или токеном MAAT — иностранная карта не нужна. Начните с обновления Ubuntu 24.04:
apt update && apt upgrade -y
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS под мониторингУстановка Prometheus
Создайте отдельного пользователя и каталоги, затем скачайте свежий релиз Prometheus:
useradd --no-create-home --shell /bin/false prometheus
mkdir /etc/prometheus /var/lib/prometheus
cd /tmp
wget https://github.com/prometheus/prometheus/releases/download/v2.53.0/prometheus-2.53.0.linux-amd64.tar.gz
tar xzf prometheus-2.53.0.linux-amd64.tar.gz
cd prometheus-2.53.0.linux-amd64
cp prometheus promtool /usr/local/bin/
cp -r consoles console_libraries /etc/prometheus/
chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus /usr/local/bin/prometheus
Создайте конфиг /etc/prometheus/prometheus.yml — он описывает, что и как часто опрашивать:
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
Здесь scrape_interval: 15s задаёт частоту сбора, а два job'а описывают источники: сам Prometheus (порт 9090) и экспортёр метрик сервера (порт 9100), который поставим следующим. Интервал в 15 секунд — разумный компромисс: чаще опрашивать смысла обычно нет, а реже — и вы рискуете пропустить короткие всплески. Каждый job_name — это логическая группа целей одного типа; когда серверов станет много, вы будете добавлять их адреса в список targets соответствующего job'а, а не плодить конфиги. Модель Prometheus называется pull: не узлы шлют данные в центр, а центр сам ходит и забирает — это упрощает масштабирование и делает очевидным, какой узел «отвалился», ведь неответивший target сразу виден.
Экспортёр метрик и systemd-юниты
Node Exporter отдаёт Prometheus метрики операционной системы: CPU, память, диск, сеть. Установите его:
cd /tmp
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.0/node_exporter-1.8.0.linux-amd64.tar.gz
tar xzf node_exporter-1.8.0.linux-amd64.tar.gz
cp node_exporter-1.8.0.linux-amd64/node_exporter /usr/local/bin/
useradd --no-create-home --shell /bin/false node_exporter
Чтобы обе службы поднимались автоматически, создайте systemd-юниты. Для Prometheus — файл /etc/systemd/system/prometheus.service:
[Unit]
Description=Prometheus
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
Аналогичный юнит сделайте для node_exporter (пользователь node_exporter, ExecStart=/usr/local/bin/node_exporter). Запустите обе службы:
systemctl daemon-reload
systemctl enable --now prometheus node_exporter
Отдельные системные пользователи prometheus и node_exporter без домашнего каталога и оболочки — это не формальность, а базовая безопасность: если процесс мониторинга скомпрометируют, у злоумышленника не будет прав обычного пользователя и возможности войти в систему. Флаг enable --now делает сразу две вещи — включает автозапуск при загрузке и стартует службу немедленно, так что после перезагрузки VPS мониторинг поднимется сам. Проверить, что оба процесса живы и отдают метрики, можно сразу: curl localhost:9100/metrics вернёт длинный список метрик сервера, а страница http://IP:9090/targets покажет оба источника в статусе UP.
Установка Grafana
Подключите официальный репозиторий Grafana и поставьте её:
apt install -y apt-transport-https software-properties-common
wget -q -O /usr/share/keyrings/grafana.key https://apt.grafana.com/gpg.key
echo "deb [signed-by=/usr/share/keyrings/grafana.key] https://apt.grafana.com stable main" > /etc/apt/sources.list.d/grafana.list
apt update && apt install -y grafana
systemctl enable --now grafana-server
Grafana поднимется на порту 3000. Откройте порты в firewall, не забыв SSH:
ufw allow 22/tcp
ufw allow 3000/tcp
ufw enable
Порт 9090 (Prometheus) и 9100 (node_exporter) наружу открывать не нужно — они опрашиваются локально. Это заодно повышает безопасность: наружу торчит только Grafana, а движок сбора и экспортёры остаются недоступны из интернета. Такой принцип «минимум открытых портов» стоит держать в голове всегда: чем меньше сервисов видно снаружи, тем меньше поверхность атаки. Для продакшена Grafana тоже стоит спрятать за reverse-proxy с HTTPS, но для старта и порт 3000 с надёжным паролем годится.
Первый вход, источник данных и дашборд
Откройте http://IP_СЕРВЕРА:3000. Логин и пароль по умолчанию — admin/admin, Grafana сразу попросит сменить пароль. Обязательно смените: открытая в интернет панель со стандартным паролем — дыра в безопасности.
Теперь подключите Prometheus как источник данных: Connections → Data sources → Add data source → Prometheus, в поле URL укажите http://localhost:9090, сохраните. Grafana проверит связь. Дальше не нужно рисовать дашборд с нуля — импортируйте готовый: Dashboards → Import и введите ID 1860 (популярный дашборд Node Exporter Full). Grafana подтянет десятки панелей — загрузка CPU, память, диск, сеть — и вы сразу увидите состояние сервера в реальном времени.
Для алертов настройте правила в разделе Alerting: задайте условие (например, свободного места меньше 10%) и канал уведомления — почта, Telegram, вебхук. Связка Prometheus + Grafana + алерты и есть полноценный мониторинг, который предупреждает о проблемах заранее.
Чтобы развернуть этот стек без возни с оплатой, нужен VPS в нужной локации. У MAATRIX сервер под мониторинг готов за пару минут, с оплатой картой РФ, СБП или криптой — иностранная карта не требуется.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS под мониторингОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Чем отличаются Prometheus и Grafana?
Prometheus собирает и хранит метрики, Grafana их визуализирует. Это разные инструменты в одной связке: Prometheus — движок сбора, Grafana — витрина с дашбордами поверх него.
Нужен ли node_exporter?
Да, если хотите видеть метрики самого сервера (CPU, память, диск). Prometheus сам ОС не мониторит — он забирает данные у экспортёров, а node_exporter отдаёт метрики Linux.
Какой VPS нужен под связку?
Для небольшой инфраструктуры хватает 2 ядер, 2 ГБ RAM и 20–40 ГБ диска под историю метрик. Главное — заложить место на диске, оно расходуется временными рядами.
Как оплатить VPS под мониторинг из России?
Картой РФ, по СБП, криптовалютой или токеном MAAT. Иностранная карта не нужна, сервер поднимается за пару минут.
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.