参考资料

https://github.com/elastic/beats/tree/master/deploy/kubernetes
https://stackoverflow.com/questions/50931623/multi-line-logs-into-es-from-filebeat-deployed-as-kubernetes-daemonset
https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/fluentd-elasticsearch
https://arch-long.cn/articles/elasticsearch/FileBeat.html

需要把日志输出到控制台

修改logback.xml

控制台日志格式:%d [%thread] %c:%L-%m%n

使用stdout的方式输出日志

EFK安装

E:elasticsearch

F:filebeat,代替logstash

K:kibana

尝试了fluentd,fluent-bit,结果还是亲儿子filebeat支持的最好.

安装filebeat和kibana 下载filebeat.zip配置文件

应用控制台输出的内容会被docker容器捕捉为stdout和stderr,业务细节记录的log还需要单独处理,目前只处理了stdout和stderr,哪位同事有兴趣可以把业务log搞下.

使用kibana

访问http://10.0.8.28:32564

设置需要检索的日志库

选择日志库

filebeat-*

选择按照时间过滤的字段

@timestamp

设置需要查看的字段

一般有:message,stream,kubernetes.container.name

message:日志详细信息

stream: stdout和stderr

kubernetes.container.name:可以认为是项目名称

设置自己的过滤器

例如查询 cgz 项目的日志