What does the Checker check, или как организовать удобный мониторинг через веб-интерфейс =)

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Продолжаем серию публикаций о нашем веб-интерфейс для HAProxy. Сегодня мы поговорим о специализированном сервис под названием Checker,

предназначенном для мониторинга сервисов HAProxy и Nginx, а также бэкендов HAProxy. Если один из сервисов падает, то Checker рассылает уведомления через Telegram или Slack.

Это очень удобно: не нужно "прикручивать" сторонний инструмент мониторинга, да и умеет Checker (причём из коробки) гораздо больше. Впрочем, обо всём по порядку.

Структура и функции

Сервис Cheсker состоит из управляющего компонента (Master Checker в терминологии Roxy-WI) и рабочих компонентов (Worker Checkers в терминологии Roxy-WI)

Рабочие компоненты на текущий момент имеются для HAProxy и Nginx.C функциями управляющего компонента всё понятно - он отвечает за функционирование рабочих компонентов.

Рассмотрим их функции более подробно. Рабочий компонент для HAProxy умеет проверять статус сервиса HAProxy, а также статус бэкендов, а также рассылать уведомления в Теlegram, Slack или в оба мессенджера одновременно. Важный момент: ещё он умеет проверять, приближается ли число установленных соединений к заданному лимиту, и отправлять соответствующие уведомления.  При использовании сторонних инструментов мониторинга это возможно, но всё сложнее: для того же Prometheus надо прописывать отдельные правила. У нас же никаких дополнительных настроек не нужно.Рабочий компонент для Nginx умеет проверять статус сервиса Nginx, и рассылать уведомления, если статус изменился. В планах — создание рабочего компонента для Keepalived. Он будет проверять состояние сервиса, а также отправлять уведомления при каждом переключении между мастером и бэкапом. 

Установка

Дисклеймер: для выполнения всех описанных ниже действий у вас уже должен быть установлен Roxy-WI. Если вы его ещё не установили, читайте здесь, как это сделать.

Установить Checker можно с помощью стандартного менеджера пакетов:

#yum

$ sudo yum install roxy-wi-checker

#apt

$ sudo apt-get  install roxy-wi-checker

После установки нужно запустить Checker.  Для этого в главном меню выбираем пункт Admin Area => Services,  находим в списке roxy-wi-checker (он там идёт первым) и нажимаем на значок "Play"

Затем потребуется включить Checker для серверов, для которых мы планируем получать уведомоления. Выбираем  в главном меню пункт HAProxy => Overview или Nginx => Overview. На экране мы увидим список серверов, в котором каждый сервер будет представлен в виде отдельной карточки, например:

Здесь всё просто: выбираем соответствующий чекбокс — и Checker включен. Уведомления обо всех событиях будут приходить прямо в браузере и сопровождаться звуковым сигналом —’это удобно, например, для дежурных системных администраторов и сотрудников служб технической поддержки. 

Информация обо всех событиях, которые регистрирует Checker, сохраняется в истории (Monitoring => Checker history в главном меню):

Она может оказаться полезной при диагностике и устранении неисправностей.Состояние как управляющего (Master), так и рабочих  (Worker) компонентов Checker можно отследить  на главной странице Roxy-WI в разделе Services status:

Практический кейс: настраиваем уведомления через Telegram

Рассмотрим возможности Checker более подробно. Попробуем сделать так, чтобы сервис рассылал сообщения об изменения состояния сервисов через Telegram.

Для этого потребуется:

  • создать Telegram-бота;

  • создать Telegram-канал;

  • предоставить боту права администратора канала;

  • активировать Checker для серверов, информацию о которых вы планируете получать

Краткая инструкция по созданию бота опубликована на сайте Roxy-WI. По завершению всей процедуры BotFather (служебный бот, который управляет всеми ботами в Telegram) выдаст токен. Скопируем токен и выберем в главном меню Admin Area =>  Services.

Интерфейс для управления Telegram-уведомлениями выглядит так:

Вставляем Token в соответствующее поле, в поле Channel name вводим имя канала (обязательно со знаком @).  Далее нужно будет выбрать группу, для которой будут рассылаться тестовые уведомления. В нашем случае это группа dev.

Вообще серверы на группы можно делить на любых основаниях, и создавать неограниченное количество групп (пункт Admin Area => Groups в главном меню).Заполнив все поля, нажимаем на кнопку test —  в канал будет отправлено тестовое уведомление.

Заключение

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

Наш репозиторий  — https://github.com/hap-wi/roxy-wi

Наш Telegram-канал — https://t.me/haproxy-wi 

Источник: https://habr.com/ru/post/583630/


Интересные статьи

Интересные статьи

Привет. В данной статье расскажу как и зачем можно изменять HTTP пакеты при отправке на сервер и при получении ответов от сервера.В статье много практических примеров. ...
Продолжение. Как при наличии небольшого количества времени и навыков, я построил мультимедийный комбайн с дополнительными возможностями домашнего сервера на базе Kubuntu ...
Здравствуйте! Меня зовут Ренат Саматов, я возглавляю фронтенд-направление в линейке продуктов Витрина. Большая часть наших проектов рендерится на сервере. Сегодня мы побеседуем об...
Компании, отслеживающие действия пользователей в интернете, нуждаются в надёжной идентификации каждого человека без его ведома. Фингерпринтинг через браузер подходит идеально. Никто не замети...
Сегодня решил-таки описать последний проект, т.к. это прикольное и в то же время не стандартное решение. Начало Есть большой сегмент магазинов, услуг и вообще бизнес моделей, по которой в...