设为首页 收藏本站
查看: 1129|回复: 0

[经验分享] 结合Docker快速搭建ELK日志收集分析平台

[复制链接]

尚未签到

发表于 2018-5-28 08:42:10 | 显示全部楼层 |阅读模式
结合Docker快速搭建ELK日志收集分析平台
  2017-03-27 09:39 阅读 172 评论 0
作者:马哥Linux运维-Eason
ELK Stack
ELK (Elasticsearch + Logstash + Kibana),是一个开源的日志收集平台,用于收集各种客户端日志文件在同一个平台上面做数据分析。
Introduction
Elasticsearch, 基于json分析搜索引擎
Logstash, 动态数据收集管道
Kibana, 可视化视图将elasticsearh所收集的data通过视图展现

DSC0000.jpg
工作流程
Background
起初我们搭建ELK platform都是通过rpm包或者repo的形式直接setup在服务器机器上面,这给运维后期带来的一个问题就是,每起一个新的ELK platform都需要重新setup在新的机器上面,而从运维的角度去减少这样的重复性effort变得异常突出,下面是根据我自身的经验来介绍如何通过docker solution去快速启动一个新的ELK platform,而无需重新setup。
Prerequisite
DSC0001.png
1.Clone GIT folder到本地,branch: master
建议放在user HOME下面,eg:/home/user1/
DSC0002.png
2.根据你的需求选择配置环境变量
a. Elasticsearch + Logstash + Kibana 运行在同一个机器下面,相关配置文件 : ~/elasticstack/.env

DSC0003.png
b. Elasticsearch + Logstash + Kibana 分别分开运行在不同的机器下面,各自相关的配置文件如下:

  •   Elasticsearch: ~/elasticstack/elasticsearch/.env
DSC0004.jpg

  •   Logstash: ~/elasticstack/logstash/.env
DSC0005.jpg

  •   Kibana: ~/elasticstack/kibana/.env
DSC0006.jpg
上述配置文件包含的配置属性均属于基本配置属性,为了可以更方便的修改配置文件,结合docker-compose自动搜索并加载.env的特性,将ELK所需要的基本配置抽离出来作为单个.env文件来修改配置,而不需要通过逐个配置文件进行修改,下面对上述基本属性简单描述:

  •   environment: 用来区分ELK platform的当前环境,通常有qa/prod,你也可以根据自己的情况指定为自己想要的value
  •   E_LOCAL_DATA_PATH: 设置elasticsearch data存储在宿主机的相对路劲或者绝对路径,默认为/usr/data/
  •   L_ELASTICSEARCH_HOST_ENV: 由于docker-compose里边设置了network_mode等于host,使得方便同一台机器上面方便logstash和elasticsearch通信,所以如果logstash和elasticsearch跑在同一台机器上面(a),可以直接使用localhost来指定连接elasticsearch host;如果logstash和elasticsearch在不同机器上(b),则需要指定对应elasticsearch所在机器的hostname
  •   K_ELASTICSEARCH_HOST_IP: 和L_ELASTICSEARCH_HOST_ENV一样由于network_mode等于host,如果kibana和elasticsearch在同一台机器上,只需要指定0.0.0.0 or 127.0.0.1(经过多次试验,由于kibana自身加载yaml配置文件的方式貌似无法通过$获取环境变量,而是单纯获取对应properties的string,所以这里通过extra_link的方式在kibana的container里边添加了一个DNS record,所以需要使用IP而不是hostname);相应的如果处于不同的机器(b),需指定elasticsearch所在机器的IP。
    以上配置属性都是启动ELK所需要的基本配置,如果有需要更多的配置,可以手动修改相应的配置文件或者联系微信lexmay 或email: eason.lau02@hotmail.com
3.配置完成后,使用docker-compose启动ELK service
关于docker-compose文件,通常不需要改动,你也可以根据自己的需求添加container的properties,你可以在docker-compose文件里看到上面配置的属性都当成环境变量传递进去,eg: ~/elasticstack/docker-compose.yml:

DSC0007.png
以上所用到的image都是自己构建然后放在hub.docker.com官网repository,相应Dockerfile构建如下 :

  •   elasticsearh: ~/elasticstack/elasticsearch/Dockerfile
  •   logstash: ~/elasticstack/logstash/Dockerfile
  •   kibana: ~/elasticstack/kibana/Dockerfile
a. 运行在同一个机器,相关compose文件: ~/elasticstack/docker-compose.yml
DSC0008.png
b. 分开运行不同机器,相关compose文件:
Elasticsearch: ~/elasticstack/elasticsearch/docker-compose.yml
Logstash: ~/elasticstack/logstash/docker-compose.yml
Kibana: ~/elasticstack/kibana/docker-compose.yml


  •   eg:
Elasticsearch in host1:
DSC0009.png
Logstash in host2:
DSC00010.png
Kibana in host3:
DSC00011.png
4.通过kibana host+5601端口访问查看启动效果,<kibana host>:5601
DSC00012.jpg
成功启动
如果看到上述界面,说明配置启动成功,你可以看到Unable to fetch mapping. Do you have indices match…,是因为还没有使用beats plugin将log发送到logstash或者elasticsearch,所以不能建立index。
** 文章所有步骤都是经过实践检验并可行,若有问题,下方请评论。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-481990-1-1.html 上篇帖子: docker下centos7 systemctl启动报错 docker Failed to get D 下篇帖子: docker 基础
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表