Netdata предоставляет показатели с точностью до секунды без какой-либо настройки. Установите программу, откройте порт 19999 — и вы сможете отслеживать все, что предоставляет ядро: ЦП, память, дисковый ввод-вывод, сетевые интерфейсы, запущенные процессы и даже отдельные контейнеры, если установлен Docker.
В этом руководстве подробно описаны установка Netdata на Ubuntu 26.04 LTS, настройка уведомлений по электронной почте, настройка Nginx в качестве обратного прокси-сервера и настройка срока хранения данных. Netdata из коробки автоматически обнаруживает такие сервисы, как Nginx, PostgreSQL и Docker, поэтому вы получаете информационные панели, не написав ни одной строчки конфигурации.
Протестировано Апрель 2026 г. | Ubuntu 26.04 LTS (Resolute Raccoon), Netdata v2.10.0, Nginx 1.28.3
Необходимые условия
Перед началом убедитесь, что у вас есть следующее:
- Сервер Ubuntu 26.04 LTS с правами root или sudo (руководство по начальной настройке сервера)
- Как минимум 1 ядро процессора и 512 МБ оперативной памяти (Netdata — легкая программа, но больше оперативной памяти означает более длительное хранение данных)
- Протестировано на: Ubuntu 26.04 LTS, ядро 7.0.0, 2 виртуальных процессора, 4 ГБ ОЗУ
Установка Netdata на Ubuntu 26.04
Netdata предоставляет однострочный установщик, который берёт на себя всё: разрешение зависимостей, загрузку бинарного файла, создание службы systemd и автоматические обновления. По состоянию на апрель 2026 года нативные пакеты для Ubuntu 26.04 ещё не опубликованы в репозитории Netdata, поэтому установщик использует статическую сборку, которая работает точно так же.
bash <(curl -SsL https://my-netdata.io/kickstart.sh) --non-interactive --install-type static
Установщик загружает последнюю статическую бинарную версию (~180 МБ), распаковывает её в /opt/netdata/, создаёт netdata системного пользователя и запускает службу. Это занимает около двух минут в зависимости от скорости вашего подключения.
Проверьте установленную версию:
/opt/netdata/bin/netdata -v
Вывод подтверждает версию v2.10.0:
netdata v2.10.0-25-nightly
Убедитесь, что служба активна и включена при загрузке:
systemctl status netdata
Вы должны увидеть active (running) и enabled:
● netdata.service - Netdata, X-Ray Vision for your infrastructure!
Loaded: loaded (/usr/lib/systemd/system/netdata.service; enabled; preset: enabled)
Active: active (running) since Tue 2026-04-14 10:22:34 UTC; 8min ago
Main PID: 5079 (netdata)
Tasks: 109 (limit: 3522)
Memory: 104.7M (peak: 107.1M)
CGroup: /system.slice/netdata.service
├─5079 /opt/netdata/bin/srv/netdata -P /run/netdata/netdata.pid -D
├─5466 /opt/netdata/usr/libexec/netdata/plugins.d/network-viewer.plugin 1
├─5470 /opt/netdata/usr/libexec/netdata/plugins.d/go.d.plugin 1
Открытие брандмауэра
Встроенный веб-сервер Netdata прослушивает порт 19999. Если UFW активен, разрешите трафик на этот порт:
sudo ufw allow 19999/tcp
Убедитесь, что правило добавлено:
sudo ufw status
Порт 19999 должен появиться в выводе:
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
19999/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
19999/tcp (v6) ALLOW Anywhere (v6)
Перейдите на панель управления Netdata
Откройте браузер и перейдите по адресу http://10.0.1.50:19999/ (замените на IP-адрес вашего сервера). При первом доступе Netdata v2 отображает страницу приветствия с возможностью войти в Netdata Cloud или использовать панель управления анонимно. Нажмите «Пропустить и использовать панель управления анонимно», если вы предпочитаете, чтобы всё оставалось локальным.
На панели мониторинга сразу отображаются индикаторы в режиме реального времени, показывающие загрузку ЦП, общее количество операций чтения/записи на диск, загрузку памяти и пропускную способность сети. По умолчанию все показатели обновляются раз в секунду — это отличительная особенность Netdata. Ни один другой инструмент мониторинга не предоставляет такую детализацию из коробки. Для создания более продвинутых панелей мониторинга с настраиваемыми запросами и данными из нескольких источников используйте Grafana в сочетании с Netdata.
Прокрутите вниз, чтобы изучить отдельные разделы диаграмм. Netdata автоматически обнаруживает и создаёт графики для системного ЦП, прерываний, программных прерываний (softirqs), памяти (RAM, своп, блоки ядра), дискового ввода-вывода по устройствам, сетевого трафика по интерфейсам и многого другого. Количество показателей обычно начинается с 4 000 на базовом сервере и растёт по мере добавления сервисов.
Запрос к API Netdata
Netdata предоставляет REST API на том же порту (19999), который можно использовать для автоматизации, внешних панелей мониторинга или проверок работоспособности. Отправьте запрос к /api/v1/info конечной точке, чтобы получить метаданные системы:
curl -s http://localhost:19999/api/v1/info | python3 -m json.tool | head -20
В ответ возвращаются версия Netdata, сведения об ОС, технические характеристики оборудования и статус сигналов тревоги в формате JSON:
{
"version": "v2.10.0-25-nightly",
"uid": "95b37743-ccac-4abd-9f36-c31df3b5576d",
"hosts-available": 1,
"alarms": {
"normal": 107,
"warning": 0,
"critical": 0
},
"os_name": "Ubuntu",
"os_version": "26.04 (Resolute Raccoon)",
"cores_total": "2",
"ram_total": "4100751360"
}
Чтобы получить последнее значение для конкретного графика (например, загрузки процессора системы), используйте конечную точку данных:
curl -s "http://localhost:19999/api/v1/data?chart=system.cpu&after=-1&format=json" | python3 -m json.tool
Это полезно для скриптов, которым необходимо проверять нагрузку на сервер, запускать пользовательские оповещения или передавать метрики во внешние системы.
Мониторинг Nginx с помощью Netdata
Netdata автоматически обнаруживает многие сервисы, но для Nginx необходимо включить stub_status модуль, чтобы Netdata мог собирать метрики подключения. Сначала установите Nginx, если вы этого ещё не сделали:
sudo apt install -y nginx
Запустите и включите службу:
sudo systemctl enable --now nginx
Создайте конечную точку stub_status, которую Netdata сможет опрашивать. Это позволит отображать основные метрики подключения по URL-адресу, доступному только локально:
sudo vi /etc/nginx/conf.d/stub_status.conf
Добавьте следующую конфигурацию:
server {
listen 127.0.0.1:80;
server_name 127.0.0.1;
location /basic_status {
stub_status;
allow 127.0.0.1;
deny all;
}
}
Протестируйте конфигурацию Nginx и перезагрузите:
sudo nginx -t && sudo systemctl reload nginx
Убедитесь, что конечная точка stub_status работает:
curl http://127.0.0.1/basic_status
Вы должны увидеть активные соединения и счетчики запросов:
Active connections: 1
server accepts handled requests
3 3 3
Reading: 0 Writing: 1 Waiting: 0
Теперь включите коллектор Nginx в Netdata. Создайте файл конфигурации:
sudo vi /opt/netdata/etc/netdata/go.d/nginx.conf
Добавьте следующее:
jobs:
- name: local
url: http://127.0.0.1/basic_status
Перезапустите Netdata, чтобы применить настройки нового коллектора:
sudo systemctl restart netdata
Через несколько секунд на панели мониторинга появится раздел «Nginx», в котором будут отображаться активные соединения, количество запросов в секунду и разбивка по статусам соединений. Полную инструкцию по настройке Nginx с SSL и Let’s Encrypt см. в руководстве по установке Nginx для Ubuntu 26.04.
Настройка уведомлений по электронной почте
Netdata поставляется с более чем 100 предварительно настроенными сигналами тревоги, охватывающими использование ЦП, дисковое пространство, загрузку памяти и многое другое. По умолчанию сигналы тревоги срабатывают, но уведомления никуда не отправляются. Чтобы получать уведомления по электронной почте, настройте скрипт уведомлений о сигналах тревоги.
Скопируйте конфигурацию уведомлений о тревогах по умолчанию в доступное для редактирования место:
sudo cp /opt/netdata/usr/lib/netdata/conf.d/health_alarm_notify.conf /opt/netdata/etc/netdata/health_alarm_notify.conf
Отредактируйте файл конфигурации:
sudo vi /opt/netdata/etc/netdata/health_alarm_notify.conf
Найдите раздел, посвящённый электронной почте, и укажите отправителя и получателя. Снимите комментарии и измените следующие строки:
# email global notification options
EMAIL_SENDER="[email protected]"
SEND_EMAIL="YES"
DEFAULT_RECIPIENT_EMAIL="[email protected]"
Для этого на сервере должен быть установлен работающий MTA (postfix, sendmail или msmtp). При необходимости установите один из них:
sudo apt install -y msmtp msmtp-mta
Протестируйте конвейер уведомлений с помощью встроенной тестовой команды Netdata:
sudo /opt/netdata/usr/libexec/netdata/plugins.d/alarm-notify.sh test
Netdata также поддерживает Slack, Discord, Telegram, PagerDuty и многие другие каналы уведомлений. Полный список поддерживаемых интеграций см. в health_alarm_notify.conf .
Настройка срока хранения данных
Netdata v2 по умолчанию использует многоуровневый механизм хранения (dbengine) с тремя уровнями. На уровне 0 хранятся данные с секундной периодичностью, на уровне 1 — агрегированные данные с минутной периодичностью, а на уровне 2 — агрегированные данные с часовой периодичностью. По умолчанию данные с секундной периодичностью хранятся около 14 дней.
Чтобы настроить срок хранения, скачайте текущую конфигурацию и отредактируйте её:
curl -o /opt/netdata/etc/netdata/netdata.conf http://localhost:19999/netdata.conf
Отредактируйте конфигурацию:
sudo vi /opt/netdata/etc/netdata/netdata.conf
В разделе [db] настройте параметры хранения. Ключевыми параметрами являются выделение дискового пространства для каждого уровня и временные ограничения хранения:
[db]
dbengine tier 0 retention size = 2048MiB
dbengine tier 0 retention time = 30d
dbengine tier 1 retention size = 1024MiB
dbengine tier 1 retention time = 6mo
dbengine tier 2 retention size = 1024MiB
dbengine tier 2 retention time = 2y
В этой конфигурации выделяется 2 ГБ для данных с секундной периодичностью (примерно 30 дней на типичном сервере), 1 ГБ для данных с минутной периодичностью и 1 ГБ для данных с часовой периодичностью. Netdata эффективно использует хранилище, поскольку по умолчанию применяет сжатие Gorilla.
Чтобы ограничить объем памяти, занимаемый Netdata на системах с ограниченными ресурсами, настройте размер кэша страниц в том же [db] разделе:
[db]
dbengine page cache size = 64MiB
Перезапустите Netdata, чтобы применить изменения:
sudo systemctl restart netdata
Настройте обратный прокси Nginx для Netdata
Прямой доступ к порту 19999 подходит для тестирования, но в производственной среде рекомендуется разместить Netdata за Nginx с надлежащим контролем доступа. Это также позволит вам предоставлять доступ к Netdata по порту 443 с использованием SSL, если у вас есть домен, настроенный на этот сервер.
Создайте новый блок сервера Nginx:
sudo vi /etc/nginx/sites-available/netdata
Добавьте конфигурацию обратного прокси:
upstream netdata_backend {
server 127.0.0.1:19999;
keepalive 64;
}
server {
listen 80;
server_name netdata.example.com;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://netdata_backend;
proxy_http_version 1.1;
proxy_pass_request_headers on;
proxy_set_header Connection "keep-alive";
proxy_store off;
}
}
Включите сайт и перезагрузите Nginx:
sudo ln -s /etc/nginx/sites-available/netdata /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
Как только обратный прокси станет активным, вы сможете закрыть порт 19999 в брандмауэре и ограничить Netdata прослушиванием только localhost. Отредактируйте /opt/netdata/etc/netdata/netdata.conf и установите:
[web]
bind to = 127.0.0.1
Перезапустите Netdata после внесения изменений:
sudo systemctl restart netdata
sudo ufw delete allow 19999/tcp
Теперь доступ к Netdata возможен только через обратный прокси Nginx. Для корпоративных сред, где требуются шаблоны, триггеры и группировка хостов, рекомендуется использовать Zabbix в качестве дополнительного инструмента. При развертывании в производственной среде добавьте SSL с помощью Let’s Encrypt и базовую аутентификацию для защиты панели мониторинга.
Netdata Cloud (необязательно)
Netdata Cloud — это бесплатный SaaS-сервис, позволяющий просматривать панели мониторинга от нескольких агентов Netdata в едином интерфейсе. Агент отправляет метаданные и запросы на метрики в облако, но исходные данные остаются на вашем сервере. В облаке не хранятся никакие метрики.
Для подключения агента вам понадобится учётная запись Netdata Cloud. В процессе авторизации используется токен и генерируется закрытый ключ:
sudo /opt/netdata/bin/netdata-claim.sh -token=YOUR_CLOUD_TOKEN -rooms=YOUR_ROOM_ID -url=https://app.netdata.cloud
Если вы предпочитаете осуществлять мониторинг исключительно локально, без подключения к облаку, пропустите этот шаг. Локальная панель мониторинга на порту 19999 (или за вашим обратным прокси) предоставляет те же возможности визуализации.
Потоковая передача: настройка «родитель-дочерний»
Netdata поддерживает архитектуру потоковой передачи, при которой дочерние узлы пересылают свои метрики на родительский узел. Это полезно, если у вас много серверов и вы хотите иметь единую панель мониторинга, отображающую все из них, без использования Netdata Cloud.
На родительском (центральном сервере) отредактируйте конфигурацию потока:
sudo vi /opt/netdata/etc/netdata/stream.conf
Добавьте раздел для приема потоков с помощью ключа API:
[NETDATA_STREAM_API_KEY]
enabled = yes
default memory mode = dbengine
health enabled by default = auto
allow from = *
Замените NETDATA_STREAM_API_KEY на сгенерированный вами UUID:
uuidgen
На каждом дочернем узле отредактируйте тот же файл и настройте его на передачу данных родительскому узлу:
[stream]
enabled = yes
destination = 10.0.1.50:19999
api key = YOUR_GENERATED_UUID
После внесения изменений перезапустите Netdata как на родительском, так и на дочерних узлах. На панели мониторинга родительского узла будут отображаться метрики со всех подключенных дочерних узлов, что обеспечит вам централизованный мониторинг без каких-либо внешних зависимостей.
Netdata vs Prometheus
И Netdata, и Prometheus — популярные инструменты мониторинга с открытым исходным кодом, но они решают разные задачи. Вот как они сравниваются:
| Функция | Netdata | Prometheus |
|---|---|---|
| Интервал сбора данных | 1 секунда (по умолчанию — каждую секунду) | 15 секунд (настраиваемый, обычно 10–30 с) |
| Требуется настройка | Не требует настройки, автоматически обнаруживает всё | Ручное указание целей сбора данных в YAML |
| Встроенная панель мониторинга | Да, веб-интерфейс в режиме реального времени включён | Нет (требуется Grafana или аналогичный инструмент) |
| Модель данных | По хосту, локальное хранилище | Централизованная база данных TSDB с механизмом извлечения данных (pull) |
| Оповещения | Встроенная система с более чем 100 предварительно настроенными оповещениями | Alertmanager (отдельный компонент) |
| Механизм хранения | dbengine (многоуровневый, с сжатием) | Пользовательская TSDB с WAL |
| Использование памяти (в режиме простоя) | ~100 МБ | ~200–500 МБ (зависит от кардинальности) |
| Оптимально подходит для | Устранение неполадок в режиме реального времени, мониторинг отдельных серверов | Метрики всего кластера, долгосрочное хранение, Kubernetes |
| Требуются экспортеры | Нет (встроенные сборщики для более чем 800 источников) | Да (node_exporter, mysqld_exporter и т. д.) |
| Поддержка Kubernetes | Доступен Helm-чарт, DaemonSet для каждого узла | Нативная поддержка с помощью kube-state-metrics, развитая экосистема |
| Язык запросов | Простой API (вес, группа, временной диапазон) | PromQL (мощный, сложный в освоении) |
Используйте Netdata, если вам нужна мгновенная визуализация данных по отдельным серверам с точностью до секунды без затрат времени на настройку. Используйте Prometheus, если вы управляете парком серверов или кластерами Kubernetes и вам нужен централизованный запрос с помощью PromQL. Многие команды используют и то, и другое: Netdata на каждом хосте для отладки в режиме реального времени и Prometheus для долгосрочных метрик, оповещений и дашбордов Grafana. Вы также можете настроить Netdata на экспорт метрик в Prometheus, сочетая преимущества обоих подходов.
Если на этом сервере запущены контейнеры, Netdata автоматически обнаруживает контейнеры Docker и отображает метрики ЦП, памяти и ввода-вывода для каждого контейнера без какой-либо дополнительной настройки.