Я пытаюсь найти ключ в записи и использовать его в качестве префикса logstash в свободном доступе. Но этого не происходит, и Logstash_Prefix
не заменяется на Logstash_Prefix_Key
, хотя указанный ключ существует в расширенном журнале из фильтра kubernetes
.
Идеальным поведением фильтра кубернетов является обогащение журналов, прочитанных из входного пути через плагин input
, данными кубернетов, такими как имя модуля, идентификатор модуля, имя пространства имен и т. Д. И когда журналы после применения фильтра передаются в источник вывода через es
выход плагин. Я использовал Logstash_Prefix_Key
, чтобы получить ключ kubernetes.pod_name
, и дал Logstash_Prefix
как pod_name
. Несмотря на то, что я могу видеть ключ kubernetes.pod_name
в Kibana, журналы сохраняются с префиксом pod_name
(что означает, что Logstash_Prefix_Key
не найден в записях журнала, поэтому он использует Logstash_Prefix
).
Образец кода
input-kubernetes.conf: |
[INPUT]
Name tail
Tag kube.*
Path /var/log/containers/*.log
Parser docker
DB /var/log/flb_kube.db
Mem_Buf_Limit 2GB
Skip_Long_Lines On
Refresh_Interval 10
filter-kubernetes.conf: |
[FILTER]
Name kubernetes
Match kube.*
Kube_URL https://kubernetes.default.svc.cluster.local:443
Merge_Log Off
K8S-Logging.Parser On
output-elasticsearch.conf: |
[OUTPUT]
Name es
Match kube.*
Host ${FLUENT_ELASTICSEARCH_HOST}
Port ${FLUENT_ELASTICSEARCH_PORT}
HTTP_User ${FLUENT_ELASTICSEARCH_USER}
HTTP_Passwd ${FLUENT_ELASTICSEARCH_PASSWORD}
Logstash_Format On
Logstash_Prefix pod_name
Logstash_Prefix_Key kubernetes.pod_name
Retry_Limit False
Поскольку я новичок в стеке EFK, Может ли кто-нибудь помочь мне с этим