Требования
Развернутый K8S, Minikube или K3S
Цель №1: Забирать логи с сервисов находящихся в Kubernetes и отправлять их в Kafka
Цель №2: Доставать логи из Kafka и отправлять их в Opensearch (ElasticSearch)
***В моём случае авторизация в Кафке по клиентским сертификатам (Выпущенные ЦА или самоподписанные). Если вы не хотите использовать серты, то перед развертыванием просто удаляем:
- Все Secrets с сертификатами Kafka
- rdkafka.ssl.* и security.protocol ssl из Fluent Bit
- ssl_store_ из Logstash input
- Используйте PLAINTEXT или SASL_PLAINTEXT в файле configmap-for-kafka.yaml
Подробно расписал схему построения в своём Telegram
Там же отвечаю на вопросы и обновляю инструкции при необходимости.
Присоединяйся

Развертывание Fluent-bit
Заходим на master-ноду. Клонируем репозиторий с Fluent-bit:
| |
Создаём namespace:
| |
Далее переходим в директорию и деплоим:
| |
Меняем конфиг под себя, со своим адресом Kafka:
| |
Для авторизации по клиентскому сертификату понадобится его преобразовать в base64:
| |
Тоже самое с ключом:
| |
Полученные строки вставляем в secret.yaml
| |
Если меняете имена сертификатов не забудьте их переименовать в daemonset.yaml и в configmap-for-kafka.yaml
Если нет просто добавляете свои строки вместо …abc…
| |
Также потребуется root-ca сертификат от вашего ЦА.
Вставляем содержимое сюда:
| |
Запускаем
| |
Проверяем, что поды Fluent-bit поднялись:
| |

В логах пода смотрим, что соединение с кафкой прошло успешно. Если нет, то дебажим исходя из ошибок.
Если настроена вебка ищем новый топик:

Команда вывода логов:
| |

Развертывание Logstash
Далее разворачиваем в этом же кластере кубера Logstash.
Для этого клонируем репозиторий:
| |
Далее переходим в директорию:
| |
Меняем конфиг под себя, со своим адресом Kafka откуда будем забирать логи:
| |
Изменить server на свой адрес Кафки
| |
И свой адрес Opensearch куда будем складывать
| |
Авторизация в Opensearch простая - по логину и паролю.
Здесь для авторизации с сертификатами мы поступим другим путем.
Упакуем их через java утилиту keytools (Требует установки java-jdk) и прокинем через созданные секреты.
Создаём хранилище сертификатов для подключения к Кафке:
| |
Пользовательский серт и ключ, также серт ЦА.
Создаём секреты на основе этого хранилища:
| |
Запускаем
| |
Проверяем, что под Logstash поднялся:
| |
В логах пода смотрим, что соединение с кафкой прошло успешно. Если нет, то дебажим исходя из ошибок.
Команда вывода логов:
| |
Если всё успешно заходим в Opensearch и добавляем новый шаблон индекса

После чего можем наблюдать за логами в удобном интерфейсе.

