Как настроить filebeat kubernetes deamon для индексации пространства имен или имени модуля - PullRequest
0 голосов
/ 12 февраля 2020

В настоящее время я пытаюсь получить журналы из моего кластера kubernetes на внешний ElasticSearch / Kibana. До сих пор я использовал это развертывание демона, чтобы запускать filebeat и отправлять по конвейеру на мой внешний сервер, но я не могу понять, как установить индекс для чего-то значимого. Эта страница документации говорит мне, что мне нужно создать ключ индекса в разделе output.elasticsearch, но я не знаю, что ввести в значение.

Мой желаемый формат вывода будет примерно таким: <cluster-name>-<namespace>-<pod name>

IE: devKube-frontend-publicAPI-123abc

1 Ответ

0 голосов
/ 15 февраля 2020

Условие: вы включили add_kubernetes_metadata: ~.

Затем вы можете использовать эти метаданные в названии индекса следующим образом:

output.elasticsearch:
  index: "%{[kubernetes.namespace]:filebeat}-%{[beat.version]}-%{+yyyy.MM.dd}"
  • %{[kubernetes.namespace]:filebeat}: Используйте пространство имен Kubernetes или, если его нет, откройте filebeat.
  • Добавление %{[beat.version]} настоятельно рекомендуется для сценария при обновлении Filebeat, и в отображении есть критическое изменение. Это должно быть ограничено значительными изменениями версий (если они вообще есть), но это проблема, которую вы легко можете избежать с помощью этого параметра.
  • Шаблон индекса на основе времени, такой как %{+yyyy.MM.dd} или даже лучше, будет Политика ILM для получения осколков равномерного и правильного размера.

PS: У вас есть имя Pod и другие данные в полях add_kubernetes_metadata: ~. Я был бы осторожен, чтобы не разрезать индексы на мелкие кусочки, так как каждый шард имеет определенное количество накладных расходов. Политика Filebeat ILM по умолчанию составляет 50 ГБ на шард - если ваши шарды меньше 10 ГБ, вы, скорее всего, когда-нибудь столкнетесь с проблемами. Оставьте индексы более грубыми и просто используйте фильтр для указанного c Pod вместо

.
...