EFK安装配置
前言
微服务使用Docker部署后,日志处理就是一个问题。我所知道的目前是两种处理方式。
1. 如果项目业务量不大,则可以在docker run的时候通过-v命令把容器内的日志目录挂载到宿主物理机的真实目录上。这样就能直接在物理主机上查看。
例:假设当前主机要运行三个微服务,则三个微服务镜像启动的时候,docker run后面跟 -v /logs:/home/opt/logs则可以将容器内的logs目录挂载到物理主机的/home/opt/logs中。
2. 上面的方法有个最明显的弊端就是如果容器运行在不同的物理主机上,则如果要查看各个微服务的日志,则需要登录各自机器。业务量小还好,如果业务量大,单个微服务势必做负载均衡,运行多个实例,这时候,要每台机器登录,则很耗费时间。还有一点,业务发展到后期,由于应用日志中的数据记录了用户的行为,所以需要做分析提取出有用的数据。
这时候,日志集中式解决框架就派上用场了,我用的是现在泛滥的EFK解决方案,它包办了数据采集,数据分析,数据展示,而且网上中文资源也多。
EFK简介
-
EFK就是elasticsearch+filebeat+kibana,其中elasticsearch是核心,负责数据的存储,分析,检索,filebeat负责数据采集,轻量级的logstash。如果用logstash,就叫ELK,这个简称目前在网上更普遍一点。kibana负责数据展示,用的nodeJs写的一个web网站。 三者的大致工作流程我画了一张图,如下: