Поиск по сайту:

Как установить программное обеспечение для мониторинга Netdata на AlmaLinux 9


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

Netdata может собирать метрики из различных операционных систем, таких как Linux, Unix, Windows и macOS. Кроме того, он поддерживает контейнерные технологии, такие как Docker и Kubernetes.

Следуйте нашему руководству по установке Netdata с Nginx в качестве обратного прокси-сервера на сервере AlmaLinux 9.

Предварительные условия

Для начала убедитесь, что у вас есть следующее:

  • Сервер AlmaLinux 9.
  • Пользователь без полномочий root с правами администратора.
  • SELinux с разрешающим режимом.

Настройка репозиториев

Перед началом установки вы добавите и включите несколько репозиториев для Netdata. Вы добавите репозитории EPEL и Netdata, а затем включите репозиторий RHEL crb (Code Ready Build) на своем сервере AlmaLinux.

Для начала выполните следующую команду, чтобы установить пакет dnf-plugins-core.

sudo dnf install dnf-plugins-core -y

Теперь выполните приведенную ниже команду, чтобы добавить репозиторий EPEL и включить репозиторий CRB в вашей системе. Введите y, когда будет предложено продолжить.

sudo dnf install epel-release
sudo dnf config-manager --set-enabled crb

Затем выполните приведенную ниже команду, чтобы добавить репозиторий Netdata в вашу систему. В этом случае вы будете использовать репозиторий Netdata 2.2.

sudo rpm -ivh https://repo.netdata.cloud/repos/stable/el/9/x86_64/netdata-repo-2-2.noarch.rpm

Закончив, проверьте доступные репозитории на вашем компьютере с AlmaLinux, используя команду ниже.

sudo dnf repolist

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

Загрузка и установка Netdata

Теперь, когда вы настроили репозитории, приступим к установке Netdata.

В этом примере вы установите Netdata с дополнительными плагинами для мониторинга вашей системы и приложений.

Выполните следующую команду dnf, чтобы установить Netdata. Введите y, чтобы принять ключ GPG и продолжить установку, затем дождитесь ее завершения.

Возможно, вам не понадобятся все эти плагины Netdata, обязательно откорректируйте установку пакета.

sudo dnf install netdata netdata-plugin-{apps,chartsd,cups,ebpf,go,pythond,perf,freeipmi,slabinfo,systemd-journal}

Теперь, после установки Netdata, выполните следующую команду, чтобы запустить и включить службу netdata.

sudo systemctl start netdata
sudo systemctl enable netdata

Затем проверьте службу netdata, выполнив команду ниже.

sudo systemctl status netdata

Если установка прошла успешно, служба netdata должна быть активной (работающей), как показано ниже:

Наконец, откройте порт Netdata по умолчанию 19999 с помощью следующей команды.

В этом примере вы временно добавите порт 19999, поскольку вы настроите Nginx в качестве обратного прокси-сервера. Мы сделаем это в следующем разделе.

sudo firewall-cmd --add-port=19999/tcp

Посетите IP-адрес вашего сервера, а затем порт 19999 (т. е. http://192.168.5.50:19999), используя предпочитаемый вами веб-браузер.

Если все пойдет хорошо, вы должны увидеть панель мониторинга Netdata, как показано ниже.

Настройка сетевых данных

После установки Netdata вы настроите Netdata для работы в sock-файле UNIX. Это позволит вам настроить Nginx в качестве обратного прокси-сервера для Netdata, что вы и сделаете на следующем шаге.

Чтобы начать настройку Netdata, выполните следующую команду, чтобы загрузить конфигурацию Netdata в /etc/netdata /netdata.conf.

wget -O /etc/netdata/netdata.conf http://localhost:19999/netdata.conf

Перейдите в каталог /etc/netdata и откройте конфигурацию по умолчанию netdata.conf с помощью приведенной ниже команды.

cd /etc/netdata
sudo ./edit-config netdata.conf

Найдите раздел [web] и раскомментируйте параметр привязать к. Затем измените параметр привязки по умолчанию на UNIX-сокет unix:/var/run/netdata/netdata.sock.

[web]
    bind to = unix:/var/run/netdata/netdata.sock

Сохраните и закройте файл, когда закончите.

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

sudo systemctl restart netdata

На этом этапе Netdata должна работать как сокет UNIX по адресу unix:/var/run/netdata/netdata.sock.

Проверьте сокет Netdata UNIX, используя приведенную ниже команду ss.

ss -pl | grep netdata.sock

Если ваша конфигурация прошла успешно, вы должны получить следующее:

Установка Nginx в качестве обратного прокси

На этом этапе вы установили Netdata на сервер AlmaLinux 9. На следующем шаге вы установите и настроите Nginx в качестве обратного прокси-сервера для Netdata.

Также для этого вам может понадобиться доменное имя, вы можете использовать поддомен или локальное доменное имя.

Установка Nginx

Для начала установите Nginx, используя следующую команду dnf. Введите y, чтобы продолжить установку.

sudo dnf install nginx

После установки Nginx выполните следующую команду, чтобы создать каталог блоков сервера /etc/nginx/server-blocks и откройте конфигурацию Nginx /etc/nginx/nginx.conf.

mkdir -p /etc/nginx/server-blocks
sudo nano /etc/nginx/nginx.conf

В раздел http {... добавьте параметр include... ниже.

http {
    ...
    include /etc/nginx/server-blocks/*.conf;
}

Сохраните и закройте файл, когда закончите.

Добавление конфигурации блока сервера

Затем создайте новый блок сервера Nginx для обратного прокси-сервера Netdata /etc/nginx/server-blocks/netdata.conf, используя следующую команду редактора nano.

sudo nano /etc/nginx/server-blocks/netdata.conf

Вставьте следующую конфигурацию и обязательно укажите свое доменное имя в параметре server_name. В данном случае мы будем использовать домен netdata.hwdomain.io.

Кроме того, вы защитите Netdata с помощью модуля auth_basic с помощью файла /etc/nginx/.passwords.

upstream backend {
    # the Netdata server
    server unix:/var/run/netdata/netdata.sock;
    keepalive 1024;
}
server {
    # nginx listens to this
    listen 80;
    # the virtual host name of this
    server_name netdata.hwdomain.io;
    auth_basic "Protected";
    auth_basic_user_file /etc/nginx/.passwords;
    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://backend;
        proxy_http_version 1.1;
        proxy_pass_request_headers on;
        proxy_set_header Connection "keep-alive";
        proxy_store off;
    }
}

По завершении сохраните файл и выйдите из редактора.

Теперь выполните команду ниже, чтобы сгенерировать файл паролей /etc/nginx/.passwords.

Обязательно замените пользователя alice на свое имя пользователя. Затем введите свой пароль и повторите.

printf "alice:$(openssl passwd -apr1)" > /etc/nginx/.passwords

Теперь выполните приведенную ниже команду, чтобы проверить синтаксис Nginx. Если ошибок нет, вы должны получить вывод: «Синтаксис в порядке – проверка прошла успешно».

sudo nginx -t

Затем запустите и включите Nginx, используя следующую команду.

sudo systemctl start nginx
sudo systemctl enable nginx

После запуска Nginx проверьте его, выполнив команду ниже.

sudo systemctl status nginx

Если все пойдет хорошо, вы должны получить вывод active (running), подтверждающий, что Nginx работает.

Открытые порты HTTP и HTTPS

Откройте порты HTTP и HTTPS на вашем сервере AlmaLinux, чтобы разрешить доступ к вашей установке Netdata. Для этого выполните следующую команду.

sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload

Теперь проверьте правила firewalld, используя следующую команду.

sudo firewall-cmd --list-all

Убедитесь, что в списках служб списка firewalld доступны службы HTTP и HTTPS. Если нет, повторите предыдущую команду.

Наконец, посетите свое доменное имя Netdata, например http://netdata.hwdomain.io, используя предпочитаемый вами веб-браузер.

Введите свой пользователь и пароль, когда будет предложено выполнить базовую аутентификацию Nginx.

Если установка Nginx прошла успешно, вы должны увидеть панель мониторинга Netdata, подобную следующей:

Защита сетевых данных с помощью сертификатов SSL/TLS

После настройки Nginx вы создадите сертификаты SSL/TLS для защиты вашей установки.

Если вы используете локальное доменное имя, вы можете создавать самоподписанные сертификаты. Но если вы используете настоящее доменное имя, сгенерируйте сертификаты SSL/TLS, выполнив следующие действия:

Выполните следующую команду, чтобы установить плагин Certbot и Certbot Nginx в вашу систему. Введите y, чтобы продолжить установку.

sudo dnf install certbot python3-certbot-nginx -y

Теперь запустите приведенную ниже команду certbot, чтобы сгенерировать сертификаты SSL/TLS из Letsencrypt. Обязательно измените имя домена и адрес электронной почты перед запуском этой команды.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email  -d netdata.hwdomain.io

После завершения процесса ваши Netdata должны быть защищены с помощью HTTPS. Вы создали сертификаты SSL/TLS из Letsencrypt и внедрили HTTPS на своем серверном блоке Nginx с помощью плагина Certbot Nginx.

Пример: мониторинг Nginx с помощью Netdata

Если вы до сих пор следили за этим, вы завершили установку Netdata с Nginx в качестве обратного прокси-сервера и настроили HTTPS. Теперь вы изучите базовый мониторинг с помощью Netdata.

В этом случае вы настроите мониторинг веб-сервера Nginx через Netdata, чтобы иметь более полное представление о том, как отслеживать другие службы и приложения.

Включить Nginx stub_status

Создайте новую конфигурацию /etc/nginx/default.d/stub.conf, используя следующую команду редактора nano.

sudo nano /etc/nginx/default.d/stub.conf

Вставьте следующую конфигурацию, чтобы включить модуль Nginx stub_status. Это откроет статус-заглушку Nginx по URL-адресу /basic_status.

location /basic_status {
    stub_status;
    server_tokens on;
}

Сохраните и закройте файл, когда закончите.

Затем выполните следующую команду, чтобы проверить синтаксис Nginx. Затем перезапустите Nginx, чтобы изменения вступили в силу.

sudo nginx -t
sudo systemctl restart nginx

Теперь запустите команду Curl ниже, чтобы проверить модуль Nginx stub_status.

curl http://localhost/basic_status

Если ваша конфигурация прошла успешно, вы должны увидеть статус вашего веб-сервера Nginx.

Включить плагин Netdata для мониторинга Nginx

Перейдите в каталог /etc/netdata и откройте конфигурацию плагина для мониторинга Nginx. Плагин Netdata для мониторинга Nginx является частью плагинов Go. Чтобы получить дополнительную информацию, посетите список плагинов Netdata.

cd /etc/netdata
sudo ./edit-config go.d/nginx.conf

Убедитесь, что URL-адрес конфигурации: http://127.0.0.1/stub_status доступен или вы можете создать его вручную. Это позволит Netdata отслеживать Nginx через URL: http://127.0.0.1/stub_status.

jobs:
  - name: local
    url: http://127.0.0.1/stub_status

Сохраните и закройте файл, когда закончите.

Затем выполните следующую команду, чтобы перезапустить Netdata и применить изменения.

sudo systemctl restart netdata

Теперь вы можете протестировать или нагрузить свой веб-сервер Nginx, используя следующую команду. Ab или Apache Benchmark является частью httpd-tools, обязательно установите его на свой компьютер.

ab -n 50000 -c 500 http://localhost/

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

Заключение

Подводя итоги, вы завершили установку решения для мониторинга Netdata на сервере AlmaLinux 9. Вы установили Netdata с Nginx в качестве обратного прокси-сервера и защитили Netdata с помощью сертификатов SSL/TLS.

Кроме того, вы также изучили основы использования плагина Netdata для мониторинга ваших приложений.

> Отсюда проверьте список доступных Netdata для мониторинга ваших приложений.

Статьи по данной тематике: