1. 程式人生 > 其它 >[喵咪BELK實戰(1)]淺談日誌的重要性以及介紹BELK

[喵咪BELK實戰(1)]淺談日誌的重要性以及介紹BELK

[喵咪BELK實戰(1)]淺談日誌的重要性以及介紹BELK

#w-blog部落格

前言

哈嘍大家好呀!這次主要為大家帶來BELK日誌系統相關的博文,日誌大家都知道,比如nginx請求日誌,系統的日誌,自己程式寫入的日誌,可以說是日誌無處不在,但是對於這些無處不在的日誌我們怎麼去檢視分析它們呢?這個就比較有意思了,隨著系統逐漸增大排查問題的成本越來越高,這個時候就需要引入日誌系統來聚合索引和查詢日誌及時發現問題,輕鬆追查故障原因從而高效的解決問題…

附上:

喵了個咪的部落格:w-blog.cn

官網地址:https://www.elastic.co/cn/

1.日誌的重要性

我們常見的日誌分為幾大類:系統日誌,請求日誌,業務日誌等,但是在什麼場景下我們會需要用到日誌來幫我解決問題呢?請聽我一一道來: 注意:如果伺服器數量極少自己登陸伺服器就可以很好地檢視日誌,無需複雜的日誌系統

  • 系統日誌 系統日誌需要進行查詢的場景相對另外兩類來說會相對比較少一些,比如crontab的執行日誌這類來判定一些系統元件的執行情況,當你管理過多伺服器時上面有很多定時任務一臺一臺去檢查定時任務是否執行是很繁瑣的事情
  • 請求日誌 請求日誌一般來說的是對於nginx , apache或tomcat這類web容器進行的請求進行採集分析統計出PV,請求峰值時間點等
  • 業務日誌 業務日誌是很重要的日誌型別主要用於排查問題,業務日誌有兩種記錄方式,第一種是記錄請求明細,另外一種就是程式埋點記錄日誌, 請求明細:當比如一個使用者反饋(或者測試反饋有BUG)什麼功能用不了,直接拉出這個使用者的請求操作記錄通過每一項請求引數和返回結果來快速定位問題,如果是異常情況能夠非常快的查找出來 程式埋點:程式埋點的典型例子就是傳送簡訊傳送郵件進行訊息推送的結果記錄,這一來耗時操作一般都使用非同步的方式進行,如果有反饋沒有收到驗證簡訊,裡面可以通過日誌查詢出來什麼時候傳送了一條簡訊傳送是否成功等,還有就是遇到BUG除錯的時候可以通過日誌檢視除錯資訊

2.BELK介紹

當我們瞭解了日誌系統可以幫我們解決什麼問題之後,接著就是需要搭建一個日誌系統了,我們今天的主角登場了:

大家通過如上圖可以明確的瞭解BELK分別是做什麼的它們是怎麼協同工作的,讓我們來研究它們分別是什麼?

2.1 Beats

Beats是一個數據採集元件,主要使用的比較多的是裡面的Filebeat,Filebeat是個很輕量級的工具使用GO語言編寫 • 監聽本機指定日誌檔案的新增條目,類似tail -f • 做最原始的過濾和處理 • 將資料傳送給Logstash,也可以直接傳送給Elastic Search等

2.2 Logstash

Logstash是用來做資料處理的(它也可以採集資料)它的功能非常強大支援幾十種資料來源和幾十種輸出(這裡不一一列舉有興趣可以看官方文件) Logstash在BELK中充當了資料加工處理的角色,經常使用Logstash來對原始資料需要進行查詢的值進行提取之後在發往Elastic Search

ElasticSearch是一個基於Lucene的搜尋伺服器。它提供了一個分散式多使用者能力的全文搜尋引擎,基於RESTful web介面。 利用ElasticSearch索引全文搜尋的能力來進行日誌的查詢分析

2.4 Kibana

Kibana 是一個對ElasticSearch進行查詢的一個UI工具,方便直接使用WEB UI的方式進行日誌查詢檢索

總結

本節基本瞭解日誌系統的作用,意識BELK分別代表什麼在整個日誌系統中分別發揮著那些作用,下一章講具體介紹BELK搭建使用方式,多謝大家的支援我們下次再見...

注:筆者能力有限有說的不對的地方希望大家能夠指出,也希望多多交流!