ElasticStack 日志分析構(gòu)建

ElasticStack日志系統(tǒng)

Elastic Stack

簡介

Elastic Stack 是原 ELK Stack 在 5.0 版本加入 Beats 套件后的新稱呼。Elastic Stack 在實時日志處理領(lǐng)域已開成開源界的第一選擇

組件

Kibana

Kibana用來實現(xiàn)數(shù)據(jù)的可視化。Kibana以圖表的形式呈現(xiàn)數(shù)據(jù)。并且具有可擴展的用戶頁面,可以用來全方位配置和管理Elastic Stack

Elasticsearch

Elasticsearch 用來搜索、分析、存儲數(shù)據(jù)。Elasticsearch是基于JSON的分布式搜索和分析引擎,

Beats

Beats是一個輕量級的采集器,支持在邊緣向Logstash和Elasticsearch 發(fā)送數(shù)據(jù)

FileBeat

Filebeat 是一個輕量級的日志采集器,用于將源數(shù)據(jù)采集后發(fā)送給Logstash,并且Filebeat使用背壓敏感協(xié)議,以考慮更多的數(shù)據(jù)量。如果Logstash正在忙于處理數(shù)據(jù),則可以讓Filebeat知道減慢讀取速度。還有很多Beat可以提供選擇,有監(jiān)控網(wǎng)絡(luò)的Packbeat,指標Metricbeat。各種beat詳情:https://www.elastic.co/cn/products/beats

fileBeat 是Beats家族的一款,

每臺服務(wù)器部署Logstash是比較耗資源的, 畢竟是java項目. 好在作者重新用golang寫了一套新的采集工具filebeat, 性能更高,

Logstash

Logstash 是一個開源的,服務(wù)端數(shù)據(jù)處理管道。 它可同時從多個源來搜集數(shù)據(jù),對數(shù)據(jù)進行過濾等操作,并且將數(shù)據(jù)傳送到你想要傳送的地方進行存儲。

由于Logstacsh 占用系統(tǒng)資源較多,采用Filebeat來作為我們的日志收集器。

數(shù)據(jù)流程圖

[圖片上傳失敗...(image-a8a0ff-1516244391268)]

環(huán)境搭建

將ELK和filebeat下載后解壓到一個目錄下,四個產(chǎn)品都是開箱即用的。

Logstash安裝與配置

下載地址: https://www.elastic.co/cn/downloads/logstash

Logstash的作用主要是用來處理數(shù)據(jù),當然它也可以直接從日志文件讀取記錄然后進行處理

在Logstash的根目錄,我們需要建立一個新文件logstash.conf:

[圖片上傳失敗...(image-d32d74-1516244391262)]

運行:

bin/logstash -f logstash.conf

Filebeat安裝與配置

下載地址: https://www.elastic.co/downloads/beats/filebeat

Filebeat作為日志搜集器,肯定是需要指定輸入源和輸出地,所以我們需要先配置它。在Filebeat的根目錄下我們需要在filebeat.yml中:

[圖片上傳失敗...(image-ba91e6-1516244391261)]

運行:

sudo ./filebeat -e -c filebeat.yml

Elasticsearch的安裝與配置

下載地址: https://www.elastic.co/cn/downloads/elasticsearch

Elasticsearch默認配置安裝,下載包后解壓

[圖片上傳失敗...(image-865ddf-1516244391261)]

運行:

bin/elasticsearch

Kibana安裝與配置

下載地址: https://www.elastic.co/cn/downloads/kibana

設(shè)置conf/kibana.yml 將elasticsearch.url指向到Elasticsearch實例

[圖片上傳失敗...(image-9a02c0-1516244391260)]

運行:

bin/kibana

Kibana使用

啟動后頁面

[圖片上傳失敗...(image-fdbc87-1516244391260)]

點擊管理

[圖片上傳失敗...(image-316d78-1516244391260)]

創(chuàng)建索引

[圖片上傳失敗...(image-a875ad-1516244391274)]

Filebeat寫入日志

echo zzzzzzzzzzzzzzzz >> hha.log

查找[圖片上傳失敗...(image-b615a0-1516244391258)]

Kibana登錄認證

kibana是nodejs開發(fā)的,本身并沒有任何安全限制,直接瀏覽url就能訪問,如果公網(wǎng)環(huán)境非常不安全,可以通過nginx請求轉(zhuǎn)發(fā)增加認證

Centos環(huán)境:

安裝nginx

yum install nginx

安裝 htpasswd 命令

yum install httpd

生成賬號密碼:

htpasswd -c /data/nginx/db/passwd.db elkadmin

-c 后面是生成的賬號密碼信息儲存文件

Nginx配置如下:

[圖片上傳失敗...(image-97ec07-1516244391260)]

啟動nginx . 訪問20512端口,提示輸入賬號密碼

[圖片上傳失敗...(image-a8d8ea-1516244391260)]

輸入賬號密碼進入主頁面

[圖片上傳失敗...(image-7e5c41-1516244391260)]

收集Java日志

日志一般格式

date log-level log-message => 時間 日志級別 日志內(nèi)容

Java異常棧處理

示例:

[圖片上傳失敗...(image-8b2449-1516244391260)]

由于默認按行讀取,此處需要將多行異常變?yōu)橐恍?/p>

Logstash 和 filebeat 都可以處理, 此處在 filebeat 處理

修改filebeat.yml 配置

[圖片上傳失敗...(image-2e9421-1516244391260)]

提取信息

同樣的這次我們對Java日志做一些信息提煉,也就是使用過濾規(guī)則,將date,log-level,log-message等提取出來

logstash.conf:

[圖片上傳失敗...(image-c131a8-1516244391260)]

值得注意的就是我們使用filter插件,在其中我們使用了grok(基于正則表達式)過濾我們的日志內(nèi)容。grok可以將無規(guī)則的日志數(shù)據(jù)通過正則匹配將之轉(zhuǎn)換成有結(jié)構(gòu)的數(shù)據(jù),以此我們能夠根據(jù)相應結(jié)構(gòu)進行查詢。grok的使用方式是:%{規(guī)則:自定義字段名稱}

Grok表達式庫:

https://github.com/logstash-plugins/logstash-patterns-core/tree/master/patterns

https://github.com/hpcugent/logstash-patterns/tree/master/files

區(qū)分標識filebeat

Filebeat配置 filebeat.yml

[圖片上傳失敗...(image-25fed8-1516244391259)]

Kibana處顯示:

[圖片上傳失敗...(image-a2470-1516244391259)]

區(qū)分標識fileBeat讀取的文件

FileBeat 配置 filebeat.yml

[圖片上傳失敗...(image-5a4478-1516244391259)]

Kibana處顯示:

[圖片上傳失敗...(image-7282a7-1516244391259)]

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容