Я использую Fluent Bit (1.3.11) для сбора журналов из контейнеров, работающих на k8s. Что я хотел бы сделать, так это некоторую базовую c обработку с использованием фильтров Fluent Bit Modify (т.е. стандартизировать имена уровней журнала).
Я добавил два фильтра модификации (см. Ниже). Первый - просто проверить, работают ли фильтры модификации. Он проверяет наличие ключа log
и устанавливает свойство, если оно найдено. Это работает. Второй фильтр модификации - это то, что я на самом деле пытаюсь сделать. Он якобы переписывает значение log_processed.Level
с ERR
на Error
, но я не мог заставить его работать. После некоторых экспериментов я думаю, что ни один из фильтров, у которых есть условие, зависящее от свойств log_processed.*
или kubernetes.*
(добавленных фильтром kubernetes), не работает.
Есть ли рекомендуемый / рабочий способ изменения журналов идёт из Kubernetes?
[FILTER]
Name kubernetes
Match kube.*
Kube_URL https://kubernetes.default.svc:443
Kube_CA_File /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
Kube_Token_File /var/run/secrets/kubernetes.io/serviceaccount/token
Kube_Tag_Prefix kube.var.log.containers.
Merge_Log On
Merge_Log_Key log_processed
K8S-Logging.Parser On
K8S-Logging.Exclude Off
[FILTER]
Name modify
Match kube.*
Condition Key_exists log
Set my.custom.prop modify-filter-applied
[FILTER]
NAME modify
Match kube.*
Condition Key_value_equals log_processed.Level ERR
Set log_processed.Level Error