Просто о сложном #2

Продолжаем рассказывать про инструменты мониторинга

В прошлой статье мы осветили общие вопросы мониторинга, в том числе, оценку работоспособности и производительности ИТ систем, и предупреждения возможных сбоев, перечислили основные функции этого процесса. Сегодня немного углубимся в тему и поговорим о конкретных используемых инструментах.
Существует целый ряд проприетарных систем мониторинга - и HP Enterprise, IBM Tivoli, BigPanda, Pagerduty, Monitis и др. Они великолепно, с размахом решают все задачи мониторинга и даже больше :). Но, учитывая текущую международную обстановку, для российского рынка гораздо интереснее отечественные и open source решения. Поговорим сегодня именно о них :)

Итак,

  1. Zabbix — “открытая” система мониторинга разнообразных характеристик сети, жизнеспособности и целостности серверов, виртуальных машин, приложений, сервисов, баз данных и многого другого. У Zabbix гибкий механизм оповещений, что позволяет настраивать e-mail уведомления практически на любой инцидент. Такой подход позволяет оперативно реагировать на сбои. Кроме этого, у программулины отличные возможности для  отчетности и визуализации текущих и исторических данных

  2. Prometheus — приложение для сбора данных было создано музыкальной компанией SoundCloud в 2012 году для решения внутренних потребностей в быстрой и гибкой обработке продуктовых метрик. Но продукт получился настолько клевым, что был выпущен за границы alma mater и стал стандартом для мониторинга. У него полностью открытый исходный код. Он позволяет за считанные минуты настроить мониторинг всей инфраструктуры. Кроме того, есть встроенную поддержку таких сервисов, как Docker и Kubernetes, что стильно, модно, молодежно ;).

  3. Nagios — программа с открытым кодом, которая мониторит ИТ инфраструктуру, контролирует состояние вычислительных узлов и служб, оповещает администратора о сбоях. Первоначально была разработана под Linux, но хорошо работает также и под Sun Solaris, FreeBSD, AIX и HP-UX.

  4. Sensu - среда мониторинга, разработанная Sonian, которая в основном используется для контроля работоспособности инфраструктуры и приложений. Эффективна для решения проблем, возникающих из-за смешанного использования статической, динамической и временной инфраструктуры в современных масштабных инфраструктурных платформах

  5. ELK -Стек продуктов Elasticsearch, Logstash, Kibana, образующий аббревиатуру ELK.  Очень популярное open source решение.
    Elasticsearch - это распределенный поисковый и аналитический движок, лежащий в основе Elastic Stack. Может эффективно хранить и индексировать данные, поддерживает быстрый поиск, умеет агрегировать информацию для выявления трендов и закономерностей.
    Logstash - это механизм сбора данных с возможностью конвейерной передачи. Может динамически объединять и нормализовать данные из разнородных источников.
    Kibana - это инструмент, позволяющий исследовать, визуализировать и создавать панель мониторинга на основе данных журнала, скопированных в кластеры Elasticsearch. Позволяет отображать информацию в различных форматах, используя тепловые карты, линейные графики, гистограммы, круговые диаграммы и геопространственную поддержку. Предоставляет возможность работы с ретроспективными  данными для диагностики первопричин сбоев. 

  6. Graylog - инструментарий централизованного сбора, хранения и анализа данных о различных событиях на серверах локальной сети. Это не единственная, но широко распространенная система, прошедшая проверку временем и все еще поддерживаемая разработчиками. Open source решение. Бесплатная версия имеет все необходимое. Функционал небольшой, ничего лишнего. По сравнению с ELK ресурсоемкость значительно ниже.

  7. Loggly - одно из самых популярных решений для управления логами, подходит для анализа данных практически из любого источника, включая веб-приложения — Apache, Nginx, PHP, Node.js, .NET, Java, JavaScript, операционные системы – Linux, Windows. Позволяет собирать данные (логи) для анализа и создавать содержательные информационные панели для мониторинга интересующих показателей. Есть возможность поиска в логах непосредственно из интерфейса приложения.

  8. Grafana — это универсальная программа для работы с аналитическими данными, хранящимися в разных источниках. При этом является лишь универсальным клиентом для систем хранения метрик. Например, с ее помощью можно “ходить” за цифрами как в традиционную PostgreSQL, так и в специализированные системы типа Prometheus.

  9. VictoriaMetrics - масштабируемая система, умеющая долго хранить и быстро обрабатывать метрики Prometheus, InfluxDB, OpenTSDB, Graphite. Позволяет работать с данными в форме временного ряда (запись образует время и набор соответствующих этому времени значений, например, полученных через периодический опрос состояния датчиков или сбор метрик). Не требует больших вычислительных ресурсов, что важно при высокой нагрузке на системы. Этим она выгодно отличается от Zabbix, который, например, оказался недостаточно удачным для хранения данных Prometheus.

  10. Alerta - очень простая система мониторинга. С ее помощью можно в одном месте управлять алертами (сигналами об ошибках) из нескольких источников. Имеет API, веб-интерфейс и консольные утилиты. Позволяет группировать сигналы по различным атрибутам: окружение, сервис, событие и ресурс. При этом не является "еще одним инструментом мониторинга". Это всего лишь способ снизить число алертов и агрегировать их из нескольких систем мониторинга, таких как Zabbix, Nagios или Sensu.

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

Наш подход

В Севен Груп для каждого инфраструктурного и прикладного ПО устанавливается свой экспортер, задача которого собирать все необходимые метрические показатели. Далее собранные метрики забирает Prometheus в виде временных рядов (показателей того, как определенные параметры приложений проявляют себя в течении времени).

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

Затем Grafana, используя подключение к Victoriametrics, визуализирует информацию в виде удобных дашбордов и графиков.




Group 36 Group 36 Group 16 ic_8 ic_9