Новости

Loghouse — Open Source-решение от «Фланта» для логов в Kubernetes

1 ноября 2017 г.

Эффективное управление логами контейнеров из кластера Kubernetes — одна из насущных проблем, с которой мы были вынуждены столкнуться при обслуживании инсталляций K8s разных масштабов. Отсутствие подходящих Open Source-решений побудило нас разработать собственный продукт — loghouse.

Loghouse — это комплексное решение для управления логами в Kubernetes, которое позволяет эффективно хранить большие объёмы записей и быстро обрабатывать их с помощью простого языка запросов, а также просматривать логи в реальном времени (через веб-интерфейс). Loghouse включает в себя:

  • ресурсы Kubernetes, реализующие все необходимые инфраструктурные компоненты для реализации системы сбора и хранения логов;
  • веб-интерфейс (loghouse-dashboard) с бэкендом, написанным на языке Ruby, — он позволяет с помощью простого языка запросов просматривать логи за нужный период и по заданным критериям (для фильтров поддерживается использование системных данных о контейнерах, полученных из Kubernetes API);
  • СУБД ClickHouse, разработанную в компании «Яндекс» и ориентированную на работу с Big Data, — в неё записываются все логи;
  • fluentd — Open Source-проект, развиваемый при поддержке фонда CNCF и предназначенный для сбора и обработки логов.

Все эти компоненты устанавливаются в работающий кластер Kubernetes буквально в несколько команд благодаря наличию подготовленных для деплоя файлов Dockerfile и Helm chart. Текущий статус проекта — альфа-версия, хотя мы используем его в production уже второй месяц.

Исходный код loghouse распространяется под свободной лицензией Apache License 2.0 и опубликован на GitHub. Там же доступна документация на русском и английском языках, а желающие присоединиться к разработке нового Open Source-проекта могут это сделать с помощью таких родных для GitHub механизмов, как issues и pull requests. Loghouse также был представлен в нашем техническом блоге.

Основные разработчики loghouse в компании «Флант» — Андрей Сидоров, Сергей Гнусков, Дмитрий Столяров.