Docker实战(九):Docker安装ELK环境

本文介绍了如何使用Docker安装ELK(Elasticsearch, Logstash, Kibana)环境,重点关注Logstash 1.5.4和Kibana 4.1.2的安装过程。Logstash配置文件和Kibana的Dockerfile被提及,展示了ELK在日志收集和分析中的简单架构。文章提到了Logstash的standalone和centralized两种工作模式,并强调了Redis在高并发场景中作为缓冲的重要性。" 112135416,10457496,理解三层交换技术,"['网络', '路由器', '交换机', '局域网', '三层交换']
摘要由CSDN通过智能技术生成

Docker安装ELK环境

ELK实际上就是ElasticSearch,Logstash,Kibana的缩写,是日志收集分析的一种解决方案。

  • Elasticsearch一个开源的搜索引擎框架(支持群集架构方式)
  • Logstash集成各种收集日志插件,还是一个比较优秀的正则切割日志工具
  • Kibana一个免费的web应用,支持在web端查看ES的搜索结果

elk是目前比较新也发展比较快的一套数据分析套件,其中Elasticsearch是用来作为存储和查询引擎的,kibana则是位于其之上的一个UI(更偏向于聚合汇总分析),而logstash则是属于ETL工具(数据的提取转换插入)。
在具体的使用过程中,目前觉得logstash算是比较鸡肋的,因为适用的场景有限,而且要扩展必须自己实现。个人建议,如果对es比较熟悉的,完全可以不需要用这个。自己用es加个river插件,那个效果也不错。

ELK简单架构
ELK_Simple

日志收集系统架构整体架构
日志收集系统架构

简单来讲他具体的工作流程就是Logstash agent监控并过滤日志,将过滤后的日志内容发给redis(这里的redis只处理队列不做存储),Logstash index将日志收集在一起交给全文搜索服务ElasticSearch,可以用ElasticSearch进行自定义搜索,通过Kibana来结合 自定义搜索进行页面展示

此外 logstash 的收集方式分为 standalone 和 centralized。
standalone 是所有功能都在一个服务器上面,自发自收,centralized 就是集中收集,一台服务器接收所有shipper(个人理解就是logstash agent)的日志。
其实 logstash本身不分 什么 shipper 和 collector ,只不过就是配置文件不同而已,我们这次按照集中的方式来测试

这里的Logstash分为index和agent两种角色,也可以说是收集方式分为standalone和centralized两种。standalone是所有功能都在一个服务器上面,自发自收,centralized就是集中收集,一台服务器接收所有shipper(个人理解就是logstash agent)的日志。(其实logstash本身不分什么shipper和collector ,只不过就是配置文件不同而已)。Logstash的agent和indexer分开部署,多台agent负责监控、过滤日志,index负责收集日志并将日志交给ElasticSearch做搜索,通过Kibana来结合自定义搜索进行页面展示。Redis实际上是起到了缓冲消峰的作用,否则并发访问量大的时候ES会被拖垮的

192.168.0.1 logstash index,ElasticSearch,kibana,JDK
192.168.0.2 logstash agent,JDK
192.168.0.3 redis

因为上一篇文章已经写过Docker如何安装ES环境了,这里我们直接继承上一次安装好的Docker镜像,所以重点只介绍Logstash和Kibana的安装,本文只是简单的单机ELK环境,后续会逐步完善ELK+Redis的环境,甚至会把ELK单独拆开三个Docker镜像使用

安装Logstash(本文使用的是logstash的1.5.4版本)
# 下载Logstash
$ curl -O https://download.elastic.co/logstash/logstash/logstash-1.5.4.tar.gz

# 解压ES压缩包
$ tar -zxvf logstash-1.5.4.tar.gz

# 在{LOGSTASH_HOME}下新建一个conf目录,在里面新建一个配置文件logstash.conf 
$ cd logstash-1.5.4
$ mkdir conf
$ cd conf

# 编辑logstash.conf如下面的配置
$ vi logstash.conf

# 启动logstash
$ cd {
  LOGSTASH_HOME}/bin/
$ ./logstash -f ../conf/logstash.conf
注意

因为java的默认heap size,回收机制等原因,logstash从1.4.0开始不再使用jar运行方式.

  • 以前方式:
    java -jar logstash-1.3.3-flatjar.jar agent -f logstash.conf
  • 现在方式:
    bin/logstash -f logstash.conf
logstash.conf配置文件
input {
    # 来自控制台
    stdin {
       type => "web"            # ES索引的type
        codec => "json"         # 输入格式是json
    }
    # 来自文件
    file {
        # 文件所在的绝对路径
        path => "/software/logstash-1.5.4/test.log"
        # ES索引的type
        type => 
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值