[Docker]ELKS收集容器日志就是这么简单

举报
~大鱼~ 发表于 2021/05/27 16:03:44 2021/05/27
【摘要】 场景 随着容器的大量使用,现在docker已经在很多生产环境得到实践,不过,容器的日志,状态,确是一个大问题,我们知道,一般可以使用命令docker logs 来查看一个特定的容器,那如果想要收集当前机器所有容器的日志呢?难不成还要将所有应用都标准化一个日志组件出来,然后将日志挂载到特定目录,然后使用logstash 去收集?当然,这种方式不算特别的方便,那有没有相对方便的方...

场景

随着容器的大量使用,现在docker已经在很多生产环境得到实践,不过,容器的日志,状态,确是一个大问题,我们知道,一般可以使用命令docker logs 来查看一个特定的容器,那如果想要收集当前机器所有容器的日志呢?难不成还要将所有应用都标准化一个日志组件出来,然后将日志挂载到特定目录,然后使用logstash 去收集?当然,这种方式不算特别的方便,那有没有相对方便的方式呢?当然是有的

ELK

  • 《[Docker]ELKS收集容器日志就是这么简单》
  • Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
  • Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索。
  • Kibana 也是一个开源和免费的工具,它Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志
    上一周原理图大家更清晰一点
    《[Docker]ELKS收集容器日志就是这么简单》

三个组件的功能简单来说是收集,整理,展示,其中,Elasticsearch在搜索领域相当的火,在做全文检索方面有相当好的应用,大家有兴趣的可以自己深入研究

使用

在使用前请确保安装好了docker,docker-compose,关于怎么安装,前面的文章也有讲过,如果不会,自己搜索解决,现在我们直接上docker-compose.yml文件

在docker-compose.yml所在的目录下,使用命令sudo docker-compose up -d,然后我们用浏览器打开http://127.0.0.1:5601/,就可以看到如下的界面
《[Docker]ELKS收集容器日志就是这么简单》

如图所示,等1,2都能正常使用的时候,选择create ,这样就会创建索引,我们选中Discover页面,就会看到日志的情况
《[Docker]ELKS收集容器日志就是这么简单》

补充

有人要问了,你这只是收集本机的docker日志,如果想要将A机器的运行日志收到到B机器呢?
假定B机IP为10.10.2.52, 机器 A的docker-compose.yml如下

这里使用tcp协议,将内容指向到B机的logstash暴露的端口,这样就可以正常的收集了

参考:https://github.com/ludekvesely/docker-logspout-elk

文章来源: brucedone.com,作者:大鱼的鱼塘,版权归原作者所有,如需转载,请联系作者。

原文链接:brucedone.com/archives/1024

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。