ZaLinux.ru

Как настроить мониторинг производительности реального времени с Netdata на Ubuntu 16.10 или 17.04

Если у вас Arch Linux, то обратитесь к статье "Как настроить мониторинг производительности реального времени с Netdata на Arch Linux".

Что такое Netdata

Netdata обеспечивает точный контроль с помощью расширяемых веб-панелей управления, которые визуализируют процессы и службы на ваших Linux системах. Программа отслеживает метрики ЦПУ, памяти, дисков, сетей, процессов и прочего.

После установки Netdata не требует дополнительной конфигурации, но предоставляет широкое поле для пользовательской настройки. Эффективность и скорость приложения стремиться быть сравнимой с родными консольными инструментами администратора, такими как vmstat, iostat и htop.

Эта инструкция покажет вам, как успешно установить Netdata на ваш сервер с Ubuntu 16.10 или 17.04, используя встроенный веб-сервер.

Шаг 1 — Установка Netdata

Перед началом установки, убедитесь, что системный индекс пакетов актуален.

sudo apt-get update

Далее установите зависимости Netdata, которые включают gcc (компилятор C), инструменты GNU Autoconf, GUID management и библиотеки сжатия для внутреннего веб-сервера Netdata.

sudo apt-get install zlib1g-dev uuid-dev libmnl-dev gcc make autoconf autoconf-archive autogen automake pkg-config curl git

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

sudo apt-get install python python-yaml python-mysqldb python-psycopg2 nodejs lm-sensors netcat

Для установки самой Netdata мы должны использовать репозиторий GitHub. Клонируйте Netdata репозиторий в вашу локальную директорию.

git clone https://github.com/firehol/netdata.git --depth=1 ~/netdata

Перейдите в новую клонированную директорию.

cd ~/netdata

Теперь соберите и установите приложения, используя скрипт оболочки netdata-installer.sh, расположенный в этой директории. Убедитесь, что команда начинается с sudo, иначе процесс сбора системных данных не будет правильно функционировать.

sudo ./netdata-installer.sh

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

. . .
  It will be installed at these locations:

   - the daemon    at /usr/sbin/netdata
   - config files  at /etc/netdata
   - web files     at /usr/share/netdata
   - plugins       at /usr/libexec/netdata
   - cache files   at /var/cache/netdata
   - db files      at /var/lib/netdata
   - log files     at /var/log/netdata
   - pid file      at /var/run
. . .

Для продолжения нажмите ENTER и начнётся установка. В конце установки вы увидите следующее сообщение:

. . .
  ^
  |.-.   .-.   .-.   .-.   .-.   .  netdata                          .-.   .-
  |   '-'   '-'   '-'   '-'   '-'   is installed and running now!  -'   '-'  
  +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--->

  enjoy real-time performance and health monitoring...

Теперь Netdata установлена и успешно запущена. Она также будет запускаться автоматически при старте сервера.

Если у вас включён UFW, вам нужно открыть порт 19999 для внутреннего веб-сервера Netdata.

sudo ufw allow 19999/tcp

На этом этапе вы можете видеть набор виджетов, открыв адрес http://ip_вашего_сервера:19999/ в вашем браузере. В самом верху расположена краткая информация об использовании ресурсов системы. Перед тем, как мы перейдём к обзору графического интерфейса, давайте немного настроим Netdata.

Шаг 2 — Настройка использования памяти Netdata

Текущую конфигурацию Netdata вы можете увидеть в вашем браузере посетив страницу http://ip_вашего_сервера:19999/netdata.conf .

Вы увидите, что все (или почти все) опции настройки закомментированы (начинаются с #). Это от того, что Netdata работает, используя набор предполагаемых настроек по умолчанию. Любые отключённые настройки используют значения Netdata по умолчанию; если настройки раскомментированы, то значение из конфигурационного файла перезаписывает настройки по умолчанию.

Сам конфигурационный файл на вашем сервере размещён в /etc/netdata/netdata.conf . В этой инструкции мы отредактируем параметр history. Он определяет максимальный размер базы данных памяти, используемой Netdata.

Здесь вы решаете, как много оперативной памяти вы хотите выделить Netdata или как много времени вы хотите хранить записанные данные для диаграмм перед их потерей:

  • 3600 секунд (1 час хранения данных диаграммы) использует 15 мегабайт оперативной памяти
  • 7200 секунд (2 часа хранения данных диаграммы) использует 30 MB мегабайт оперативной памяти
  • 14400 секунд (4 часа хранения данных диаграммы) использует 60 MB мегабайт оперативной памяти
  • 28800 секунд (8 часов хранения данных диаграммы) использует 120 мегабайт оперативной памяти
  • 43200 секунд (12 часов хранения данных диаграммы) использует 180 мегабайт оперативной памяти
  • 86400 секунд (24 часа хранения данных диаграммы) использует 360 мегабайт оперативной памяти

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

Откройте главный конфигурационный файл Netdata вашим любимым текстовым редактором.

sudo vim /etc/netdata/netdata.conf

В секции [global] найдите опцию history.

. . .
[global]
        # glibc malloc arena max for plugins = 1
. . .
        # hostname = test-netdata
        # history = 3600
        # update every = 1
. . .

Замените значение 3600 на то, которое вы решили. Здесь мы используем 14400, что даёт нам 4 часа хранения данных, также убедитесь, что строка раскомментирована, это делается удалением символа #, это приведёт к тому, что Netdata больше не будет игнорировать эту опцию.

. . .
[global]
        # glibc malloc arena max for plugins = 1
. . .
        # hostname = test-netdata
        history = 14400
        # update every = 1
. . .

После внесения изменений сохраните и закройте файл.

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

Шаг 3 — Включение Kernel Same-page Merging

Даже хотя Netdata работает прямо из коробки, мы можем внести много изменений в то, каким образом Netdata использует системные ресурсы, это ускорит и оптимизирует её производительность. Начнём с включения Kernel Same-page Merging, для краткости KSM. Разрабочики Netdata дают приблизительную оценку, что это уменьшит используемую в Netdata память на 40-60%.

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

Чтобы это включение всегда работало в ядре системы Linux, откройте файл /etc/rc.local текстовым редактором.

sudo vim /etc/rc.local

Файл /etc/rc.local, или файл контроля запуска, выполняется после запуска всех других обычных системных служб и процессов Linux. Он полезен для указания пользовательских служб – или, в нашем случае, для включения выполнения на сервере KSM.

Добавьте следующие две команды в конец этого файла:

echo 1 > /sys/kernel/mm/ksm/run
echo 1000 > /sys/kernel/mm/ksm/sleep_millisecs

перед последней строкой exit 0, как показано ниже:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

echo 1 > /sys/kernel/mm/ksm/run
echo 1000 > /sys/kernel/mm/ksm/sleep_millisecs

exit 0

Первая команда добавляет 1 в файл ядра для запуска KSM, который включает эту функцию. Вторая команда говорит демону KSM запускаться раз в каждую секунду и оценивать 100 страниц для дедупликации.

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

Начните с новой сессии оболочки для пользователя рута сервера, используя фалг -s с sudo. Это необходимо для успешного выполнения вышеприведённых двух команд, поскольку чтобы перенаправление вывода (с оператором >) оказалось успешным, его нужно сделать из оболочки рута.

sudo -s

Теперь введите эти две команды:

echo 1 > /sys/kernel/mm/ksm/run
echo 1000 > /sys/kernel/mm/ksm/sleep_millisecs

Теперь покиньте оболочку рута и вернитесь в оболочку своей обычной сессии

exit

Наконец, для применения всех изменений, которые вы сделали на этом шаге и шаге перед ним, перезапустите Netdata.

sudo systemctl restart netdata

Вы можете проверить, включена ли сейчас KSM, поискав свежедобавленный KSM график в панели Netdata. Его можно найти в дереве меню справа, в Memory > Memory Deduper.

Теперь мы знаем, что панель и KSM работают.

Шаг 4 — Исследование панели Netdata

Итак, по адресу http://ip_вашего_сервера:19999/ вы увидите панель и обзор системных живых метрик. HUD стиль индикаторов наверху страницы изменяется каждый раз, когда вы проводите по последующим графикам, показываются значения, которые имели показатели системы на выбранное время.

Отдельные графики и диаграммы в этой секции обзора дают подробные отчёты о каждом аспекте системы: ЦПУ, память, сетевой трафик и другое.

Графики интерактивны и их можно двигать вправо и влево, перемещаясь по временным интервалам.

Удерживая клавишу SHIFT и прокручивая колёсико мыши на графике, вы можете поменять масштаб, протяжённость времени, т.е. изменится расстояние между маркерами. Двойной клик на графике вернёт его в исходное состояние и вид.

Самый быстрый способ навигации по панели – это использование дерева меню справа от страницы. Оно меняет фокус и цвет, в зависимости от секции страницы, которую вы в данный момент просматриваете.

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

В Netdata доступно очень много самых разнообразных графиков статистики.

Важной частью этого графического интерфейса является страница обновлений. Netdata регулярно получает обновления, и поддержание вашей установки в актуальном состоянии не представляет трудности. Наверху панели имеется кнопка обновления (Update button), которая всегда позволяет вам проверить, доступна ли для загрузки новая версия.

Клик на эту кнопку открывает меню с дополнительными подробностями, нажмите кнопку Check Now для проверки обновлений вручную.

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

sudo ~/netdata/netdata-updater.sh

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

Заключение

Netdata обладает большим количеством модулей, можно настраивать отображающиеся графики, а также устанавливать и изменять уведомления в браузере.

Рекомендуемые статьи:

9 Комментарии

  1. Олег

    У меня почему-то не получается вносить изменения в файл настроек netdata.conf.
    В частности пробовал менять порт и время хранение данных – и ничего не меняется, всё так же остается. Куда копать?

    1. Alexey (Автор записи)

      В статье я пользуюсь vim. Может быть, вы закрываете программу не сохранив изменения? Для сохранения изменений в vim нужно нажать ESC, затем : (двоеточие), а затем wq и ENTER.

      Если не получается с vim, попробуйте nano (говорят, он более дружественный).

      1. Олег

        Да, через nano делаю, и даже через файловый менеджер пробовал. Ноль реакции. Изменения вношу и сохраняю файл, а netdata не реагирует. Может быть нужно переустановить эту систему. Подскажите, какую команду ввести, чтоб удалить netdata?

        1. Alexey (Автор записи)

          После установке должен был создаться файл netdata-uninstaller.sh в каталоге netdata. Перейдите в каталог программы и апустите его:

          sudo ./netdata-uninstaller.sh
          
        2. Alexey (Автор записи)

          А сами изменения сохраняются? Может быть, вы просто не перезапускаете службу? Попробуйте после внесения изменений перезапустить службу netdata:

          sudo systemctl restart netdata
          
          1. Олег

            Нет такого файла(( что за невезение такое… Вот скриншот каталога https://s.mail.ru/6vSQ/GgzqQbnhp

            Изменения сохраняются, пробовал перезапускать службу netdata и перезагружать сервак.

        3. Alexey (Автор записи)

          Может быть, вы смотрите не в той папке. Этот файл нужно искать в директории, которая образовалась после 

          git clone https://github.com/firehol/netdata.git

          По идее, текущей рабочей директорией должна быть домашняя папка (если не меняли), перейдите в 

          cd ~/netdata

          и там поищите файл для удаления.

          В крайнем случае, его можно создать вручную. Посмотрите ссылку: https://github.com/firehol/netdata/blob/master/netdata-installer.sh

          Создайте текстовый файл netdata-uninstaller.sh и скопируйте туда то, что находится между cat >netdata-uninstaller.sh <<UNINSTALL и UNINSTALL.

          Затем выполните 

          chmod 750 netdata-uninstaller.sh
          sudo ./netdata-uninstaller.sh
          
          1. Олег

            Спасибо большое, нашел этот файл, он здесь /root/netdata/.

            Сейчас попробую переустановить.

  2. Олег

    Теперь заработало!!! Удалось внести изменения в файл настроек и netdata среагировал. Спасибо еще раз.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *