Получить логи с кафки и отправить в локи

надеюсь, у вас все хорошо во время этой пандемии.

У меня запущен кластер Kubernetes. Связь между модулями осуществляется через кафку. В настоящее время он регистрируется только на стандартный вывод. Файлов нет. нет кафки в теме. Это явно очень плохо.

Я хочу настроить экземпляр Grafana, который позволит мне централизовать все журналы. Хранилище будет Loki + S3

Для этого я обнаружил, что многие люди используют такие инструменты, как Fluentd, FluentBit и Promtail, которые централизуют журналы и отправляют их Loki. Однако у меня уже работает Кафка. Я не понимаю, почему я использую какой-то инструмент, например fluentd, если я могу отправлять все журналы в kafka через тему журналов.

Мой вопрос: как я могу отправить все сообщения в теме журнала в Loki? Fluentd не может получать данные от кафки.

Придется ли мне настраивать какой-нибудь скрипт, который периодически запускается, сортирует данные и напрямую отправляет их в локи?


person Semar Martins    schedule 08.04.2021    source источник
comment
Вы хотите сказать, что у вас должна быть возможность входить прямо в Kafka вместо стандартного вывода? Я не уверен, что Docker / Kubernetes поддерживает это ... Вам нужно будет использовать fluentd для получения данных в Kafka, если вы этого хотите, но после этого вам понадобится потребитель Kafka для записи в Loki, поэтому Kafka действует только как буфер   -  person OneCricketeer    schedule 09.04.2021
comment
ну он должен поддерживать это, не так ли? Мне просто нужно добавить обработчик к моему регистратору (приложение python). Я, должно быть, чего-то не вижу. Моя идея в настоящее время состоит в том, чтобы войти напрямую в kafka через python, создать потребителя и запустить его внутри fluentd с помощью плагина in_exec   -  person Semar Martins    schedule 09.04.2021


Ответы (1)


Я рекомендую вам использовать promtail, потому что он также от Grafana и не использовать решение kafka.

Если вы отправляете журналы из своих приложений в kafka, вам необходимо:

  • измените свои приложения для отправки в kafka вместо stdout
  • настроить пересылку журналов для отправки сообщений с кафки на локи (можно бегло)

И если вы используете один из предлагаемых нормальных подходов, вам необходимо:

  • настроить пересылку журналов для отправки сообщений из docker stdout в loki (вы можете использовать конфигурацию promtail по умолчанию)

Но если вы хотите использовать свое решение с kafka посередине, есть несколько плагинов fluentd для настройки kafka как ввода и вывода. https://github.com/fluent/fluent-plugin-kafka

person Drazul    schedule 14.04.2021