elk/elasticsearch+fluentd+kibana

分佈式日誌收集系統

日誌收集系統採用elasticsearch+fluentd+kibana,用fluentd代替elk社區裏的logstash,logstas的插件是最多的,同時logstash的性能和資源消耗太高,經某站大佬壓力測試,在環境爲2核4g的雲計算服務器上,logstash寫入qps極限爲8000,通過結合易瑞現有詢報價系統,同時也是用戶3000+的項目產品,logstash負載壓力顯然承受不住,服務器資源消耗太嚴重,所以基於以上考慮採用新型日誌收集產品fluentd來代替logstash,相應的技術資料爲下圖:
elk/elasticsearch+fluentd+kibana
題外話:亞馬遜雲用的fluentd,阿里雲用的自研logtail,logtail是性能目前是最高的。
分佈式日誌系統架構圖初步設計爲:

系統環境:centos6
運行環境:jdk1.8, ruby2.0, fluentd2.3.5, elasticsearch1.7.1, kibana5.0.2
fluentd官方網站: http://www.fluentd.org/
fluentd插件下載地址:https://www.fluentd.org/plugins/all
elasticsearch: https://www.elastic.co/products/elasticsearch
kibana:https://www.elastic.co/products/kibana
相互依賴的關係:fluentd需求ruby≥2.0,elasticsearch需求 jdk環境≥1.8。
ruby中網https://ruby-china.org/topics/node1
環境實例:
架構:堡壘機負責收集存儲日誌信息並對提供對外訪問展示(fluentd,elsticsearch,kinbana)
服務器列表:nginx01/172.17.96.200
nginx02/172.17.96.201
堡壘機:172.17.180.114

安裝fluentd
官方技術文檔請參考https://docs.fluentd.org/v0.12/categories/installation
官方下載地址:https://www.fluentd.org/download
fluentd 的運行環境爲ruby
ruby環境:
tar zxvf ruby-2.3.1.tar.gz
cd ruby-2.3.1
./configure
make
make install
然後加入環境變量
vim /etc/profile
export path=/usr/local/src/ruby-2.3.1/bin:$path
source /etc/profile
runy --version
elk/elasticsearch+fluentd+kibana
安裝成功

fluentd系統採用2.3.6版本
wget http://packages.treasuredata.com.s3.amazonaws.com/2/redhat/6/x86_64/td-agent-2.3.5-0.el6.x86_64.rpm
rpm –ivh td-agent-2.3.5-0.el6.x86_64.rpm
elk/elasticsearch+fluentd+kibana
安裝後的目錄爲:/etc/td-agent
配置文件默認存放位置:/etc/td-agent/td-agent.conf

安裝fluentd的必要插件(重要)
與elasticsearch通信.或者安裝mongo插件,數據存放mongodb中,或者直接安裝kibana插件,數據輸出到kibana,上面插件地址有介紹,根據自己實際環境需要進行操作

td-agent-gem install fluent-plugin-elasticsearch
字段插件(fluentd爲模塊化產品,藉助各種模塊實現收集功能類似nginx):
td-agent-gem install fluent-plugin-typecast
td-agent-gem install fluent-plugin-secure-forward
安裝fluentd三個必要插件
elk/elasticsearch+fluentd+kibana
elk/elasticsearch+fluentd+kibana
啓動fluentd
elk/elasticsearch+fluentd+kibana
fluentd安裝成功
啓動成功,然後我們修改一下fluentd配置文件與elasticsearch進行通信存儲:
<source>
@type tail
path /usr/local/nginx/logs/access.log
format /^(?<host>[^ ]) [^ ] (?<user>[^ ]) [(?<time>[^]])] "(?<method>\S+)(?: +(?<path>[^ ]) +\S)?" (?<code>[^ ]) (?<size>[^ ])(?: "(?<referer>[^\"])" "(?<agent>[^\"])")?$/
time_format %d/%b/%Y:%H:%M:%S %z
tag 200nginx.access
pos_file /opt/log/nginx.access.log.pos
</source>
<match **>
@type elasticsearch
flush_interval 1s
host 172.17.180.114
port 9200
include_tag_key true
tag_key @log_name
logstash_format true
</match>
elk/elasticsearch+fluentd+kibana
elasticsearch安裝
環境需求:jdk1.8
wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.1.tar.gz
tar zxvf elasticsearch-1.7.1.tar.gz
cd elasticsearch-1.7.1
下載kopf和head插件kopf是集羣資源,數據的查詢插件,注意kopf和els有版本依賴,head數據查詢配合kopf一起使用更佳
./elasticsearch-1.7.1/bin/plugin install lmenezes/elasticsearch-kopf/1.0
./elasticsearch-1.7.1/bin/plugin install mobz/elasticsearch-head

git地址:https://github.com/lmenezes/elasticsearch-kopf
安裝後訪問http://localhost:9200/_plgin/head
elk/elasticsearch+fluentd+kibana
訪問http://localhost:9200/_plugin/kopf
elk/elasticsearch+fluentd+kibana
注意畫紅線的這段內容,表示我們上面fluentd配置已經收集到我們需要的日誌,下一步安裝kibana讓es中的字段以圖形化顯示出來

安裝kibana
wget https://artifacts.elastic.co/downloads/kibana/kibana-5.0.2-linux-x86_64.tar.gz
tar -xzf kibana-5.0.2-linux-x86_64.tar.gz

最新版本爲6.0
與es進行關聯:
cd kibana-5.0.2-linux-x86_64/config
vim kibana.yml(需要修改下列host列和es的url)
elk/elasticsearch+fluentd+kibana
kibana使用時會首先創建模版(可用默認)
然後我們需要查看剛纔抓取的日誌
elk/elasticsearch+fluentd+kibana
注意:1,es中的日誌數據區分是按天算每天生成新文件,從這裏可以按我們每臺服務器定義的文件名進行查看,可根據該tag名進行分類查看
2,查看/顯示需要的字段值
3,產生的點擊數
4,查找/類別(時間段)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章