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
- <source>
- type tail #### tail方式采集日志
- path /var/log/hadoop/mapred/hadoop-mapred-tasktracker-node-128-70.log ### hadoop日志路径
- pos_file /var/log/td-agent/task-access.log.pos
- tag task.mapred
- format /^(?<message>.+(WARN|ERROR).+)$/ #### 收集error 或者warn 日志。
- </source>
-
- <match task.**>
- host 192.168.0.1 ##### <span style="font-family:Arial,Helvetica,sans-serif">elasticsearch 服务器地址</span>
- type elasticsearch
- logstash_format true
- flush_interval 5s
- include_tag_key true
- tag_key mapred
- </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 需要自己定义模块