加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

结合Docker快速搭建ELK日志收集分析平台

发布时间:2021-01-12 23:37:20 所属栏目:站长百科 来源:网络整理
导读:《结合Docker快速搭建ELK日志收集分析平台》要点: 本文介绍了结合Docker快速搭建ELK日志收集分析平台,希望对您有用。如果有疑问,可以联系我们。 作者:马哥Linux运维-Eason ELK Stack ELK?(Elasticsearch + Logstash + Kibana),是一个开源的日志收集平台,
副标题[/!--empirenews.page--]

《结合Docker快速搭建ELK日志收集分析平台》要点:
本文介绍了结合Docker快速搭建ELK日志收集分析平台,希望对您有用。如果有疑问,可以联系我们。

作者:马哥Linux运维-Eason

ELK Stack

ELK?(Elasticsearch + Logstash + Kibana),是一个开源的日志收集平台,用于收集各种客户端日志文件在同一个平台上面做数据分析.

Introduction

Elasticsearch,基于json分析搜索引擎
Logstash,动态数据收集管道
Kibana,可视化视图将elasticsearh所收集的data通过视图展现

工作流程

Background

起初我们搭建ELK platform都是通过rpm包或者repo的形式直接setup在服务器机器上面,这给运维后期带来的一个问题就是,每起一个新的ELK platform都需要重新setup在新的机器上面,而从运维的角度去减少这样的重复性effort变得异常突出,下面是根据我自身的经验来介绍如何通过docker solution去快速启动一个新的ELK platform,而无需重新setup.

Prerequisite

1.Clone GIT folder到本地,branch:?master

建议放在user HOME下面,eg:/home/user1/

2.根据你的需求选择配置环境变量
a. Elasticsearch + Logstash + Kibana 运行在同一个机器下面,相关配置文件 :?~/elasticstack/.env

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

  • Elasticsearch:?~/elasticstack/elasticsearch/.env

  • Logstash:?~/elasticstack/logstash/.env

  • Kibana:?~/elasticstack/kibana/.env

上述配置文件包含的配置属性均属于基本配置属性,为了可以更方便的修改配置文件,结合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:

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

  • elasticsearh:?~/elasticstack/elasticsearch/Dockerfile
  • logstash:?~/elasticstack/logstash/Dockerfile
  • kibana:?~/elasticstack/kibana/Dockerfile

a. 运行在同一个机器,相关compose文件:?~/elasticstack/docker-compose.yml

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读