如何使用fluentd解析kubelet日志

时间:2019-06-05 01:08:58

标签: parsing fluentd kubelet

原始kubelet日志如下:

I0605 09:03:41.463195   28799 setters.go:72] Using node IP: "10.127.7.174"

我可以流畅地解析为:

format1 /^(?<severity>\w)(?<time>\d{4} [^\s]*)\s+(?<pid>\d+)\s+(?<source>[^ \]]+)\] (?<message>.*)/

但是,kubespary如下部署kubelet: 1.日志收集kubelet日志; 2.我编写了一个rsyslog文件,因此kubelet日志可以存储在/var/log/kubelet.log中。 日志更改为:

Jun  5 09:03:41 k8s-4 kubelet: I0605 09:03:41.463195   28799 setters.go:72] Using node IP: "10.127.7.174"

我想知道如何解析它。

1 个答案:

答案 0 :(得分:1)

我试图解析您的日志示例文件,并使用以下regexp过滤器来获得结果:

format /(?<time>[^ ]* {1,2}[^ ]* [^ ]*) (?<host>[^ ]*) (?<ident>[^ :\[]*)(?:\[(?<pid>[0-9]+)\])?(?:[^\:]*\:)? *(?<message>.*)$/

这将根据Fluentular输出相应地拆分键:

  

时间 2019/06/06 08:19:35 +0000

     

主机 k8s-4

     

身份 kubelet

     

消息 I0605 09:03:41.463195 28799 setters.go:72]使用节点IP:   “ 10.127.7.174”

为了获得更多有关Fluentd regexp的知识,只需阅读documentation

仅供参考。也有机会通过fluent-plugin-systemdsystemd捕获日志。