Мониторинг. · 22 min read · Nov 30, 2025
Как установить и мониторить сервисы с помощью инструмента мониторинга Netdata на Rocky Linux 8

Netdata — это система мониторинга с открытым исходным кодом для операционных систем на базе Linux. Она предоставляет мониторинг производительности в реальном времени с помощью красивых и детализированных панелей управления. Она предлагает сотни инструментов для мониторинга серверов, использования CPU, памяти, системных процессов, использования диска, сетей IPv4 и IPv6, системного брандмауэра и приложений, таких как Nginx, MySQL, MongoDB, Redis, ElasticSearch, PostgreSQL, PHP-FPM и т. д. Она интегрируется с другими инструментами мониторинга, такими как Prometheus, Graphite, Kafka, Grafana и другими.
В этом учебном пособии вы научитесь устанавливать и мониторить различные сервисы с помощью инструмента Netdata на сервере Rocky Linux 8. Мы будем использовать Netdata для отслеживания метрик стека LEMP и движка Docker.
Предварительные требования
- Сервер с установленным Rocky Linux 8.
- Пользователь, не являющийся root, с правами sudo.
- Полное доменное имя (FQDN), такое как
netdata.example.com, указывающее на ваш сервер. - Учетная запись и рабочее пространство Slack для получения уведомлений.
- Учетная запись SMTP с почтовым сервисом, таким как Amazon SES или Mailgun.
- Отключите SELinux.
Шаг 1 - Настройка брандмауэра
Первый шаг — настроить брандмауэр. Rocky Linux использует брандмауэр Firewalld. Проверьте статус брандмауэра.
$ sudo firewall-cmd --state
running
Брандмауэр работает с различными зонами, и публичная зона является той, которую мы будем использовать по умолчанию. Перечислите все сервисы и порты, активные на брандмауэре.
$ sudo firewall-cmd --permanent --list-services
Он должен показать следующий вывод.
cockpit dhcpv6-client ssh
Разрешите порты HTTP и HTTPS.
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
Проверьте статус брандмауэра еще раз.
$ sudo firewall-cmd --permanent --list-services
Вы должны увидеть аналогичный вывод.
cockpit dhcpv6-client http https ssh
Перезагрузите брандмауэр, чтобы применить изменения.
$ sudo firewall-cmd --reload
Шаг 2 - Установка NetData
Netdata поставляется со скриптом установки, который может работать на любой дистрибутиве Linux. Выполните следующую команду, чтобы загрузить и запустить скрипт установки.
$ bash <(curl -Ss https://my-netdata.io/kickstart.sh)
Вас попросят ввести ваш пароль sudo для включения прав sudo. Введите Y, чтобы подтвердить добавление репозитория Netdata и его установку на ваш сервер.
Установщик Netdata автоматически включает и запускает сервис. Проверьте статус сервиса.
$ sudo systemctl status netdata
? netdata.service - Мониторинг производительности в реальном времени
Loaded: loaded (/usr/lib/systemd/system/netdata.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2022-04-11 12:09:12 UTC; 13s ago
Main PID: 19443 (netdata)
Tasks: 32 (limit: 11412)
Memory: 52.0M
CGroup: /system.slice/netdata.service
??19443 /usr/sbin/netdata -P /var/run/netdata/netdata.pid -D
??19448 /usr/sbin/netdata --special-spawn-server
??19937 /usr/libexec/netdata/plugins.d/apps.plugin 1
??19944 /usr/libexec/netdata/plugins.d/go.d.plugin 1
Apr 11 12:09:12 netdata systemd[1]: Started Мониторинг производительности в реальном времени.
.......
Если ваш сервис не запущен или не включен, вы можете сделать это с помощью следующей команды.
$ sudo systemctl enable netdata --now
Выполните следующую команду, чтобы проверить открытые порты и процессы, использующие их.
$ sudo ss -plnt
Вы должны получить аналогичный вывод. Netdata использует порт 19999 для своей панели управления, что видно в приведенном ниже выводе. Netdata использует порт 8125 для получения статистики от других приложений.
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 127.0.0.1:8125 0.0.0.0:* users:(("netdata",pid=22496,fd=29))
LISTEN 0 128 0.0.0.0:19999 0.0.0.0:* users:(("netdata",pid=22496,fd=6))
......
LISTEN 0 128 [::1]:8125 [::]:* users:(("netdata",pid=22496,fd=28))
LISTEN 0 128 [::]:19999 [::]:* users:(("netdata",pid=22496,fd=7))
Шаг 3 - Установка SSL
Чтобы установить SSL-сертификат с помощью Let’s Encrypt, нам нужно установить инструмент Certbot.
Во-первых, вам нужно загрузить и установить репозиторий EPEL.
$ sudo dnf install epel-release
Выполните следующие команды для установки Certbot.
$ sudo dnf install certbot
Сгенерируйте SSL-сертификат.
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d netdata.example.com
Вышеуказанная команда загрузит сертификат в директорию /etc/letsencrypt/live/netdata.example.com на вашем сервере.
Сгенерируйте сертификат группы Диффи-Хеллмана.
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Создайте корневую директорию для проверки для автоматического обновления Let’s Encrypt.
$ sudo mkdir -p /var/lib/letsencrypt
Создайте задачу Cron для обновления SSL. Она будет запускаться каждый день, чтобы проверить сертификат и обновить его при необходимости. Для этого сначала создайте файл /etc/cron.daily/certbot-renew и откройте его для редактирования.
$ sudo nano /etc/cron.daily/certbot-renew
Вставьте следующий код.
#!/bin/sh
certbot renew --cert-name netdata.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Измените разрешения на файле задачи, чтобы сделать его исполняемым.
$ sudo chmod +x /etc/cron.daily/certbot-renew
Шаг 4 - Установка и настройка Nginx
Мы будем устанавливать последнюю версию Nginx. Создайте и откройте файл /etc/yum.repos.d/nginx.repo для редактирования.
$ sudo nano /etc/yum.repos.d/nginx.repo
Вставьте в него следующие строки.
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Установите Nginx и инструменты HTTPD.
$ sudo dnf install nginx httpd-tools
Проверьте установку.
$ nginx -v
nginx version: nginx/1.20.2
Включите и запустите сервис Nginx.
$ sudo systemctl enable nginx --now
Создайте и откройте файл /etc/nginx/conf.d/netdata.conf для редактирования.
$ sudo nano /etc/nginx/conf.d/netdata.conf
Вставьте в него следующий код.
# Определите upstream netdata
upstream netdata {
server 127.0.0.1:19999;
keepalive 64;
}
# Перенаправьте все незащищенные на защищенные
server {
listen 80;
listen [::]:80;
server_name netdata.example.com;
return 301 https://netdata.example.com$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name netdata.example.com;
ssl_certificate /etc/letsencrypt/live/netdata.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/netdata.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/netdata.example.com/chain.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_prefer_server_ciphers off;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
resolver 1.1.1.1 1.0.0.1 [2606:4700:4700::1111] [2606:4700:4700::1001] 8.8.8.8 8.8.4.4 [2001:4860:4860::8888] [2001:4860:4860::8844] valid=60s;
resolver_timeout 2s;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
access_log /var/log/nginx/netdata.example.com.access.log main;
error_log /var/log/nginx/netdata.example.com.error.log;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_pass http://netdata;
proxy_http_version 1.1;
proxy_pass_request_headers on;
proxy_set_header Connection "keep-alive";
proxy_store off;
auth_basic "NetData Private Area";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
После завершения сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Откройте файл /etc/nginx/nginx.conf для редактирования.
$ sudo nano /etc/nginx/nginx.conf
Добавьте следующую строку перед строкой include /etc/nginx/conf.d/*.conf;.
server_names_hash_bucket_size 64;
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Выполните следующую команду, чтобы сгенерировать файл паролей для включения HTTP-аутентификации.
$ sudo htpasswd -c /etc/nginx/.htpasswd netadmin
New password:
Re-type new password:
Adding password for user netadmin
Проверьте синтаксис конфигурационного файла Nginx.
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Перезапустите сервис Nginx, чтобы включить новую конфигурацию.
$ sudo systemctl restart nginx
Шаг 5 - Доступ и использование панели управления Netdata
Вы должны иметь возможность получить доступ к Netdata по URL https://netdata.example.com. В первый раз, когда вы получите доступ к нему, вам будет предложено ввести ваши данные для HTTP-аутентификации.

Вы получите следующую панель управления.

Установите флажок Запомнить мой выбор и нажмите кнопку Позже, остаться на панели управления агента, чтобы закрыть всплывающее окно.
Вы можете приостанавливать, останавливать и запускать мониторинг в любое время, используя кнопку Воспроизведение на панели управления.

Вы можете получить доступ к различным панелям управления, щелкнув параметры в правом боковом меню. Нажмите кнопку UTC и выберите правильный часовой пояс, чтобы изменить его.

Шаг 6 - Настройка NetData
Netdata хранит свою основную конфигурацию в файле /etc/netdata/netdata.conf. Вы можете просмотреть эти настройки, посетив URL https://netdata.example.com/netdata.conf в вашем браузере.

Файл разделен на различные секции, такие как [global], [web], [registry] и другие. Стандартная конфигурация достаточно, чтобы начать. Netdata собирает данные с помощью двух типов плагинов:
- внутренние плагины написаны на языке C и работают как потоки внутри демона
netdata. - внешние плагины написаны на различных языках, включая Python, Go и т. д., и запускаются как долгоживущие независимые процессы демоном
netdata. Они общаются с демоном Netdata с помощьюpipes.
Настройка использования памяти NetData
Использование RAM NetData определяется на основе времени, в течение которого вы хотите хранить записанные данные графиков, прежде чем они будут потеряны.
- 3600 секунд или 1 час хранения данных графиков использует 15 МБ RAM.
- 7200 секунд или 2 часа хранения данных графиков использует 30 МБ RAM.
- 14400 секунд или 4 часа хранения данных графиков использует 60 МБ RAM.
Каждый раз, когда вы удваиваете время хранения данных графиков, требования к RAM также удваиваются. Эти требования к RAM основаны на количестве графиков, используемых стандартной панелью управления. Добавление большего количества графиков и приложений изменит эти оценки.
Откройте файл конфигурации Netdata.
$ sudo nano /etc/netdata/netdata.conf
Введите строку history = 14400 в секции [global].
[global]
..
history = 14400
..
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Отключение телеметрии
По умолчанию Netdata собирает анонимную информацию об использовании с помощью платформы аналитики продуктов, Posthog. Каждый раз, когда демон Netdata запускается или останавливается, Netdata использует скрипт анонимной статистики для сбора следующей системной информации и отправки ее себе.
- Версия Netdata
- Название ОС, версия, id, id_like
- Название ядра, версия, архитектура
- Технология виртуализации
- Технология контейнеризации
- Дополнительная информация о сбоях клиента Netdata.
К счастью, вы можете отказаться от этого. Создайте пустой файл с именем .opt-out-from-anonymous-statistics в директории Netdata.
$ sudo touch /etc/netdata/.opt-out-from-anonymous-statistics
Перезапустите Netdata, чтобы применить изменения.
$ sudo systemctl restart netdata
Долгосрочное хранение
Netdata использует RAM и диск вашей системы для хранения исторических данных по умолчанию. Процесс Netdata по умолчанию собирает около 2000 метрик в секунду, что означает, что стандартная конфигурация будет хранить около двух дней метрик в RAM и на диске.
Чтобы хранить больше метрик, у вас есть следующие два варианта:
- Настроить Netdata для использования большего объема RAM и дискового пространства
- Архивировать метрики в внешнюю базу данных
Мы обсудим только первый вариант в этом учебном пособии. Для второго варианта вам следует обратиться к официальной документации Netdata.
Настройка Netdata для использования большего объема RAM и дискового пространства
Откройте файл /etc/netdata/netdata.conf для редактирования.
$ sudo nano /etc/netdata/netdata.conf
Вставьте следующие строки в секцию [global].
[global]
...
memory mode = dbengine
page cache size = 32
dbengine disk space = 256
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Размер кэша страниц определяет объем используемой RAM, а dbengine disk space определяет использование диска. По умолчанию Netdata использует 32 МБ RAM и 256 МБ дискового пространства. Вы можете раскомментировать эти значения и изменить одно из двух значений по своему усмотрению.
Вы можете использовать калькулятор метрик хранения Netdata, чтобы определить, сколько RAM и дискового пространства вам нужно.
Уменьшение частоты сбора
Вы можете оптимизировать производительность Netdata, увеличив время между сбором метрик. По умолчанию Netdata собирает метрики каждую секунду.
Чтобы изменить это, откройте файл конфигурации Netdata для редактирования.
$ sudo nano /etc/netdata/netdata.conf
Введите следующую строку в секции [global]. Это увеличивает частоту до 5 секунд.
[global]
...
update every = 5
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Шаг 7 - Настройка уведомлений Slack
Первый шаг — создать приложение Slack и подключить его к определенному каналу в вашем рабочем пространстве для настройки уведомлений Slack.
Посетите страницу API Slack и нажмите кнопку Создать приложение, чтобы начать создание приложения.

Нажмите на ссылку С нуля, чтобы создать приложение.

Выберите имя для вашего приложения и выберите рабочее пространство, в котором вы хотите, чтобы ваше приложение появилось. Если вы не хотите связывать свое приложение с существующим рабочим пространством, вы можете создать другое и вернуться к этому шагу.

Откройте страницу Входящие вебхуки, выбрав опцию в меню Функции в левом боковом меню, а затем активируйте вебхук.

Нажмите кнопку Добавить новый вебхук в рабочее пространство внизу страницы и выберите ваше рабочее пространство и целевой канал для уведомлений.

Нажмите кнопку Разрешить, чтобы продолжить. Вернитесь на страницу Входящие вебхуки и скопируйте URL вебхука.

Вернитесь в терминал и перейдите в директорию /etc/netdata.
$ cd /etc/netdata
Netdata предоставляет скрипт edit-config для редактирования и создания файлов конфигурации Netdata. Выполните следующий файл, чтобы создать и открыть файл health_alarm_notify.conf с помощью вашего редактора по умолчанию.
$ sudo ./edit-config health_alarm_notify.conf
Прокрутите вниз до следующего раздела.
# Включить уведомление slack
SEND_SLACK="YES"
# Выберите вебхук slack
SLACK_WEBHOOK_URL="https://hooks.slack.com/services/xxxxxxx"
# Канал по умолчанию для уведомлений
DEFAULT_RECIPIENT_SLACK="notifications"
Убедитесь, что переменная SEND_SLACK установлена в yes. Вставьте скопированный URL вебхука в переменную SLACK_WEBHOOK_URL. Введите имя вашего канала для переменной DEFAULT_RECIPIENT_SLACK.
Если ваш редактор — Vim, нажмите клавишу Escape, чтобы выйти из редактирования, введите :x и нажмите клавишу Enter, чтобы сохранить файл и выйти из редактора.
Если ваш редактор — Nano, сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Перезапустите Netdata, чтобы применить изменения.
$ sudo systemctl restart netdata
Настройка уведомлений по электронной почте
Netdata использует sendmail по умолчанию для отправки уведомлений по электронной почте, но управление почтовым сервером — это не простая задача. Netdata не поддерживает SMTP, но вы можете установить пакет под названием msmtp клиент. Он позволяет вам отправлять почту на SMTP-сервер.
Установите msmtp.
$ sudo dnf install msmtp
Создайте и откройте файл конфигурации для msmtp.
$ sudo nano /etc/msmtprc
Вставьте в него следующий код.
# Установите значения по умолчанию для всех последующих учетных записей.
defaults
# Используйте порт отправки почты 587 вместо SMTP-порта 25.
port 587
# Всегда используйте TLS.
tls on
# SMTP-сервер вашего провайдера
account ses
host email-smtp..amazonaws.com
from [email protected]
auth on
user
password
# Установите учетную запись по умолчанию на isp
account default: ses
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Откройте файл /etc/netdata/health_alarm_notify.conf для редактирования.
$ sudo nano /etc/netdata/health_alarm_notify.conf
Прокрутите вниз до следующего раздела и введите путь к msmtp.
# внешние команды
# Полный путь к команде sendmail.
# Если пусто, будет выполнен поиск по системному $PATH.
# Если не найдено, уведомления по электронной почте будут отключены (тихо).
sendmail="/usr/bin/msmtp"
Найдите следующий раздел и введите данные отправителя и получателя и убедитесь, что отправка электронной почты включена.
# глобальные параметры уведомления по электронной почте
# несколько получателей можно указать так:
# "[email protected] [email protected] ..."
# адрес электронной почты, отправляющий уведомления по электронной почте
# по умолчанию это системный пользователь, от имени которого работает netdata (обычно: netdata)
# Поддерживаются следующие форматы:
# EMAIL_SENDER="user@domain"
# EMAIL_SENDER="User Name "
# EMAIL_SENDER="'User Name' "
# EMAIL_SENDER="\"User Name\" "
EMAIL_SENDER="Server Admin <[email protected]>"
# включить/отключить отправку электронных писем
SEND_EMAIL="YES"
# если роль получателя не настроена, электронное письмо будет отправлено на:
DEFAULT_RECIPIENT_EMAIL="[email protected]"
# чтобы получать только критические тревоги, установите его в "root|critical"
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Шаг 8 - Тестирование каналов уведомлений
Давайте протестируем, работают ли уведомления Slack.
Войдите как системный пользователь netdata, созданный во время установки.
$ sudo su -s /bin/bash netdata
Запустите скрипт уведомления об аварии, чтобы отправить тестовое уведомление.
$ /usr/libexec/netdata/plugins.d/alarm-notify.sh test
Выйдите из пользователя.
$ exit.
Откройте ваше приложение Slack, и вы должны получить следующие уведомления.

Вы также получите три электронных письма о тестовых предупреждениях.

Шаг 9 - Настройка мониторинга системы
Теперь, когда мы настроили и протестировали уведомления, давайте настроим и протестируем уведомления для системы, такие как использование CPU.
Выполните следующие команды, чтобы создать и открыть файл конфигурации CPU.
$ cd /etc/netdata
$ sudo ./edit-config health.d/cpu.conf
Измените значения параметров warn и crit в разделе 10min_cpu_usage следующим образом.
warn: $this > (($status >= $WARNING) ? (60) : (70))
crit: $this > (($status == $CRITICAL) ? (75) : (85))
Сохраните файл и выйдите из редактора.
Вышеуказанная настройка отправит предупреждение, если использование CPU будет находиться между 60 и 70%, и критическое предупреждение, когда использование CPU будет находиться между 75 и 85%.
Перезапустите сервис Netdata.
$ sudo systemctl restart netdata
Давайте протестируем настройку, установив приложение Stress.
$ sudo dnf install stress
Выполните следующую команду, чтобы увеличить использование CPU вашего сервера.
$ stress --cpu 2
Оставьте команду запущенной на 5-10 минут, и вы получите сообщения о высоком использовании CPU. Как только вы получите эти сообщения, вернитесь в терминал и выйдите из команды, нажав Ctrl + Z.
После остановки сервиса вы получите уведомление о восстановлении CPU в Slack.

Шаг 10 - Настройка мониторинга Nginx
Одним из наиболее часто мониторируемых приложений с помощью Netdata являются серверы и пакеты SQL. Давайте мониторить сервер Nginx с помощью Netdata.
Чтобы включить мониторинг сервера Nginx, нам нужно использовать ngx_http_stub_status_module. Обычно он поставляется предустановленным с Nginx. Вы можете проверить, присутствует ли модуль.
$ nginx -V 2>&1 | grep -o with-http_stub_status_module
with-http_stub_status_module
Если вы не получите ответа, это означает, что ваша установка Nginx не поддерживает эту функцию. В этом случае вам нужно будет скомпилировать Nginx.
Откройте файл конфигурации по умолчанию Nginx /etc/nginx/conf.d/default.conf для редактирования. Местоположение файла отличается, потому что мы установили Nginx из его официального репозитория. Если вы устанавливаете Nginx из репозитория ОС, то местоположение файла будет /etc/nginx/nginx.conf.
$ sudo nano /etc/nginx/conf.d/default.conf
Введите следующий код внутри блока сервера перед последней закрывающей фигурной скобкой.
# Включить модуль stub_status
location /stub_status {
stub_status;
allow 127.0.0.1; #разрешить только запросы с localhost
deny all; #отказать всем другим хостам
}
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Проверьте конфигурацию Nginx.
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Перезапустите сервер Nginx.
$ sudo systemctl restart nginx
Перезапустите сервис Netdata.
$ sudo systemctl restart netdata
Вы должны увидеть детали соединения Nginx на вашей панели управления Netdata.

Мониторинг логов Nginx
Netdata также может мониторить журналы доступа Nginx. Для этого перейдите в директорию Netdata.
$ cd /etc/netdata
Выполните следующую команду, чтобы сгенерировать файл конфигурации для мониторинга журналов доступа.
$ sudo ./edit-config python.d/web_log.conf
Прокрутите вниз до конца файла и найдите следующий раздел.
# -------------------------------------------
# nginx log on various distros
# debian, arch
nginx_log:
name: 'nginx'
path: '/var/log/nginx/access.log'
# gentoo
nginx_log2:
name: 'nginx_site'
path: '/var/log/nginx/localhost.access_log'
Измените путь для мониторинга соответствующих файлов журналов. Вы можете добавить столько разделов, сколько необходимо для мониторинга множества хостов и их файлов журналов доступа. Наш файл конфигурации выглядит следующим образом.
# -------------------------------------------
# nginx log on various distros
# debian, arch
nginx_log:
name: 'nginx'
path: '/var/log/nginx/access.log'
nginx_log2:
name: 'nginx_site1'
path: '/var/log/nginx/site1.access_log'
nginx_log3:
name: 'nginx_site2'
path: '/var/log/nginx/site2.access_log'
nginx_log4:
name: 'nginx_site3'
path: '/var/log/nginx/site3.access_log'
Сохраните и выйдите из редактора.
Чтобы получить доступ к файлам журналов, Netdata нужны разрешения для доступа к директории. По умолчанию системная группа adm имеет разрешение на доступ к файлам журналов. Чтобы предоставить Netdata доступ, нам нужно добавить пользователя netdata в группу adm.
$ sudo usermod -aG adm netdata
Перезапустите Nginx и сервис Netdata.
$ sudo systemctl restart nginx netdata
Перезагрузите панель управления Netdata, чтобы просмотреть данные вашего файла журнала.

Шаг 11 - Настройка мониторинга MySQL/MariaDB
Мы установим MariaDB для нашего учебного пособия. Шаги остаются теми же, если вы используете сервер MySQL.
Добавьте репозиторий для MariaDB 10.6.
$ sudo nano /etc/yum.repos.d/MariaDB.repo
Вставьте в него следующий код.
# Список репозиториев MariaDB 10.6 CentOS - создан 2022-04-12 11:12 UTC
# https://mariadb.org/download/
[mariadb]
name = MariaDB
baseurl = https://download.nus.edu.sg/mirror/mariadb/yum/10.6/centos8-amd64
module_hotfixes=1
gpgkey=https://download.nus.edu.sg/mirror/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Установите MariaDB.
$ sudo dnf install MariaDB-server
Включите сервер MariaDB.
$ sudo systemctl enable mariadb
Запустите скрипт безопасной установки MySQL. Имя файла отличается в случае MariaDB.
$ sudo mariadb-secure-installation
....
Enter current password for root (enter for none): (Нажмите Enter)
....
Switch to unix_socket authentication [Y/n] Y (Введите Y и нажмите Enter)
....
Change the root password? [Y/n] Y (Введите Y и нажмите Enter)
New password:
Re-enter new password:
Password updated successfully!
....
Remove anonymous users? [Y/n] Y (Введите Y и нажмите Enter)
....
Disallow root login remotely? [Y/n] Y (Введите Y и нажмите Enter)
....
Remove test database and access to it? [Y/n] Y (Введите Y и нажмите Enter)
....
Reload privilege tables now? [Y/n] Y (Введите Y и нажмите Enter)
....
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
Откройте файл /etc/my.cnf.d/server.cnf для редактирования.
$ sudo nano /etc/my.cnf.d/server.cnf
Найдите секцию [mariadb] в файле и вставьте следующую строку, как показано ниже, чтобы включить плагин Userstats. Эта настройка работает только на MariaDB, а не на сервере MySQL.
[mariadb]
userstat = 1
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Запустите сервер MariaDB.
$ sudo systemctl start mariadb
Перезапустите сервис Netdata.
$ sudo systemctl restart netdata
Панель управления MariaDB/MySQL должна начать появляться на панели управления Netdata.

Шаг 12 - Настройка мониторинга PHP-FPM
Вы можете мониторить один или несколько экземпляров PHP-FPM с помощью Netdata. Для нашего учебного пособия мы установим PHP 8.0, а затем включим его мониторинг.
Мы установим PHP с помощью репозитория Remi. Мы уже установили репозиторий EPEL на шаге 3. Установите репозиторий Remi.
$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Проверьте доступные потоки PHP.
$ dnf module list php -y
Last metadata expiration check: 0:00:12 ago on Fri 03 Dec 2021 09:39:32 AM UTC.
Rocky Linux 8 - AppStream
Name Stream Profiles Summary
php 7.2 [d] common [d], devel, minimal PHP scripting language
php 7.3 common [d], devel, minimal PHP scripting language
php 7.4 common [d], devel, minimal PHP scripting language
Remi's Modular repository for Enterprise Linux 8 - x86_64
Name Stream Profiles Summary
php remi-7.2 common [d], devel, minimal PHP scripting language
php remi-7.3 common [d], devel, minimal PHP scripting language
php remi-7.4 common [d], devel, minimal PHP scripting language
php remi-8.0 common [d], devel, minimal PHP scripting language
php remi-8.1 common [d], devel, minimal PHP scripting language
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Версия по умолчанию — 7.2. Включите репозиторий PHP 8.0 Remi.
$ sudo dnf module reset php -y
$ sudo dnf module enable php:remi-8.0
Затем установите PHP и его расширения, необходимые для Firefly III. Пакет php содержит несколько зависимостей, которые требуются Firefly III, поэтому убедитесь, что вы их включили.
$ sudo dnf install php php-fpm php-mbstring php-xml php-curl php-mysqlnd php-zip php-intl php-bcmath php-gd php-ldap php-cli
Проверьте установку.
$ php --version
PHP 8.0.16 (cli) (built: Feb 15 2022 21:34:32) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.16, Copyright (c) Zend Technologies
with Zend OPcache v8.0.16, Copyright (c), by Zend Technologies
Настройка PHP
Откройте файл /etc/php-fpm.d/www.conf.
$ sudo nano /etc/php-fpm.d/www.conf
Нам нужно установить Unix-пользователя/группу процессов PHP на nginx. Найдите строки user=www-data и group=www-data в файле и измените их на nginx.
...
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
...
Прокрутите вниз по файлу, чтобы найти опцию ;pm.status_path = /status. Уберите комментарий с этой строки, удалив точку с запятой перед ней, как показано ниже.
; Note: There is a real-time FPM status monitoring sample web page available
; It's available in: @EXPANDED_DATADIR@/fpm/status.html
;
; Note: The value must start with a leading slash (/). The value can be
; anything, but it may not be a good idea to use the .php extension or it
; may conflict with a real PHP file.
; Default Value: not set
pm.status_path = /status
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Включите и запустите сервис PHP.
$ sudo systemctl enable php-fpm --now
Добавление настроек PHP в Nginx
Откройте файл конфигурации по умолчанию Nginx /etc/nginx/conf.d/default.conf для редактирования.
$ sudo nano /etc/nginx/conf.d/default.conf
Введите следующий код внутри блока сервера перед последней закрывающей фигурной скобкой.
# определите мониторинг PHP-FPM
location ~ ^/(status|ping)$ {
allow 127.0.0.1;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_pass unix:/run/php-fpm/.sock; # Зависит от версии PHP и дистрибутива ОС
}
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Проверьте конфигурацию Nginx.
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Перезапустите сервер Nginx.
$ sudo systemctl restart nginx
Перезапустите сервис Netdata.
$ sudo systemctl restart netdata
Перезагрузите панель управления Netdata, и вы должны увидеть статистику PHP-FPM.

Шаг 13 - Настройка мониторинга движка Docker и контейнеров
Netdata может мониторить как движок Docker, так и контейнеры Docker. Он также может мониторить приложения, работающие внутри этих контейнеров, но мы не будем охватывать это в этом учебном пособии.
Сначала давайте установим Docker.
$ sudo dnf install yum-utils
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
$ sudo dnf install docker-ce docker-ce-cli containerd.io
Включите и запустите сервис Docker.
$ sudo systemctl enable docker --now
Чтобы мониторить движок Docker, вам нужно включить функцию метрик Docker.
Создайте и откройте файл /etc/docker/daemon.json для редактирования.
$ sudo nano /etc/docker/daemon.json
Вставьте в него следующий код.
{
"metrics-addr" : "127.0.0.1:9323",
"experimental" : true
}
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Перезапустите сервисы Netdata и Docker.
$ sudo systemctl restart docker netdata
Загрузите панель управления Netdata снова, и вы сможете увидеть статистику Docker.

Вы увидите еще одну запись с названием Prometheus Metrics на вашей панели управления, потому что опция метрик была создана для панели управления Prometheus.

Следующий шаг — мониторинг контейнера Docker. Netdata использует контрольные группы, называемые cgroups, для мониторинга контейнеров Docker. Контрольные группы — это функция Linux, которая ограничивает и отслеживает использование ресурсов коллекцией процессов, в данном случае контейнеров. Если у вас есть работающие контейнеры Docker, когда вы устанавливаете Netdata, они автоматически отслеживаются. Однако если вы запускаете контейнер после установки Netdata, вам нужно будет перезапустить его.
Запустите тестовый контейнер.
$ docker container run -d nginx
Проверьте статус контейнера.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
938b2cf30927 nginx "/docker-entrypoint.…" 3 seconds ago Up 2 seconds 80/tcp pensive_lovelace
Имя контейнера — tender_murdock, как показано. Поскольку контейнер был запущен после установки Netdata, перезапустите сервис.
$ sudo systemctl restart netdata
Загрузите панель управления, и вы должны увидеть статистику контейнера.

Заключение
На этом наше учебное пособие по установке и использованию системы мониторинга Netdata для мониторинга различных приложений, таких как Nginx, MySQL, PHP-FPM и Docker на сервере Rocky Linux, завершено. Если у вас есть какие-либо вопросы, оставьте их в комментариях ниже.
Get new posts in your inbox
No spam. Unsubscribe anytime.