Elasticsearch + Fluentd + Kibana搭建Docker日志管理系统
 随着Docker容器广泛应用,不同的容器都会产生日志。对大规模运行的容器集群来说,日志不能统一管理是很耗费精力的。大量的微服务,各个容器服务是有相互调用的,这时候发现问题时,通过日志排查问题,需要查看对应各个容器的日志。如果没有一个统一的日志管理工具,没有可视化Web查看,是很痛苦的,而且不方便快速定位问题。
 为了统一日志管理,现在有了Fluentd,但日志的检索,查看就依赖于其他工具了。这里我们使用Elasticsearch + Fluentd + Kibana搭建Docker日志管理系统。这3个系统又简称EFK。
 Elasticsearch是一个以易用性着称的开源搜索引擎。
 Fluentd是一个日志管理工具。
 Kibana是一个开源的Web UI,使Elasticsearch对工程师和数据科学家都很友好。
 通过这3个系统,我们使用Docker compose搭建我们的日志系统。
搭建服务
准备docker-compse.yml文件
| 1 | version: '2' | 
当前目录下fluentd/Dockerfile文件。使用Fluentd的官方Docker镜像,并另外安装Elasticsearch插件。
| 1 | FROM fluent/fluentd:v1.3 | 
准备Fluentd的配置文件fluentd/conf/fluent.conf
| 1 | <source> | 
启动容器
| 1 | docker-compose up | 
可以使用docker ps命令检查容器
测试
搭建nginx服务,使用fluentd管理日志
| 1 | docker run -d \ | 
访问服务curl localhost:8080
主要nginx服务必须在fluentd服务启动后再启动,否则日志不生效。
例如这种情况:

通过Kibana查看日志
在你的浏览器中访问http://localhost:5601/,然后为Kibana设置匹配的索引名,请使用**fluentd-\***作为索引名,并点击“Create”按钮。

去Discover页面选项卡查看日志

参考文章
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 螃蟹壳!
