《结合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 分别分开运行在不同的机器下面,各自相关的配置文件如下:
上述配置文件包含的配置属性均属于基本配置属性,为了可以更方便的修改配置文件,结合docker-compose自动搜索并加载.env的特性,将ELK所需要的基本配置抽离出来作为单个.env文件来修改配置,而不需要通过逐个配置文件进行修改,下面对上述基本属性简单描述:
3.配置完成后,使用docker-compose启动ELK service
关于docker-compose文件,通常不需要改动,你也可以根据自己的需求添加container的properties,你可以在docker-compose文件里看到上面配置的属性都当成环境变量传递进去,eg: ~/elasticstack/docker-compose.yml:
以上所用到的image都是自己构建然后放在hub.docker.com官网repository,相应Dockerfile构建如下 :
a. 运行在同一个机器,相关compose文件: ~/elasticstack/docker-compose.yml
b. 分开运行不同机器,相关compose文件:
Elasticsearch: ~/elasticstack/elasticsearch/docker-compose.yml
Logstash: ~/elasticstack/logstash/docker-compose.yml
Kibana: ~/elasticstack/kibana/docker-compose.yml
Elasticsearch in host1:
Logstash in host2:
Kibana in host3:
4.通过kibana host+5601端口访问查看启动效果,<kibana host>:5601
成功启动
如果看到上述界面,说明配置启动成功,你可以看到Unable to fetch mapping. Do you have indices match…,是因为还没有使用beats plugin将log发送到logstash或者elasticsearch,所以不能建立index.
** 文章所有步骤都是经过实践检验并可行,若有问题,下方请评论.
转载请注明本页网址:
http://www.vephp.com/jiaocheng/4299.html