Мониторинг серверов и сервисов с TICK Stack
В этой статье я хотел бы рассмотреть инструмент, который упрощает работу системного администратора, сокращая затраты времени и усилий на мониторинг серверов клиентов.
Обзор будет полезен системным администраторам, специалистам DevOps, клиентам, которые сотрудничают с IT-сервисами и разработчикам.
TICK Stack — бесплатный комплекс программ, простой в использовании и гибкий в настройке, с механизмом агрегации и удобными кастомизируемыми функциями выбора.
Существуют и платные решения для таких задач, например DataDoghq. Но так как требования к IT-отделу обычно ограничены стандартными задачами, нам не нужны дорогостоящие программы с широким функционалом, и TICK идеально подходит под наши требования.
Структура TICK Stack
Это ядро с открытым исходным кодом или стек TICK, состоящий из четырех модулей: Telegraf, InfluxDB, Chronograf и Kapacitor.
Рассмотрим каждый компонент отдельно.
Telegraf
Telegraf — управляемый плагином сервер для сбора показателей и отчетности. Telegraf интегрируется с разнообразными метриками, событиями и логами, обращаясь непосредственно к контейнерам и системам, в которых он работает, достает метрики из сторонних API или даже прослушивает показатели через сервисы ConsumerD и Kafka. Он также имеет выходные плагины для отправки показателей во множество других хранилищ данных, служб и query-сообщений, включая InfluxDB, Graphite, OpenTSDB, Datadog, Librato, Kafka, MQTT, NSQ.
InfluxDB
InfluxDB — Time Series Database, построенная с нуля, для обработки высоких нагрузок на запись и запрос. InfluxDB — это специализированное высокопроизводительное хранилище данных, написанное специально для временных данных (мониторинг DevOps, метрики приложений, данные датчика IoT и аналитика в реальном времени). Оно позволяет сохранять пространство на своем компьютере, настраивая InfluxDB для хранения данных в течение определенного периода времени и по его истечению — автоматического удаления любых нежелательных данных из системы. InfluxDB использует язык запросов, подобный SQL, для взаимодействия с данными.
Chronograf
Chronograf — это административный интерфейс пользователя и механизм визуализации платформы. Он упрощает настройку и обслуживание системы мониторинга и оповещения. Простой в использовании, он включает в себя шаблоны и библиотеки, позволяющие быстро создавать информационные борды с визуализацией данных в режиме реального времени и генерировать правила для алертов и автоматизации.
Kapacitor
Kapacitor — собственный механизм обработки данных. Он может обрабатывать как потоковые, так и пакетные данные от InfluxDB. Kapacitor позволяет подключать собственную пользовательскую логику или пользовательские функции для обработки предупреждений с динамическими порогами, сопоставления показателей для шаблонов, вычисления статистических аномалий и выполнения определенных действий на основе этих предупреждений, таких как динамическая перебалансировка нагрузки. Kapacitor интегрируется с HipChat, OpsGenie, Alerta, Sensu, PagerDuty, Slack и т. д.
Как это работает
Это Dashboard. Он показывает статус уведомлений, используя таймлайн. Таким образом, пользователь может видеть, когда и какие события произошли в системе.
С помощью инструмента мы можем проверить: CPU, RAM, место на жестком диске, интенсивность сетевого трафика, количество соединений с веб-сервером, запросы на сайты, MS SQL запросы, количество операций записи и чтения, RabbitMQ.
Если вам нужна дополнительная функциональность, можно обновить инструмент плагинами из list of opportunities.
Системные характеристики сервера
Этот борд показывает использование CPU, использование диска, Lead, Memory Gigabytes Used, Network Mb и т. д.
Борд мониторинга Linux, показывающий состояние соединения, свободное пространство в оперативной памяти трех серверов и количество активных подключений к веб-серверу. Последнее не является стандартной настройкой, но мы хотим отслеживать, сколько запросов приходит на сайт. И можем проверить это таким способом.
Хронограф позволяет сделать выборку из базы данных, создавая уникальные борды под потребности команды или клиента. Приведу еще несколько примеров.
Выше приведены диаграммы двух серверов Windows: процессор и оперативная память. Это три графика с тремя параметрами для двух серверов (шесть параметров), которые одновременно демонстрируются на экране.
Зависимости и прогнозирование
Система также позволяет проверять историю важных изменений за выбранный период, чтобы определить зависимости, причины и прогнозировать ситуацию.
Например, можно создать график событий за определенный период, чтобы проанализировать, что произошло в течение дня, недели, месяца.
Простая и настраиваемая система оповещений
TICK позволяет настроить уведомления через удобные каналы, которые будут отвечать задачам конкретной системы мониторинга и поддержки. Оповещения могут быть направлены в Slack, Page Duty, Telegram и так далее.
Kapacitor позволяет настраивать гибкую систему алертов, в которой вы можете выборочно уведомлять заинтересованных системных администраторов, разработчиков, клиентов. Настройка алертов позволяет также выставить их приоритет.
Можно автоматизировать устранение некоторых сбоев (например, переполнение буфера оперативной памяти, очистка кеша веб-сервера и т. д.) через скрипты оповещений.
Так выглядит классификация алертов для оповещений с настраиваемой системой приоритетов (низкий и высокий приоритет алерта).
Как работает приоритетность алертов
Предупреждение появляется в специальном канале в Slack. Это очень удобно. Не нужно открывать дополнительное приложение или браузер. Slack широко используется.
Проверка статуса оповещения позволяет быстро генерировать сообщение с информацией, где и что исправить. Это упрощает командную работу.
Приоритизация алертов позволяет фильтровать несрочные оповещения для нерабочих часов. Но сверх важные алерты, несвоевременная реакция на которые подвергает риску инфраструктуру или репутацию компании, система (по желанию юзера) может отправлять в нерабочее время. Таким образом, вы быстро реагируйте на угрозу даже в 2 часа ночи, если Галактика в опасности.
Кто может использовать TICK
TICK - полезный технический стек для таких специалистов:
Разработчики
Большое количество плагинов, таких как: MySQL,MS SQL. Elastic Search, RabbitMQ и другие, — могут помочь разработчикам отслеживать узкие области использования программного обеспечения и повышать эффективность работы.
Администраторы
Очень полезный инструмент для системных администраторов, поскольку он объединяет информацию с нескольких хостов в одном месте с возможностью гибкого выбора и визуализации зависимостей. Уведомления сохраняют время администратора и помогают отвечать только на очень релевантные алерты.
Клиенты
Инструмент может использоваться клиентами для определения низкой эффективности отдельных разделов инфраструктуры, прогнозирования нагрузки и оптимизации стратегий расширения парка серверов. Клиент может знать, насколько эффективно используются ресурсы, адаптируя их в соответствии с потребностями.
Заключение
Система позволяет контролировать большой парк серверов. Метод развертывания довольно прост и может быть автоматизирован с помощью Ansible или другого агрегатора. Функция выбора показателей позволяет создавать информативные графики, быстро анализировать их и прогнозировать риски.