· 15 мин чтения

Netdata: real-time мониторинг серверов за 10 минут

Netdata: real-time мониторинг серверов за 10 минут

Семёнов Евгений Сергеевич, директор АйТи Фреш. Когда клиенту надо быстро увидеть, что происходит с сервером прямо сейчас, я ставлю Netdata. Одна команда — и через 30 секунд на экране красивый дашборд с сотнями метрик в реальном времени. Я всегда использую его на этапе инцидента и диагностики, пока Zabbix или Prometheus только разгоняются. В этой статье — вся моя практика по Netdata: от первой установки до кластера на 120+ узлов.

Почему Netdata, а не традиционные инструменты

Zabbix, Prometheus, Nagios — у каждого своё место. Но когда нужен именно real-time drill-down с детализацией до секунды — Netdata не имеет конкурентов.

Установка в одну команду

wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh
sh /tmp/netdata-kickstart.sh --release-channel stable --non-interactive

Скрипт сам определит дистрибутив (Ubuntu, Debian, RHEL, Alpine), установит зависимости, настроит systemd-юнит и запустит агент на порту 19999. Через 10 секунд открываем http://server:19999/ и видим полноценный дашборд.

Базовая настройка

Конфиг — /etc/netdata/netdata.conf. Редактирую через официальный edit-config, чтобы дефолтные значения не терялись.

cd /etc/netdata
./edit-config netdata.conf

Что правлю сразу:

[global]
    hostname = srv-app01
    history = 3600  # секунд хранения в памяти
    update every = 1
    run as user = netdata

[web]
    bind to = 127.0.0.1 unix:/var/run/netdata/netdata.sock
    allow connections from = localhost 192.168.10.0/24

После этого дашборд доступен только из внутренней сети. Для внешнего доступа — nginx reverse proxy с basic auth или SSO.

Алерты в Telegram и Slack

Без алертов мониторинг — это просто красивая картинка. Я настраиваю Telegram-уведомления за 3 минуты.

# Получаем Telegram bot token и chat ID
cd /etc/netdata
./edit-config health_alarm_notify.conf

# Правки в конфиге
SEND_TELEGRAM="YES"
TELEGRAM_BOT_TOKEN="1234567890:AAHgabc..."
DEFAULT_RECIPIENT_TELEGRAM="-1001234567890"

# Проверка
/usr/libexec/netdata/plugins.d/alarm-notify.sh test
systemctl restart netdata

В health-конфигах добавляю свои пороги. Пример — алерт на использование диска выше 85%:

# /etc/netdata/health.d/disk_custom.conf
template: disk_space_usage
      on: disk.space
      os: linux
   hosts: *
   class: Utilization
    type: System
component: Disk
      every: 1m
       warn: $used_percent > 80
       crit: $used_percent > 90
      info: disk space usage

Parent-Child архитектура для 100+ серверов

Один агент хорошо работает на одном сервере. А что делать с 50 серверами? Самое простое решение — parent-child: child-агенты стримят метрики на parent, который хранит историю на 6–12 месяцев и даёт единую точку входа.

# На parent-сервере
cd /etc/netdata
./edit-config stream.conf

[API_KEY_ГЕНЕРИРУЕТСЯ_UUIDGEN]
    enabled = yes
    default history = 172800    # 48 часов real-time
    default memory mode = dbengine
    health enabled by default = auto
    allow from = 192.168.10.0/24

# На каждом child-агенте
[stream]
    enabled = yes
    destination = parent.corp.local:19999
    api key = ВАШ_UUID_KEY
    timeout seconds = 60
    default port = 19999
    buffer size bytes = 10485760

У нас на практике один parent на Dell PowerEdge R640 (32 ГБ RAM, 1 ТБ NVMe) спокойно тянет 120 child-агентов с 2-месячным хранением.

Коллекторы для прикладных сервисов

Netdata умеет автоматически собирать метрики с MySQL, nginx, Postgres, Redis, Docker, Kubernetes, PHP-FPM, Elasticsearch и ещё 300+ сервисов. Обычно достаточно поставить агент — он сам обнаружит запущенные сервисы.

# MySQL — только создать пользователя с правом на performance_schema
CREATE USER 'netdata'@'localhost' IDENTIFIED BY '';
GRANT USAGE, REPLICATION CLIENT, PROCESS ON *.* TO 'netdata'@'localhost';

# nginx — включить /stub_status
location /stub_status {
    stub_status on;
    allow 127.0.0.1;
    deny all;
}

Кейс: мониторинг провайдера виртуалок

В ноябре 2025 ко мне обратился оператор виртуальных серверов из Подмосковья: 180 VPS-тачек на 12 гипервизорах Proxmox в дата-центре МТС. Zabbix у них был, но жаловались, что инциденты выявляются медленно — пока срабатывают алерты, клиент уже звонит в панике. Мы развернули Netdata на всех 12 гипервизорах и 180 виртуалках: parent-агент на отдельном Dell PowerEdge R640 (Xeon Platinum 8280, 64 ГБ RAM, NVMe 1.5 ТБ), child на каждом гипервизоре стримит в parent. Настроили Telegram-алерты на 85% CPU, 90% диска, пропадание сети, нагрев выше 70°C. За первый месяц: обнаружено 14 инцидентов, из них 9 — до жалоб клиентов. Среднее время реакции снизилось с 25 минут до 3. Стоимость работы — 65 000 руб.

Интеграция с Prometheus

Если у вас уже есть Prometheus — Netdata умеет отдавать метрики в его формате:

# В prometheus.yml
scrape_configs:
  - job_name: 'netdata'
    metrics_path: '/api/v1/allmetrics'
    params:
      format: [prometheus]
    static_configs:
      - targets: ['netdata01:19999', 'netdata02:19999']

У меня получается интересная комбинация: Netdata для real-time, Prometheus для долгосрочного хранения и корреляций, Grafana — единая панель для бизнес-дашбордов.

Что не стоит мониторить Netdata

Разверну Netdata у вас за один день

Установка на все ваши серверы, parent-child архитектура, кастомные алерты в Telegram, интеграция с Grafana и Prometheus. Обучение вашей команды. Дешевле аналогичной инсталляции Zabbix в 3 раза.

Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш

FAQ — Netdata

Чем Netdata лучше Zabbix?
Netdata ставится одной командой, работает из коробки без настройки шаблонов, показывает метрики с детализацией до секунды. Для быстрого мониторинга 5–50 серверов — лучший выбор.
Сколько ресурсов потребляет агент?
Около 1–3% CPU на обычном сервере и 50–150 МБ RAM. Практически незаметен.
Данные уходят в облако?
Нет, по умолчанию все метрики остаются локально. Netdata Cloud — это UI-надстройка, данные хранятся на самом агенте.
Как организовать хранение долгосрочных метрик?
В parent-child архитектуре: агенты стримят в parent-узел с хранением 6–12 месяцев. Также работает экспорт в Prometheus/InfluxDB.
Поддерживает ли Windows?
Да, с 2023 года есть нативный Windows Agent. Но функционал пока уступает Linux-агенту.

Подпишитесь на рассылку ITfresh

Раз в неделю — практические гайды для руководителя IT и сисадмина: безопасность, 1С, миграции, резервные копии, лайфхаки из реальных проектов.

Реквизиты оператора персональных данных

ООО «АЙТИ-ФРЕШ», ИНН 7719418495, КПП 771901001. Юридический адрес: 105523, г. Москва, Щёлковское шоссе, д. 92, корп. 7. Контакт: info@itfresh.ru, +7 903 729-62-41. Оператор обрабатывает e-mail подписчика в целях рассылки информационных и рекламных материалов до момента отзыва согласия.