我正在尝试从记录中查找密钥并将其用作流利位中的 logstash 前缀。但即使指定的键存在于过滤器的丰富日志中,这也不会发生并且Logstash_Prefix
不会被替换。Logstash_Prefix_Key
kubernetes
Kubernetes 过滤器的理想行为是input
使用 Kubernetes 数据(例如 pod 名称、pod id、命名空间名称等)丰富通过插件从输入路径读取的日志。当应用过滤器后的日志通过es
输出插件推送到输出源时。我曾经Logstash_Prefix_Key
拿到钥匙kubernetes.pod_name
并给了Logstash_Prefix
as pod_name
。即使我能够kubernetes.pod_name
在 Kibana 中看到密钥,日志也会存储在前缀中pod_name
(这意味着Logstash_Prefix_Key
找不到 tn 日志记录,因此它使用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 堆栈的新手,有人可以帮我解决这个问题吗