基于EFK实现kubernetes集群的日志平台

EFK

EFK由ElasticSearch、Fluentd和Kiabana三个开源工具组成。

EFK-architecture.png

Elasticsearch

  • 一个分布式的实时文档存储,每个字段可以被索引与搜索。
  • 一个分布式实时分析搜索引擎。
  • 能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据。

Fluentd

一个针对日志的收集、处理、转发系统。

运行步骤:
  1. 首先 Fluentd 从多个日志源获取数据
  2. 结构化并且标记这些数据
  3. 然后根据匹配的标签将数据发送到多个目标服务

Kibana

Kibana是一个开源的分析和可视化平台。

部署要点

  • ES生产环境是部署ES集群,通常会使用Statefulset进行部署。
  • ES的数据目录是通过宿主机的路径挂载,因此目录权限被主机的目录权限覆盖所以注意权限的问题。<chown -R 1000:1000 /usr/share/elasticsearch/data>
  • Kibana需要暴漏web页面所以可搭配ingress。
  • Fluentd为日志采集服务,通常会使用Daemonset进行部署。
  • Fluentd需要配置RBAC规则,因为需要访问k8s api去根据日志查询元数据。
  • 需要将fluentd的configmap中的配置文件挂载到容器内。
  • 需要将/var/log/containers/目录挂载到容器中。

发表评论