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

Как отслеживать производительность Ubuntu с помощью Netdata


Netdata — это бесплатный инструмент с открытым исходным кодом для мониторинга и устранения неполадок в режиме реального времени для облачных серверов, контейнеров, приложений и локальной ИТ-инфраструктуры. Он обеспечивает высокую степень детализации системных показателей в режиме реального времени, таких как производительность процессора, использование оперативной памяти и диска, а также статистика пропускной способности, и это лишь некоторые из них.

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

Передовые технологии и популярность Netdata позволили ей войти в список 100 восходящих звезд Forbes в 2020 году, что немаловажно. Фактически, на момент написания этого руководства оно получило почти 50 000 звезд Github.

Существует два способа установки Netdata. Вы можете сразу запустить автоматический скрипт в оболочке BASH. Это обновит ваши системы и инициирует установку Netdata. Альтернативно вы можете клонировать репозиторий Git Netdata и после этого выполнить автоматический сценарий. Первый метод прост и понятен, и именно на нем мы сосредоточимся в этом руководстве.

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

Поддерживаемые платформы

Netdata поддерживает следующие дистрибутивы Ubuntu LTS:

  • Убунту 20.04
  • Убунту 18.04
  • Убунту 16.04

Как установить Netdata в Ubuntu Linux

Чтобы начать установку, выполните приведенную ниже команду на своем терминале bash, чтобы загрузить и выполнить сценарий.

bash <(curl -Ss https://my-netdata.io/kickstart.sh)

В ходе выполнения скрипта происходит следующее:

  • Скрипт автоматически обнаруживает ваш дистрибутив Linux, обновляет список пакетов и устанавливает все необходимые пакеты программного обеспечения.
  • Последняя версия исходного дерева netdata загружается по пути /usr/src/netdata.git.
  • Сценарий устанавливает netdata, запуская сценарий ./netdata-installer.sh из дерева исходного кода.
  • В cron.daily внесено обновление, обеспечивающее ежедневное обновление netdata.

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

Установка занимает некоторое время, поэтому подождите около 10 минут и возвращайтесь. Наконец, вы получите результат ниже, когда скрипт завершит установку.

После установки запустите, включите и проверьте статус Netdata, как показано.

sudo systemctl start netdata
sudo systemctl enable netdata
sudo systemctl status netdata

По умолчанию Netdata прослушивает порт 19999, и это можно подтвердить с помощью команды netstat, как показано.

sudo netstat -pnltu | grep netdata

Если у вас запущен UFW, постарайтесь открыть порт 19999, поскольку это потребуется для доступа к Netdata в браузере.

sudo ufw allow 19999/tcp
sudo ufw reload

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

http://server-ip:19999/

Это то, что приветствует вас, когда вы просматриваете URL-адрес. Фактически, вы поймете, что вам не потребуется входить в систему. Все показатели системы будут отображаться, как показано.

Вы можете пролистывать различные графики, нажимая на предпочитаемые показатели на правой боковой панели информационной панели. Например, чтобы просмотреть статистику сетевых интерфейсов, нажмите кнопку «Сетевые интерфейсы».

Защита Netdata с помощью базовой аутентификации в Ubuntu

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

Имея это в виду, мы собираемся настроить базовую аутентификацию HTTP. Нам необходимо установить пакет apache2-utils, содержащий программу htpasswd, которая будет использоваться для настройки имени пользователя и пароля пользователя. Кроме того, мы установим веб-сервер Nginx, который будет действовать как обратный прокси.

Чтобы установить веб-сервер Nginx и пакет apache2-utils, выполните команду.


sudo apt install nginx apache2-utils

Установив Nginx и apache2-utils, мы создадим файл конфигурации в каталоге /etc/nginx/conf.d. Однако вы можете свободно использовать каталог sites-available, если вы используете Nginx для других целей, помимо Netdata.


sudo vim /etc/nginx/conf.d/default.conf

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

Вот вся конфигурация. Обязательно замените директивы server_ip и example.com собственным IP-адресом и именем сервера.


upstream netdata-backend {
    server 127.0.0.1:19999;
    keepalive 64;
}

server {
    listen server_ip:80;
    server_name example.com;

    auth_basic "Authentication Required";
    auth_basic_user_file netdata-access;

    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;
    }
}

Давайте разберемся с конфигурацией по разделам.

Секция 1:


upstream netdata-backend {
    server 127.0.0.1:19999;
    keepalive 64;
}

Мы указали модуль восходящего под названием netdata-backend, который ссылается на встроенный веб-сервер Netdata, используя loopback адрес 127.0.0.1< и порт 19999, который является портом по умолчанию, который прослушивает Netdata. Директива keepalive определяет максимальное количество простаивающих соединений, которые могут оставаться открытыми.

Раздел 2:


server {
    listen server_ip:80;
    server_name example.com;

    auth_basic "Authentication Required";
    auth_basic_user_file netdata-access;

Это основной раздел блока сервера Nginx. В первой строке указывается внешний IP-адрес, который Nginx должен прослушивать, когда клиенты отправляют свои запросы. Директива server_name указывает доменное имя сервера и инструктирует Nginx запускать блок сервера, когда клиенты вызывают имя домена вместо внешнего IP-адреса.

Последние две строки указывают на простую аутентификацию HTTP, которая требует от пользователя входа в систему с использованием имени пользователя и пароля. Модуль auth_basic запускает всплывающее окно с именем пользователя и паролем в браузере с надписью «Требуется аутентификация» в заголовке, которое позже можно настроить в соответствии с вашими предпочтениями.

Модуль auth_basic_user_file указывает на имя файла, который будет содержать имя пользователя и пароль пользователя, авторизованного для доступа к панели управления Netdata – в данном случае netdata-access. Мы создадим этот файл позже.

Раздел 3:

Последний раздел — это блок location, который содержится в блоке сервера. Он занимается проксированием и пересылкой входящих запросов на веб-сервер Nginx.


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;
    }

Для аутентификации мы создадим имя пользователя и пароль для пользователя с именем tecmint с помощью утилиты htpasswd и сохраним учетные данные в файле netdata-access. .


sudo htpasswd -c /etc/nginx/netdata-access tecmint

Укажите пароль и подтвердите его.

Затем перезапустите веб-сервер Nginx, чтобы изменения вступили в силу.


sudo systemctl restart nginx

Чтобы проверить правильность настройки, продолжите просмотр IP-адреса вашего сервера.


http://server-ip

Появится всплывающее окно аутентификации, как показано ниже. Введите свое имя пользователя и пароль и нажмите ВВОД.

После этого вы получите доступ к панели управления Netdata.

На этом мы подходим к завершению нашей сегодняшней темы. Вы только что узнали, как установить инструмент мониторинга Netdata и настроить базовую HTTP-аутентификацию в Ubuntu. Не стесняйтесь просматривать другие графики различных системных показателей.