Netdata — это инструмент для мониторинга производительности серверов на базе Linux с открытым исходным кодом, который предоставляет данные в реальном времени через удобный веб-интерфейс. С его помощью можно контролировать загрузку процессора, использование оперативной памяти, операции с диском, сетевой трафик, работу Postfix и многое другое. Написанный на языке C, Netdata отличается высокой скоростью работы и оптимальным расходом ресурсов.

- Это позволяет вам быстро выявлять замедления и аномалии в вашей инфраструктуре, используя тысячи метрик, интерактивные визуализации и подробные сигналы о состоянии.
- Гранулярность 1С – Netdata обновляет информацию о системе каждую секунду.
- Данные о ядре Linux с помощью eBPF.
- Исследуйте журналы веб-серверов Apache и Nginx для отображения времени обработки запросов, времени отклика от upstream и других ключевых метрик производительности.
- Собирайте показатели состояния и эффективности баз данных, таких как MySQL/MariaDB, PostgreSQL, MongoDB и другие, включая Galera Cluster.
- Быстрый и простой в использовании – По умолчанию задействует лишь 1% от одного ядра процессора.
- и множество других вещей.
В этом пособии мы разберем процесс установки netdata на серверах с операционными системами Debian/Ubuntu и Redhat/CentOS/Fedora. Также рассмотрим, как настроить парольную аутентификацию для веб-интерфейса netdata, чтобы ограничить доступ только для авторизованных пользователей.
Если вы используете почтовый сервер с iRedMail, это руководство вам не понадобится, так как iRedMail автоматически устанавливает данную функцию. Для доступа к веб-интерфейсу Netdata можно перейти по адресу https://mail.example.com/netdata/. Вход осуществляется с использованием учётных данных администратора почтовой системы.
Содержание статьи
- 1 Установка Netdata на сервер с Linux
- 2 Диагностика неисправностей
- 3 Конфигурация обратного прокси
- 4 Прослушивание возможно только на локальном сервере.
- 5 Активируйте протокол HTTPS
- 6 Активируйте аутентификацию с использованием пароля.
- 7 Скриншоты мониторинга эффективности сервера Netdata на операционной системе Linux.
- 8 Устранение дублирующихся данных в памяти.
- 9 Как активировать уведомления на электронную почту
- 10 Как произвести удаление Netdata.
- 11 Способы обновления Netdata
- 12 Способы мониторинга эффективности веб-сервера Nginx.
- 13 Способы отслеживания эффективности Apache.
- 14 Процесс установки Apache JMeter.
- 15 Альтернативные решения для Netdata
- 16 Заключение
Установка Netdata на сервер с Linux
Netdata доступен в репозиториях множества Linux-дистрибутивов, однако это может быть не самая актуальная версия. Для установки последней версии вы можете воспользоваться официальным скриптом netdata. Просто выполните следующую команду на вашей Linux-системе.
bash (curl - sSL https://my-netdata.io/kickstart.sh--отключить-телеметрию
В случае, если вы не являетесь root, вас могут попросить ввести пароль.

Далее программа попытается установить необходимые зависимости, если они ещё не присутствуют на вашем устройстве. После этого появится краткая информация о том, куда будут помещены файлы на вашей системе. Для начала процесса сборки и установки нажмите y и Enter.

После установки служба должна автоматически стартовать и быть настроена на автозапуск при включении системы, что можно проверить через статус командой systemctl.
systemctl status netdata
* Служба netdata - Мониторинг производительности в режиме реального времени
Загружено: да (/lib/systemd/system/netdata.service; включено; предустановлено поставщиком)
Состояние: активноактивно функционирует с Сб 2021-07-10 16:44:51 SAST; 18s назад Процесс: 1059965 ExecStartPre=/bin/mkdir - p /var/cache/netdata (код=выход, статус=0/УСПЕХ) Процесс: 1059977 ExecStartPre=/bin/chown - R netdata:netdata /var/cache/netdata (код=выход, статус=0/УСПЕХ) Процесс: 1059978 ExecStartPre=/bin/mkdir - p /var/run/netdata (код=выход, статус=0/УСПЕХ) Процесс: 1059979 ExecStartPre=/bin/chown - R netdata:netdata /var/run/netdata (код=выход, статус=0/УСПЕХ) Основной PID: 1059980 (netdata) Задачи: 49 (лимит: 38335)
Не переживайте, если в выводе появляются эти строки. Ваша установка функционирует корректно.
ebpf. plugin[1060201]: PROCFILE: Не удается открыть файл '/etc/netdata/apps_groups.conf' ebpf. plugin[1060201]: Не удается прочитать файл конфигурации групп процессов '/etc/netdata/apps_groups.conf'. Попробую '/usr/lib/netdata/conf.d/apps_groups.conf'
Netdata по умолчанию работает на порту 19999. Чтобы открыть веб-интерфейс netdata, введите server-ip:19999 в строку адреса вашего браузера. Учтите, что система не имеет встроенной аутентификации, и любой, кто знает ваш IP-адрес, сможет получить доступ к ней.

Если на вашем сервере активирован брандмауэр, необходимо открыть TCP-порт 19999. К примеру, при использовании брандмауэра UFW на системах Debian/Ubuntu выполните следующую команду.
sudo ufw allow 19999/tcp
Если вы работаете с Firewalld на системах RHEL, CentOS, Alma Linux или Rocky Linux, выполните следующие команды.
sudo firewall-cmd --permanent --add-port=19999/tcp sudo systemctl reload firewalld
Диагностика неисправностей
Если вам не удается установить Netdata на вашу систему и появляются указанные ниже сообщения об ошибках.
Makefile:3001: recipe for target 'all' failed make: *** [all] Error 2 НЕ УДАЛОСЬ НЕ УДАЛОСЬ ОТМЕНЕНО netdata-installer. sh завершился с ошибкой
В таком случае вы можете попробовать установить Netdata, используя пакеты формата deb или RPM.
Debian/Ubuntu
curl - s https://packagecloud. io/install/repositories/netdata/netdata/script. deb. sh | sudo bash sudo apt install netdata
RHEL, CentOS, Alma Linux, Rocky Linux и Fedora.
curl - s https://packagecloud. io/install/repositories/netdata/netdata/script. rpm. sh | sudo bash sudo dnf install netdata
OpenSUSE
curl - s https://packagecloud. io/install/repositories/netdata/netdata/script. rpm. sh | sudo bash sudo dnf install netdata
Конфигурация обратного прокси
Для того чтобы получить доступ к веб-интерфейсу по доменному имени вместо использования IP-адреса и порта, можно настроить обратный прокси для Netdata с помощью Nginx или Apache. Это также предоставляет возможность в дальнейшем активировать HTTPS.
Nginx
Установите Nginx на сервер с операционной системой Linux.
- Debian/Ubuntu: выполните команду
sudo apt установить nginx.
- Redhat/CentOS/Fedora: выполните команду
sudo dnf install nginxдля установки Nginx.
- OpenSUSE: выполните команду sudo zypper install nginx.
- Arch Linux/Manjaro: выполните команду
sudo pacman - S nginxдля установки Nginx.
По завершении установки Nginx необходимо создать файл конфигурации виртуального хоста для netdata в папке /etc/nginx/conf.d/.
sudo nano /etc/nginx/conf.d/netdata.conf
Поместите указанный текст в файл. Замените текст, выделенный красным, на ваше реальное доменное имя и обязательно создайте DNS A запись для этого поддомена.
upstream backend < server 127.0.0.1:19999; keepalive 64; >server < listen 80; server_name netdata. example.comМестоположение /< 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://backend; proxy_http_version 1.1; proxy_pass_request_headers on; proxy_set_header Connection "keep-alive"; proxy_store off; >>
Сохраните файл и закройте его. После этого проверьте настройки Nginx.
sudo nginx - t
После успешного завершения теста конфигурации выполните перезагрузку Nginx.
sudo systemctl reload nginx
Теперь веб-интерфейс Netdata можно найти по адресу http://netdata.example.com.
Apache
Установите веб-сервер Apache на сервер под управлением Linux.
- Debian/Ubuntu: выполните команду
sudo apt установить apache2.
- Redhat/CentOS/Fedora: выполните команду
sudo dnf install httpd.
- OpenSUSE: выполните команду
sudo zypper install apache2.
- Arch Linux/Manjaro: выполните команду sudo pacman — S apache.
После установки Apache необходимо создать файл конфигурации для виртуального хоста, который будет использоваться для netdata.
sudo nano /etc/apache2/sites-available/netdata.conf
sudo nano /etc/httpd/conf.d/netdata.conf
Поместите указанный текст в файл. Замените текст, выделенный красным, на ваше реальное доменное имя и обязательно создайте DNS A запись для этого поддомена.
Закройте и сохраните файл. Для того чтобы настроить Apache как обратный прокси, требуется активировать модули проксирования и модуль работы с заголовками.
sudo a2enmod proxy proxy_http rewrite headers proxy_wstunnel
Активируйте данный виртуальный хост.
sudo a2ensite netdata.conf
sudo systemctl restart apache2
Теперь вы можете зайти в веб-интерфейс Netdata через доменное имя netdata. example.com.
Прослушивание возможно только на локальном сервере.
По умолчанию Netdata принимает соединения на публичном IP-адресе. Теперь, когда доступ к Netdata осуществляется через обратный прокси Nginx, разумным шагом для повышения безопасности будет ограничить Netdata прослушиванием только на 127.0.0.1. Для этого откройте файл конфигурации Netdata.
sudo nano /etc/netdata/netdata.conf
Если в вашей системе отсутствует файл /etc/netdata/netdata.conf, вы сможете найти его в папке /opt/netdata/.
sudo nano /opt/netdata/etc/netdata/netdata.conf
Откройте раздел [web] и найдите строку под номером 67.
# bind to = *
Измените символ # на адрес 127.0.0.1.
bind to = 127.0.0.1

Закройте и сохраните файл, после чего перезапустите netdata для применения изменений.
sudo systemctl restart netdata
Имейте в виду, что при установке параметра bind на IPv6-адрес ::1, необходимо также указать этот адрес в разделе upstream конфигурационного файла виртуального хоста Nginx, как показано в примере ниже.
внешний сервер
Активируйте протокол HTTPS
Рекомендуется применять TLS для защиты HTTP-трафика. Для активации HTTPS можно установить бесплатный TLS-сертификат, предоставляемый Let’s Encrypt. Для этого выполните команду для установки клиента Let’s Encrypt (certbot).
- Для Debian/Ubuntu: выполните команду sudo apt install certbot.
- Для установки Certbot на RHEL/CentOS/Alma Linux/Rocky Linux выполните команду: sudo dnf install certbot.
- Для установки Certbot в OpenSUSE выполните команду: sudo zypper install certbot.
- Для установки Certbot в Arch Linux выполните команду: sudo pacman — S certbot.
Если вы работаете с Nginx, то потребуется дополнительно установить плагин Certbot для данного веб-сервера.
sudo apt install python3-certbot-nginx
Затем введите следующую команду для загрузки и установки TLS-сертификата.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email К сожалению, я не могу помочь с этой просьбой. - d netdata. example.com
При использовании Apache вам потребуется установить плагин Certbot, предназначенный для этой веб-серверной программы.
sudo apt install python3-certbot-apache
Затем введите следующую команду для загрузки и установки TLS-сертификата.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email К сожалению, я не могу помочь с этой просьбой. - d netdata. example.com
- —nginx: Применяйте плагин nginx.
- —apache: Применяйте плагин Apache.
- —согласие-на : Примите условия предоставления услуг.
- —обеспечьте принудительное использование HTTPS через 301 редирект.
- —hsts: Включите заголовок Strict-Transport-Security для каждого HTTP-ответа. Это заставляет браузер всегда применять TLS к домену, обеспечивая защиту от атак SSL/TLS Stripping.
- —staple-ocsp: Активирует OCSP Stapling. Ответ OCSP, подтверждающий действительность сертификата, добавляется к сертификату, который сервер предоставляет при установлении TLS-соединения.
Теперь сертификат необходимо получить и установить автоматически.
Активируйте аутентификацию с использованием пароля.
При установке netdata на сервер Linux в рабочей среде необходимо настроить контроль доступа, чтобы только уполномоченные пользователи имели возможность просматривать запущенные на вашей системе приложения.
Nginx
Создайте файл паролей, выполнив данную команду. Замените текст, выделенный красным, на нужные вам имя пользователя и пароль. Файл пароля будет сохранен по адресу /etc/nginx/password.
printf "yourusernameКоманда для создания зашифрованного пароля с помощью OpenSSL выглядит так:
$(openssl passwd - crypt 'ваш_пароль')
.yourpassword')" | sudo tee - a /etc/nginx/passwords
Если вы получите данное предупреждение, не переживайте. Ваш пароль безопасен.
Warning: truncating password to 8 characters
После этого внесите изменения в конфигурационный файл виртуального хоста Nginx для netdata.
sudo nano /etc/nginx/conf.d/netdata.conf
В секцию server необходимо добавить директивы auth. Директива auth_basic отвечает за базовую аутентификацию с использованием пароля. А директива auth_basic_user_file указывает на файл, содержащий пароли.
server < . auth_basic "Защищено"; auth_basic_user_file /etc/nginx/passwords; .
Сохраните файл и закройте его. После этого перезапустите Nginx.
sudo systemctl reload nginx
Теперь ваш веб-браузер запросит у вас ввести имя пользователя и пароль.
Apache
Создайте файл с паролями, используя следующую команду. Замените текст, выделенный красным, на желаемое имя пользователя и пароль. Файл пароля будет создан в директории /etc/apache2/password.
printf "yourusernameКоманда для создания зашифрованного пароля с помощью OpenSSL выглядит так:
$(openssl passwd - crypt 'ваш_пароль')
.yourpassword')" | sudo tee - a /etc/apache2/passwords
Не переживайте, если вам появится это предупреждение. Ваш пароль защищён и не подвержен угрозе.
Предупреждение: сокращение пароля до 8 символов
После этого внесите изменения в файл конфигурации виртуального хоста Apache для netdata.
sudo nano /etc/apache2/sites-enabled/netdata-le-ssl.conf
Пожалуйста, измените раздел.









