Netdata — система мониторинга в режиме реального времени с открытым исходным кодом. С помощью этого инструмента можно отслеживать огромное количество показателей начиная с со статистики потреблении памяти и заканчивая отслеживание службами Apache, MySQL и другие…
Установка
Для работы Netdata прежде необходимо установить все необходимы зависимости:
sudo apt-get install git zlib1g-dev uuid-dev libmnl-dev gcc make autoconf autoconf-archive autogen automake pkg-config curl
sudo apt-get install python python-yaml python-mysqldb python-psycopg2 nodejs lm-sensors netcat
После чего клонируем официальный репозиторий Netdata:
git clone https://github.com/firehol/netdata.git --depth=1 ~/netdata
Переходим в папку установки Netdata:
cd ~/netdata
И запускаем скрипт установки Netdata:
sudo ./netdate-installer.sh
По завершению установки инструмент готов к работе.
Как уверяют создатели Netdata: для лучшей производительности рекомендуется объединить одинаковые страницы памяти между разными процессами для совместимого использования.
Для этого в файл /etc/rc.local нужно добавить строчки:
echo 1 > /sys/kernel/mm/ksm/run echo 1000 > /sys/kernel/mm/ksm/sleep_millisecs
После чего перезапустите сервер чтобы настройки вступили в силу.
Настройки
Инструмент Netdata обладает своим конфигурационным файлом, где записываются все настройки, его путь /etc/netdata/netdata.conf
К примеру, в секции [global] в параметре history можно задать значение хранение метрик. Обратите внимание что от этого срока зависит и потребление памяти: в течении 7200 секунд (2-х часов) — 30 МБ оперативной памяти и т.д.
В секции [web] Вы можете поменять порт, по какому будет доступна метрика.
По-умолчанию Netdata доступна по адресу сервера на порту 19999:
Оповещения
Стоит отметить что Netdata имеет функцию оповещений. К примеру, оповещения об остановке из наблюдаемых приложений, об ошибках и прочее…
Оповещения можно увидеть как и в веб-интерфейсе, так и настроить на отправку в другие сервисы: Mail, Telegram, Slack…
Настройки уведомлений хранятся в файле /usr/libexec/netdata/plugins.d/alarm-notify.sh
Чтобы настроить Netdata на отправку оповещений в Telegarm, открой файл настройки, найдите соответственную область
# telegram sender
Пропишите значения токена своего бота и id чата Teleram:
send_telegram() { bottoken="43534523:98y43tpy-q3p9ta-ergewthw2-werf432_Egnoerg" chatids="987302419"....
Далее найдите строку
#check telegram [ -z "${TELEGRAM_BOT_TOKEN}" ] && SEND_TELEGRAM="NO"
И замените «NO» на «YES»
# check telegram [ -z "${TELEGRAM_BOT_TOKEN}" ] && SEND_TELEGRAM="YES"
Найдите строку
[ "${r}" != "disable" ] && filter_recipient_by_criticality telegram "${r}" && arr_telegram[${r/|*/}]="1"
И замените ее на:
[ "${r}" != "enable" ] && filter_recipient_by_criticality telegram "${r}" && arr_telegram[${r/|*/}]="1"
После чего сохраните файл и перезапустите Netdata:
systemctl restart netdata
Как и у всех бесплатных инструментов есть свои плюсы и минусы. Netdata нельзя использовать для наблюдения за несколькими сервера — ее нужно устанавливать на каждый сервер отдельно. Но, для небольшого VPS-сервера Netdata будет полезным и незаменимым инструментом для мониторинга.