Вчера в блоге Elasticsearch появилась отличная новость - проект Packetbeat, развиваемый до этого энтузиастами, присоединился к Elastic.

Я уже довольно давно слежу за этим проектом, и теперь, когда можно не беспокоиться о его будущем, хочу о нем рассказать.

Packetbeat это такой инструмент мониторинга, который работает как анализатор сетевых пакетов, парсит различные протоколы (сейчас поддерживаются HTTP, MySQL, Postgresql, Redis, Thrift-RPC), получает нужные данные, и отсылает их либо напрямую в Elasticsearch, либо в Redis, из которого данные будет забирать Logstash и класть их все в тот же Elasticsearch.

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

Чем же это так круто? Да тем, что поставив Elasticsearch, Kibana и Packetbeat, практически без какой-либо конфигурации, мы сразу видим ключевые метрики сервисов, и получаем ответы на основные вопросы, например:

  • сколько у нас вообще запросов к базе в минуту?
  • а какие из этих запросов к базе данных самые медленные?
  • каково соотношение select и insert/update запросов?
  • каковы процентили времени ответов базы данных?
  • какие у нас самые частые HTTP-запросы?
  • сколько у нас ошибок в ответах на HTTP-запросы?
  • как вообще у нас ходит трафик в системе web-база-кеш?

Посмотреть все это великолепие живьем можно на демо-странице Packetbeat.

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

Если же это невозможно, Packetbeat умеет снифать трафик с сетевого интерфейса хоста, причем разными способами - подробности в документации.

Я его именно в таком режиме использую, и весьма доволен - на средненьком сервере с ~15k запросами к Postgres в минуту Packetbeat не создает значимой нагрузки на производительность, и отлично все парсит.

В комплекте идут удобные дашборды для Kibana 4, так что процесс построения мониторинга сделан максимально безболезненным.

В общем, попробуйте - это очень простой в развертывании и очень удобный и наглядный инструмент мониторинга.


Comments

comments powered by Disqus