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 许可协议。转载请注明来自 螃蟹壳!