ELK平台的搭建

  ELK是指Elasticsearch + Logstash + Kibaba三个组件的组合。本文讲解一个基于日志文件的ELK平台的搭建过程,有关ELK的原理以及更多其他信息,会在接下来的文章中继续研究。
  在这个系统中,Elasticsearch主要充当一个全文检索和分析引擎,Logstash是一款分布式日志收集系统,Kibana可以为这个平台提供可视化的Web界面。

一、环境准备

  三台虚拟机:m000,m001,m002,操作系统版本为Ubuntu-14.04
  Elasticsearch-2.3.2
  Logstash-2.3.2
  Kibana-4.5.1
  JDK-1.7.0_79  
  
  在该系统中ELK的关系如下图所示:
  ELK系统

二、各组件的部署

  ELK的运行依赖于Java环境,JDK可自行安装,本节主要讲Elasticsearch,Logstash和Kibaba的安装和配置过程。

1、Elasticsearch

(1)elasticsearch
  下载地址:https://www.elastic.co/downloads/elasticsearch
  下载好后,上传到m000:/usr/local/elk路径下解压缩,设置/usr/local/elasticsearch软连接指向该路径。进入ES_HOME/config目录中编辑elasticsearch.yml文件。设置network.host: m000http.port: 9200设置访问地址和端口号,否则不能在浏览器中访问。设置cluster.name: es_clusternode.name: m000,这两个参数主要设置ES集群的集群名称,以及这台机器在集群中的名称。设置path.data: /usr/local/elasticsearch/datapath.logs: /usr/local/elasticsearch/logs,这两个参数主要设置ES存储data和log的路径。
  配置好后启动输入ES_HOME/bin/elasticsearch命令启动es(加入参数-d,es会在后台运行),正常启动如下图:
  这里写图片描述
  在另外一个命令窗口中检查启动状态,
  这里写图片描述
  也可在页面上查看,输入m000:9200,
  这里写图片描述

  经过上述操作检查无误后,可以将m000上的elasticsearch分发到m001和m002机器上,记得分发后修改各自的node.name以及network.host两个属性。网上很多关于Elasticsearch的安装中都说道,保持每台机器上的cluster.name属性一致时,如果将各自的es服务都启动,系统会自动将cluster name相同的机器组成一个集群。但是在本次操作中发现,这个描述对Elasticsearch-2.3.3版本无效,集群需要手动指定。分别修改m000, m001, m002三台机器上的elasticsearch.yml文件,在其中加入discovery.zen.ping.unicast.hosts: ["m000", "m001", "m002"]discovery.zen.minimum_master_nodes: 2参数后,将m000-003上的elasticsearch服务启动才能组成一个集群。

(2)head插件
  Elasticsearch可以安装很多插件,接下来我们安装一个head插件,用于查看集群相关信息。往往大多数生产环境中服务器都不能联外网,所以我们采取下载安装的方式。
  Head插件的下载地址:https://github.com/mobz/elasticsearch-head
下载后,在ES_HOME/plugins路径下解压缩,重命名成head,并删除压缩包。这样,在启动m000, m001和m002上的ES服务后,在http://m000:9200/_plugin/head/可以在页面上看到如下信息:
这里写图片描述
  在这个页面上可以看到有三台机器,其中m000是master节点,在该页面上可以查看各节点的其他信息。
  
(3)marvel插件
  Marvel是Elasticsearch的管理和监控工具,它提供了一个叫做Sense的交互式控制台供用户通过浏览器直接与Elasticsearch进行交互。有关这个插件的联网安装方式,网上也有很多介绍,本文仍然以Offline方式安装marvel插件。
  下载以下三个文件:

2、Logstash

  下载地址:https://www.elastic.co/downloads/logstash
  下载好后,上传到m000:/usr/local/elk路径下解压缩,设置/usr/local/logstash软连接指向该路径。
  接下来用Logstash将Hadoop的yarn日志加载进来,进入LS_HOME,新建一个config_file目录存储自定义配置文件log.conf。

input {
  file {
    type => "hadoop-yarnlog"
    path => "/usr/local/hadoop/logs/yarn-hadoop-resourcemanager-m000.log"
  }
}

output {
  elasticsearch {
    hosts => "m000:9200"
    index => "logstash-%{type}-%{+YYYY.MM.dd}"
    template_overwrite => true
  }
}

  启动Logstash,LS_HOME/bin/logstash agent -f config_file/log.conf在ES的head页面可以看到多了一个logstash-hadoop-yarnlog的文件,下图中前面两个是marvel相关数据。
  这里写图片描述
  可以在数据浏览,基本查询,复合查询中对该文件进行相关的查询操作。比如输入时间参数查看最近4分钟的日志文件:
  这里写图片描述
  更多的查询操作,可以在对Elasticsearch进一步学习中讲解到。
  

3、Kibana

  下载地址:https://www.elastic.co/downloads/kibana
  下载好后,上传到m000:/usr/local/elk路径下解压缩,设置/usr/local/kibana软连接指向该路径。进入KB_HOME/config文件夹,编辑kibana.yml文件,设置server.port: 5601, server.host: "m000, elasticsearch.url: "http://m000:9200"
  启动kibaba,KB_HOME/bin/kibana, 正常启动可以在控制台中看到如下信息:
  这里写图片描述
  在浏览器中输入m000:5601,可以看到如下页面:
  这里写图片描述
看到上图中的界面,表示ELK已经正常配置了,点击Create–>Discover
这里写图片描述
可以看到加载的日志文件中的一些数据。

  最后继续在Kibana中把marvel插件安装完成。输入KB_HOME/bin/kibana plugin --install marvel --url file:///usr/local/elk/marvel-2.3.3.tar.gz如下图
  这里写图片描述
启动kibana,浏览器访问m000:5601,点击选图中的红色方框,
这里写图片描述
在新窗口中选择Marvel,可以看到Elasticsearch集群的监控信息,
这里写图片描述
点击上图中的es_cluster,可以看到es_cluster集群中各节点详细监控信息,
这里写图片描述

  有关Elasticsearch,Logstash,Kibana更多细节,后面继续补充。

posted on 2016-06-26 23:05  吴一达  阅读(180)  评论(0编辑  收藏  举报

导航