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 需要自己定義模塊