Как установить инструмент мониторинга Netdata на Debian 12

Netdata – это инструмент с открытым исходным кодом для сбора метрик как посекундно, так и в режиме реального времени. К ним относятся, в частности, активность чтения и записи на диск, использование процессора, пропускная способность и т.д. Netdata предназначена для работы на физических серверах или в контейнерах. Netdata также предлагает мониторинг производительности и работоспособности в реальном времени с помощью простых в интерпретации графиков. В этом руководстве мы покажем вам, как установить Netdata на Debian 12.

Шаг 1. Вход на VPS

Сначала нам нужно войти на наш сервер Debian 12 через SSH:

ssh root@IP_Address -p Port_number

Замените «root» на пользователя с правами sudo или root, если это необходимо. Кроме того, замените «IP_Address» и «Port_Number» на соответствующие IP-адрес и номер порта SSH вашего сервера. Далее, давайте убедимся, что мы находимся на Debian 12. Это можно сделать следующим образом:

lsb_release -a

В результате выполнения команды должно получиться следующее:

No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 12 (bookworm)
Release: 12
Codename: bookworm

Теперь, когда мы вошли в систему и подтвердили, что находимся на Debian 12, приступим к установке.

Шаг 2. Установка зависимостей

Установка Netdata требует наличия некоторых пакетов. Поэтому, прежде чем приступить к установке, установим все необходимые пакеты на нашу систему Debian 12. Для этого выполним приведенную ниже команду.

apt install dirmngr gnupg gnupg-l10n gnupg-utils gpg gpg-agent gpg-wks-client gpg-wks-server gpgconf gpgsm libassuan0 libksba8 libnpth0 pinentry-curses

Шаг 3. Установка Netdata

Существует несколько способов установки Netdata на систему Debian 12. Мы можем установить её с помощью собственных DEB-пакетов из их репозитория, в контейнере docker или использовать статический бинарный Linux-пакет. Но в этом руководстве мы покажем, как установить Netdata с помощью сценария kickstart.sh. Это рекомендуемый способ установки Netdata. Чтобы установить ее таким образом, просто выполните следующую команду и при появлении запроса ответьте на вопросы «Да».

wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel

Опция -stable-channel означает, что мы собираемся установить стабильную версию netdata. Если не использовать эту опцию, то сценарий установки установит ночную версию, которая может быть нестабильной или содержать больше ошибок.

По окончании установки вы должны увидеть сообщение об успешном завершении установки следующего содержания:

Successfully installed the Netdata Agent.
Official documentation can be found online at https://learn.netdata.cloud/docs/.
Looking to monitor all of your infrastructure with Netdata? Check out Netdata Cloud at https://app.netdata.cloud.
Join our community and connect with us on:
  - GitHub: https://github.com/netdata/netdata/discussions
  - Discord: https://discord.gg/5ygS846fR6
  - Our community forums: https://community.netdata.cloud/
[/root]# rm -rf /tmp/netdata-kickstart-alOGF95w3O 
 OK

В системе Debian Netdata автоматически запускается при установке и настроена на запуск после перезагрузки. Давайте проверим статус службы.

systemctl status netdata

Вы увидите сообщение, подобное этому:

● netdata.service - Real time performance monitoring
     Loaded: loaded (/lib/systemd/system/netdata.service; enabled; preset: enabled)
     Active: active (running) since Fri 2023-09-15 05:06:31 CDT; 59s ago
   Main PID: 3802 (netdata)
      Tasks: 88 (limit: 2306)
     Memory: 139.9M
        CPU: 6.033s
     CGroup: /system.slice/netdata.service
             ├─3802 /usr/sbin/netdata -D -P /var/run/netdata/netdata.pid
             ├─3839 /usr/sbin/netdata --special-spawn-server
             ├─4154 bash /usr/libexec/netdata/plugins.d/tc-qos-helper.sh 1
             ├─4156 /usr/libexec/netdata/plugins.d/nfacct.plugin 1
             ├─4166 /usr/libexec/netdata/plugins.d/ebpf.plugin 1
             ├─4169 /usr/bin/python3 /usr/libexec/netdata/plugins.d/python.d.plugin 1
             ├─4173 /usr/libexec/netdata/plugins.d/systemd-journal.plugin 1
             ├─4182 /usr/libexec/netdata/plugins.d/go.d.plugin 1
             ├─4189 /usr/libexec/netdata/plugins.d/debugfs.plugin 1
             └─4199 /usr/libexec/netdata/plugins.d/apps.plugin 1
Sep 15 05:06:32 debian12.rosehosting.com ebpf.plugin[4166]: set name of thread 4230 to EBPF FD
Sep 15 05:06:32 debian12.rosehosting.com ebpf.plugin[4166]: thread created with task id 4231
Sep 15 05:06:32 debian12.rosehosting.com ebpf.plugin[4166]: set name of thread 4231 to EBPF SOFTIRQ
Sep 15 05:06:32 debian12.rosehosting.com ebpf.plugin[4166]: thread created with task id 4232
Sep 15 05:06:32 debian12.rosehosting.com ebpf.plugin[4166]: set name of thread 4232 to EBPF OOMKILL
Sep 15 05:06:32 debian12.rosehosting.com ebpf.plugin[4166]: thread created with task id 4233
Sep 15 05:06:32 debian12.rosehosting.com ebpf.plugin[4166]: set name of thread 4233 to EBPF SHM
Sep 15 05:06:33 debian12.rosehosting.com apps.plugin[4199]: Using now_boottime_usec() for uptime (dt is 0 ms)
Sep 15 05:06:33 debian12.rosehosting.com debugfs.plugin[4189]: Zswap is disabled
Sep 15 05:06:33 debian12.rosehosting.com debugfs.plugin[4189]: Failed to find powercap zones.

Вот и все! Netdata запущена, и вы можете получить доступ к ней по адресу http://YOUR_SERVER_IP_ADDRESS:19999

Шаг 4. Настройка Netdata

По умолчанию Netdata прослушивает все интерфейсы вашего сервера. По соображениям безопасности рекомендуется настроить netdata на прослушивание только localhost, а для доступа к ней необходимо использовать обратный прокси. Теперь давайте продолжим.

nano /etc/netdata/netdata.conf

Добавьте эту строку в файл в раздел [global]:

bind to = 127.0.0.1

Выглядеть она должна так:

[global]
    run as user = netdata
    # default storage size - increase for longer data retention
    page cache size = 32
    dbengine multihost disk space = 256
    bind to = 127.0.0.1

Сохраните файл, затем выйдите из редактора файлов. Затем перезапустим netdata, чтобы применить сделанные изменения.

systemctl restart netdata

Теперь Netdata больше не доступна при обращении к http://YOUR_SERVER_IP_ADDRESS:19999

Шаг 5. Установка Nginx

На предыдущем шаге мы настроили Netdata на прослушивание только localhost. Поэтому для доступа к ней нам необходим веб-сервер, который будет выступать в роли обратного прокси-сервера для Netdata. Сейчас мы установим Nginx и настроим его в качестве обратного прокси-сервера.

apt install nginx

На данный момент Nginx запущен и работает. Давайте создадим блок сервера Nginx.

Затем вставьте в файл следующие слова:

nano /etc/nginx/conf.d/netdata.conf

Замените netdata.yourdomain.com на реальное имя домена или поддомена, указывающее на ваш сервер. Сохраните файл, затем выйдите и перезапустите Nginx.

systemctl restart nginx

Теперь вы должны иметь доступ к Netdata по адресу http://netdata.yourdomain.com – конечно, измените netdata.yourdomain.com на реальный домен, который вы используете для своего сервера.

Шаг 6. Настройка аутентификации по паролю через Nginx

Как видите, Netdata теперь доступна по адресу http://netdata.yourdomain.com, но все еще доступна для всех посетителей. Для того чтобы неавторизованные посетители не смогли увидеть информацию о вашем сервере через Netdata, мы можем настроить Nginx на использование HTTP-аутентификации. Таким образом, при обращении пользователей к сайту http://netdata.yourdomain.com им будет предложено ввести имя пользователя и пароль. Сначала создадим файл .htpassword. В этом файле хранятся учетные данные пользователя и пароль.

htpasswd -c /etc/nginx/.htpasswd netdata

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

New password:
Re-type new password:
Adding password for user netdata

На данный момент мы имеем „netdata“ в качестве имени пользователя и пароль, который мы набрали ранее. Обязательно сохраните копию пароля или запомните его. Далее отредактируем конфигурационный файл Nginx.

nano /etc/nginx/conf.d/netdata.conf

Добавим эти две строки внутри блока location /:

auth_basic "NetData Admin";
auth_basic_user_file /etc/nginx/.htpasswd;

Выглядеть это должно так:

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 Admin";
auth_basic_user_file /etc/nginx/.htpasswd;
    }
}

Сохраним файл, затем перезапустим Nginx.

При следующем обращении к http://netdata.yourdomain.com вам будет предложено ввести имя пользователя и пароль. После их ввода вы сможете использовать Netdata как обычно.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен www.rosehosting.com

Похожие статьи

Комментарии (0)