日志分析系統ELK(下)之kibana資料可視化
- 1、什么是kibana?
- 2、kibana安裝
- 3、創建可視化訪問量的指標
- 4、創建可視化訪問量的垂直條形圖
- 5、啟用xpack安全驗證
- (1)設定es集群
- (2)設定kibana
- (3)設定Logstash
- (4)設定elasticsearch-head
- 6、metricbeat輕量級采集工具
- 7、kibana控制臺
- 8、補充
- (1)冷熱分離
- (2)搜索速度優化
接上篇,server3、server4、server5,是Elasticsearch集群,server6是logstash,本文學習kibana
1、什么是kibana?
kibana主要從es里面加載資料然后展示資料,Kibana 核心產品搭載了一批經典功能:柱狀圖、線狀圖、餅圖、旭日圖,等等

還可以將地理資料融入任何地圖

Kibana 開發工具為開發人員提供了多種強大方法來幫助其與 Elastic Stack 進行互動

總之kibana的功能非常強大,當然了這也就意味著比較吃記憶體
2、kibana安裝
官網https://elasticsearch.cn/download/下載rpm包,注意ELK版本要都一致
由于開啟虛擬機數量太多了,本文kibana安裝在了server6,和logstash是同一臺虛擬機
安裝kibana,進入/etc/kibana,修改組態檔

指定埠kibana的開放埠為5601,kibana主機ip為172.25.77.6

指定es集群的主機ip,指定kibana的索引

設定為中文

開啟kibana,開放了5601埠

網頁訪問http://172.25.77.6:5601,進入kibana

先添加樣例資料,看看效果

查看

各種各樣的圖,功能強大

當然es也相應的產生了幾個新的索引

3、創建可視化訪問量的指標
接下來我們創建一個索引,查看之前的存在es中的apache的日志資料
管理 -> 索引模式 -> 創建索引模式

選擇apachelog-這個索引 -> 下一步

選擇時間戳 -> 創建索引模式,現在就創建了一個和apache的日志相關聯的索引了

可視化 -> 創建可視化

選擇可視化型別為指標

選擇索引apachelog-

可以看到訪問次數為4,之前確實測驗訪問了四次,這里要注意時間范圍的選擇,默認是過去15分鐘的資料,那樣肯定看不到訪問的次數

保存

執行grok.conf檔案,即運行logstash,才能采集資料,輸入給es

真機壓力測驗,總共訪問100次172.25.77.6/index.html,并發數為1

可以看到kibana變為了104,如果沒變,點擊右上角的refresh重繪

同理server3也可以壓力測驗


可以看到kibana變為了304次

4、創建可視化訪問量的垂直條形圖
可視化 -> 創建可視化

垂直條形圖

選擇索引

Y軸是訪問的次數,默認沒有X軸,添加X軸

選擇詞來定義,使用客戶ip作為X軸,降序排列,看最高的前五名,執行

可以看到條形圖,可以看到server3訪問了200次,這幾訪問了104次

保存

上面兩個圖能放在一起分析嗎?可以的
儀表板 -> 添加

添加websit和top5

放在一起了,公司中可以把該界面投到一個大電視上,實時監控資料資訊

保存

server4也壓力測驗

實時資料監測

5、啟用xpack安全驗證
目前部署的ELK三個軟體埠都是開放的,任何人都能訪問,沒有任何安全保障,容易受到攻擊,比如日志索引被洗掉等惡意行為,所以使用 xpack安全組件來保護ELK,這樣es都是內部運行的,不暴露外網,更安全,
(1)設定es集群
先配置傳輸層,使es集群可以通信
server3進入/usr/share/elasticsearch/,使用elasticsearch-certutil工具生成ca,密碼可以空,方便使用

server3使用ca創建證書elastic-stack-ca.p12

密碼可以為空,直接回車

把證書復制到elasticsearch的配置目錄,檔案擁有者改為 elasticsearch,以便elasticsearch可以使用證書,或者直接改權限大小也行,

修改elasticsearch的主組態檔

添加五句話,開啟xpack安全驗證

server3拷貝證書到集群中的其它節點server4和server5

server4把檔案擁有者改為 elasticsearch,修改elasticsearch的主組態檔

server4添加五句話,開啟xpack安全驗證

server5把檔案擁有者改為 elasticsearch,修改elasticsearch的主組態檔

server5添加五句話,開啟xpack安全驗證

server3重啟elasticsearch

server4重啟elasticsearch

server5重啟elasticsearch

查看9200埠正常啟動,es集群正常

ES集群重啟正常后,server3互動式設定用戶密碼全部為westos

(2)設定kibana
server6進入/etc/kibana,修改主組態檔,添加訪問es集群的用戶和密碼

重啟kibana,5601埠正常

重新登陸kibana

正常了

(3)設定Logstash
server6采集資料時的檔案grok.conf需要添加用戶名和密碼才可以運行

執行grok.conf檔案,開始采集

看到kibana顯示訪問次數為404

server3壓力測驗100次

看到kibana顯示訪問次數為504,沒問題,正常了

(4)設定elasticsearch-head
現在elasticsearch-head登陸不了了

進入server3的/etc/elasticsearch目錄,修改主組態檔,允許head認證后訪問

重啟elasticsearch

現在訪問head不能只寫ip和埠了,還需要加認證資訊,http://172.25.77.3:9100/?auth_user=elastic&auth_password=westos

6、metricbeat輕量級采集工具
logstash是負責采集資料的,是入口,流向為logstash-> ES->kibana,但是它的資源消耗很大,有時候沒那么多記憶體給他占用,同時有些定制的采集指標logstash無法滿足,所以我們想使用輕量級的采集工具metricbeat來實作采集,流向為metricbeat-> ES->kibana,可以獲取系統級的 CPU 使用率、記憶體、檔案系統、磁盤 IO 和網路 IO 統計資料,還可針對系統上的每個行程獲得與 top 命令類似的統計資料,同時Metricbeat 提供多種內部模塊,用于從服務中收集指標,例如 Apache、NGINX、MongoDB、MySQL、PostgreSQL、Prometheus、Redis 等等,
進入kibana,集群 -> 使用metricbeat

點擊使用metricbeat,現在是紅色的,還不可用,輸入監測集群URLhttp://172.25.77.3:9200,會出現提示操作

官方下載metricbeat安裝包,給server3、server4、server5

server3安裝metricbeat

server4安裝metricbeat

server5安裝metricbeat

server3激活elasticsearch-xpack模塊,進入/etc/metricbeat/modules.d查看全部模塊,可以看到很多檔案后面帶個disable表示未激活,elasticsearch-xpack已被激活,其實激活命令本質上就是改檔案的名字,編輯elasticsearch-xpack.yml檔案

由于開啟了xpack,需要添加用戶名和密碼

server4激活elasticsearch-xpack模塊,編輯elasticsearch-xpack.yml檔案

添加用戶名和密碼

server5激活elasticsearch-xpack模塊,編輯elasticsearch-xpack.yml檔案

添加用戶名和密碼

回傳上一層,server3修改metricbeat主組態檔

設定es的ip(集群中任意一個都可以),添加用戶名和密碼

server3重啟metricbeat

回傳上一層,server4修改metricbeat主組態檔

設定es集群ip,添加用戶名和密碼

server4重啟metricbeat

回傳上一層,server5修改metricbeat主組態檔

設定es集群ip,添加用戶名和密碼

server5重啟metricbeat

根據提示操作完,kibana這里會顯示成功

稍等片刻,es集群的三個節點都是藍色了,成功開啟

隨便點擊一個節點,這里查看server5的資料

類似的輕量級采集的base還有很多,比如filebeat等等,這里不再贅述,感興趣的同學自行查閱檔案,
filebeat的資料流向為filebeat->logstash-> ES->kibana,組合使用,假如流量很大,為了確保資料不丟失,可以加入中間件kafaka或者redis,實作訊息佇列,即filebeat->logstash->kafaka-> ES->kibana
7、kibana控制臺
控制臺插件提供一個用戶界面來和 Elasticsearch 的 REST API 互動,控制臺有兩個主要部分: editor ,用來撰寫提交給 Elasticsearch 的請求; response 面板,用來展示請求結果的回應,
由于我們開啟了xpack,想要輸入命令時還需要用戶密碼,這里還有一個更加方便的方法,使用kibana的控制臺,可以直接輸入命令,還不用用戶密碼,因為登陸kibana時已經輸入過了,控制臺實際還是后臺呼叫了API,找es執行,再回傳給kibana展示,
下圖進行簡單測驗,輸入了健康查詢陳述句,可以看到節點的健康狀況,

當敲入一行命令,控制臺會給出背景關系相關的提示,這些提示可以幫助您探索每條 API 引數,或者用于提高輸入速度,控制臺會提示 APIs 、索引和欄位名,
一旦您在左邊的面板中敲入命令,您可以點擊 URL 行邊上的綠色小三角提交這條請求到 Elasticsearch,注意,當您移動游標的時候,會有一個小三角和扳手圖示跟隨著您,我們把這個叫做動作選單,您也可以選擇寫多條請求并一起提交它們,
當請求回應后,您可以在側面的面板中看到它
8、補充
(1)冷熱分離
注意ELK是實時監測資料的,雖然有資料庫的功能,但是完全和資料庫不一樣,實時監測非常消耗資源,如果只當資料庫,純屬大材小用,
一般要把資料冷熱分離,剛剛采集到資料可以理解為熱資料(hot),實時寫入ELK分析;過一段時間,資料變為溫資料(warm),可以用來查詢,不再寫入;再過一段時間變為冷資料(cold),查詢也很少了,我們可以考慮把他放到資料庫中存盤,或者從硬體方面來說,從高性能的節點存盤換為普通性能的節點,把高性能的節點留給熱資料;再過很久,會洗掉資料,
想要實作上面的冷熱分離,進行生命周期管理,必須有
1、節點標簽,區分冷熱節點
2、生命周期策略,定義熱階段的大小,最長時間,存在時長等等
3、索引模板參考索引模板策略,模板創建索引,加載生命周期策略
4、索引模板指定調度節點,將新建索引分片分配到熱節點
(2)搜索速度優化
為了提高es搜索速度,可以考慮下面幾種方法:
1、為檔案系統cache留有足夠記憶體,記憶體越大,速度越快
2、提升i/o,使用固態硬碟
3、減少層層嵌套
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/294578.html
標籤:其他
