kubernetes集群部署EFK+ELK+Kafka日志管理方案

前言
在生产环境中,日志对于排查问题至关重要,我们需要有一个日志管理系统kubernetes可以实现elk的快速部署和使用,通过statefulset控制器部署elasticsearch集群组件,用来检索存储日志数据;使用hostpath或者volumenclaimtemplate动态生成pv实现es数据的持久化;通过deployment部署kibana组件,实现日志的可视化管理;通过daemonset控制器部署fluentd组件,来收集各节点和k8s集群控制台的日志;通过daemonset控制器部署filebeat组件,来收集应用服务内部的日志;通过kafka/redis做消息队列缓存,减轻logstash的数据处理压力。流向如下:

kubernetes集群部署EFK+ELK+Kafka日志管理方案_第1张图片

资料下载

1.EFK的yaml文件所在的github地址如下:

https://github.com/luckylucky421/efk

2.efk组件需要的镜像获取方式在百度网盘

链接:https://pan.baidu.com/s/1lsP2_NrXwOzGMIsVCUHtPw

提取码:kpg2

3.efk部署操作参考文章:

https://blog.csdn.net/weixin_38320674/article/details/105852646

       efk部署很详细了,不做叙述了,此时只是采集到集群控制台输出的日志,实际生产应用的日志保存在各自的容器目录中,我们日常排查问题更多的是取这块的日志,采用一个pod下面同时部署app服务容器和filebeat容器,两者通过emptydir模式挂载volume,filebeat获取到日志再发送至kafka消息队列,logstash订阅kafka的主题获取并处理日志,最终发送给ES通过kibana展示。

待续~

你可能感兴趣的:(kubernetes,k8s,kubernetes)