Logging 仅为选定的吊舱激活kubernetes日志
我想用Logging 仅为选定的吊舱激活kubernetes日志,logging,kubernetes,fluentd,fluent-bit,Logging,Kubernetes,Fluentd,Fluent Bit,我想用please\u log\u with\u parser:myparser这样的注释对一些kubernetes pods进行注释,并用fluentbit这样的注释将这些pods的日志与给定的解析器一起处理到我们的弹性搜索集群中 对于fluentbit,我只知道注释fluentbit.io/exclude,但这将导致必须注释所有其他POD。-是否可以告诉fluentbit仅处理具有标签的日志,或者在没有适当注释的情况下丢弃所有消息 是否有一种替代fluentbit的方法可以做到这一点?一种方
please\u log\u with\u parser:myparser
这样的注释对一些kubernetes pods进行注释,并用fluentbit
这样的注释将这些pods的日志与给定的解析器一起处理到我们的弹性搜索集群中
对于fluentbit,我只知道注释fluentbit.io/exclude
,但这将导致必须注释所有其他POD。-是否可以告诉fluentbit仅处理具有标签的日志,或者在没有适当注释的情况下丢弃所有消息
是否有一种替代fluentbit的方法可以做到这一点?一种方法是结合使用
kubernetes
、nest
、和grep
中的过滤器
您可以使用kubernetes
过滤器创建如下元数据:
{
"kubernetes": {
"pod_name": "myapp-0",
"namespace_name": "default",
"pod_id": "216cd7ae-1c7e-11e8-bb40-000c298df552",
"annotations": {
"please_log_with_parser": "myparser"
},
"host": "minikube",
"container_name": "myapp",
"docker_id": "370face382c7603fdd309d8c6aaaf434fd98b92421ce7c7c8aafe7697d4aa362"
}
}
rawConfig: |-
@INCLUDE fluent-bit-service.conf
@INCLUDE fluent-bit-input.conf
@INCLUDE fluent-bit-filter.conf
[FILTER]
Name nest
Match *
Operation lift
Nested_under kubernetes
Add_prefix kubernetes_
[FILTER]
Name nest
Match *
Operation lift
Nested_under kubernetes_annotations
Add_prefix kubernetes_annotations_
[FILTER]
Name grep
Match *
Regex kubernetes_annotations_fluentbit.io/parser .*
[FILTER]
Name nest
Match *
Operation nest
Wildcard kubernetes_annotations_*
Nest_under kubernetes_annotations
Remove_prefix kubernetes_annotations_
[FILTER]
Name nest
Match *
Operation nest
Wildcard kubernetes_*
Nest_under kubernetes
Remove_prefix kubernetes_
@INCLUDE fluent-bit-output.conf
然后使用nest
将注释提升到顶层。
然后使用grep
放弃该记录,如果该注释存在,则仅保留该记录
我的头盔值现在如下所示:
{
"kubernetes": {
"pod_name": "myapp-0",
"namespace_name": "default",
"pod_id": "216cd7ae-1c7e-11e8-bb40-000c298df552",
"annotations": {
"please_log_with_parser": "myparser"
},
"host": "minikube",
"container_name": "myapp",
"docker_id": "370face382c7603fdd309d8c6aaaf434fd98b92421ce7c7c8aafe7697d4aa362"
}
}
rawConfig: |-
@INCLUDE fluent-bit-service.conf
@INCLUDE fluent-bit-input.conf
@INCLUDE fluent-bit-filter.conf
[FILTER]
Name nest
Match *
Operation lift
Nested_under kubernetes
Add_prefix kubernetes_
[FILTER]
Name nest
Match *
Operation lift
Nested_under kubernetes_annotations
Add_prefix kubernetes_annotations_
[FILTER]
Name grep
Match *
Regex kubernetes_annotations_fluentbit.io/parser .*
[FILTER]
Name nest
Match *
Operation nest
Wildcard kubernetes_annotations_*
Nest_under kubernetes_annotations
Remove_prefix kubernetes_annotations_
[FILTER]
Name nest
Match *
Operation nest
Wildcard kubernetes_*
Nest_under kubernetes
Remove_prefix kubernetes_
@INCLUDE fluent-bit-output.conf
这回答了你的问题吗@ArghyaSadhu不是。这是关于排除某个名称空间中的所有内容。我的只包括带注释的豆荚。