当前位置: > Linux集群 > Hadoop >

fluentd结合kibana、elasticsearch实时搜索分析hadoop集群日志

时间:2015-03-09 21:31来源:linux.it.net.cn 作者:IT

Fluentd是一个开源收集事件和日志系统,它目前提供150+扩展插件让你存储大数据用于日志搜索,数据分析和存储。

官方地址http://fluentd.org/  插件地址http://fluentd.org/plugin/

Kibana 是一个为 ElasticSearch 提供日志分析的 Web ui工具,可使用它对日志进行高效的搜索、可视化、分析等各种操作。官方地址http://www.elasticsearch.org/overview/kibana/

elasticsearch 是开源的(Apache2协议),分布式的,RESTful的,构建在Apache Lucene之上的的搜索引擎.

官方地址http://www.elasticsearch.org/overview/    中文地址 http://es-cn.medcl.net/

 

具体的工作流程就是利用fluentd 监控并过滤hadoop集群的系统日志,将过滤后的日志内容发给全文搜索服务ElasticSearch, 然后用ElasticSearch结合Kibana 进行自定义搜索web页面展示.

下面开始说部署方法和过程。以下安装步骤在centos 5 64位测试通过

一、  elasticsearch安装部署

elasticsearch 官方提供了几种安装包,适用于windows的zip压缩包,适用于unix/linux的tar.gz压缩包,适用于centos系统的rpm包和ubuntu的deb包。大家可以自己选择安装使用。

因为elasticsearch 需要java环境运行,首先需要安装jdk,安装步骤就省略了。

使用.tar.gz压缩包安装部署的话,先下载压缩包

# wget  https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.5.tar.gz

# tar zxvf elasticsearch-0.90.5.tar.gz

////////////如果是单机部署

# cd elasticsearch-0.90.5

# elasticsearch-0.90.5/bin/elasticsearch -f

就可以启动搜索服务了,查看端口9200是否打开,如果打开说明启动正常。

////////////////如果是部署集群的话,需要进行配置

例如在192.168.0.1   192.168.0.2 两台服务器部署,两台服务器都安装好jdk,下载elasticsearch 解压缩,然后编辑配置文件

//////////////////////192.168.0.1   服务器编辑文件

vi elasticsearch-0.90.5/config/elasticsearch.yml

删除cluster.name 前面注释,修改集群名称 

cluster.name: es_cluster

删除node.name前注释 ,修改节点名称,不修改的话,系统启动后会生成随即node名称。

node.name: "elastic_inst1"

node.master: true    设置该节点为主节点

 

/////////////////////////192.168.0.2  编辑文件

 

vi elasticsearch-0.90.5/config/elasticsearch.yml

删除cluster.name 前面注释,修改集群名称 

cluster.name: es_cluster

删除node.name前注释 ,修改节点名称,不修改的话,系统启动后会生成随即node名称。

node.name: "elastic_inst2"

node.master: false    设置该节点为主节点

 

分别启动两台服务器的服务后,在192.168.0.2的日志中会看到

 [elastic_inst2] detected_master [elastic_inst1]     日志信息。说明集群连接成功。

 

二、安装部署fluentd

在需要监控分析的hadoop集群节点中安装fluentd,安装步骤很简单

 

curl -L http://toolbelt.treasure-data.com/sh/install-redhat.sh | sh

 

安装完成后,编辑配置文件

# vim /etc/td-agent/td-agent.conf

 

 
  1. <source>  
  2.   type tail  #### tail方式采集日志  
  3.   path /var/log/hadoop/mapred/hadoop-mapred-tasktracker-node-128-70.log   ### hadoop日志路径  
  4.   pos_file /var/log/td-agent/task-access.log.pos  
  5.   tag task.mapred  
  6.   format /^(?<message>.+(WARN|ERROR).+)$/   #### 收集error 或者warn 日志。  
  7. </source>  
  8.   
  9. <match task.**>  
  10.   host 192.168.0.1  #####  <SPAN style="FONT-FAMILY: Arial, Helvetica, sans-serif">elasticsearch 服务器地址</SPAN>  
  11.   type elasticsearch  
  12.   logstash_format true  
  13.   flush_interval 5s  
  14.   include_tag_key true  
  15.   tag_key mapred  
  16. </match>  

启动fluentd 服务

 

# service td-agent start

 

三、安装部署kibana 3

kibana 3 是使用html 和javascript 开发的web ui前端工具。

下载 wget http://download.elasticsearch.org/kibana/kibana/kibana-latest.zip

解压缩 unzip kibana-latest.zip

安装apache    yum -y install httpd

cp -r  kibana-latest /var/www/html

因为我将kibana3 安装在和elasticsearch同一台服务器中,所以不用修改配置文件

启动apache  service httpd start

打开浏览器 http://ip/kibana 就可以看到kibana 界面

初次使用kibana 需要自己定义模块

 

 

 



(责任编辑:IT)
------分隔线----------------------------