Установка Netdata в Ubuntu 26.04 LTS

Netdata предоставляет показатели с точностью до секунды без какой-либо настройки. Установите программу, откройте порт 19999 — и вы сможете отслеживать все, что предоставляет ядро: ЦП, память, дисковый ввод-вывод, сетевые интерфейсы, запущенные процессы и даже отдельные контейнеры, если установлен Docker.

Оригинальный контент с computingforgeeks.com — пост № 166150

В этом руководстве подробно описаны установка 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 v2.10.0, работающая на Ubuntu 26.04 LTS

Открытие брандмауэра

Встроенный веб-сервер 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, отображающая системные метрики в реальном времени на Ubuntu 26.04 LTS

Прокрутите вниз, чтобы изучить отдельные разделы диаграмм. Netdata автоматически обнаруживает и создаёт графики для системного ЦП, прерываний, программных прерываний (softirqs), памяти (RAM, своп, блоки ядра), дискового ввода-вывода по устройствам, сетевого трафика по интерфейсам и многого другого. Количество показателей обычно начинается с 4 000 на базовом сервере и растёт по мере добавления сервисов.

Графики Netdata с частотой обновления в секунду для ЦП, памяти, диска и сети

Запрос к 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 и отображает метрики ЦП, памяти и ввода-вывода для каждого контейнера без какой-либо дополнительной настройки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *