日志的收集,處理和儲存

Logstash負責日志的收集,處理和儲存:

性能:Logstash 致命的問題是它的性能以及資源消耗(默認的堆大小是 1GB),它在大數據量的情況下會是個問題。
另一個問題是它目前不支持緩存,目前的典型替代方案是將 Redis 或 Kafka 作為中心緩沖池:

因為 Logstash 自身的靈活性以及網絡上豐富的資料,Logstash 適用于原型驗證階段使用,或者解析非常的復雜的時候。在不考慮服務器資源的情況下,如果服務器的性能足夠好,我們也可以為每臺服務器安裝 Logstash 。我們也不需要使用緩沖,因為文件自身就有緩沖的行為,而 Logstash 也會記住上次處理的位置。

如果服務器性能較差,并不推薦為每個服務器安裝 Logstash ,這樣就需要一個輕量的日志傳輸工具,將數據從服務器端經由一個或多個 Logstash 中心服務器傳輸到 Elasticsearch:

Collect:數據輸入input

常用的input有:
file:從文件系統中讀取文件,類似于[Linux]下的tail -0F。
syslog:監聽在514端口的系統日志信息,并解析成RFC3164格式。
[redis]:從redis服務器讀取,同時使用redis channel和redis list。

如果在程序方法中埋點,可以重寫父類Exception,統一加上寫入redis的操作

beats: 通過Filebeat發送事件。

Enrich:數據加工,如過濾,改寫等

filter
filter是logstash管道中間處理的設備。可以結合條件語句對符合標準的事件進行處理。
一些有用的過濾器如下:
grok: 解析和結構化任何文本。Grok 目前是logstash最好的方式對非結構化日志數據解析成結構化和可查詢化。logstash內置了120個匹配模式,滿足大部分需求。
mutate: 在事件字段執行一般的轉換。可以重命名、刪除、替換和修改事件字段。
drop: 完全丟棄事件,如debug事件。
clone: 復制事件,可能添加或者刪除字段。
geoip: 添加有關IP地址地理位置信息。

output:數據輸出

output是logstash管道的最后一個階段。一個事件可以經過多個output。但是一旦所有輸出處理完,該事件已經執行完。
常用的output有:
elasticsearch: 發送事件數據到 Elasticsearch。如果要將數據保存在一個高效、便捷、易于查詢的格式,elasticsearch將是不二人選。
file: 將事件數據寫入到磁盤文件上。
graphite: 發送事件數據到graphite。http://graphite.wikidot.com/
statsd: 發送事件數據到 statsd。

Paste_Image.png

Shipper:日志收集者。負責監控本地日志文件的變化,及時把日志文件的最新內容收集起來,輸出到Redis暫存。
Indexer:日志存儲者。負責從Redis接收日志,寫入到本地文件。
Broker:日志Hub,用來連接多個Shipper和多個Indexer。
無論是Shipper還是Indexer,Logstash始終只做前面提到的3件事:

Shipper從日志文件讀取最新的行文本,經過處理(這里我們會改寫部分元數據),輸出到Redis,
Indexer從Redis讀取文本,經過處理(這里我們會format文本),輸出到文件。

文/怡文圣美(簡書作者)
原文鏈接:http://www.lxweimin.com/p/6575041b597d
著作權歸作者所有,轉載請聯系作者獲得授權,并標注“簡書作者”。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • 前言 近來比較閑,加之boss指派任務要研究日志收集系統,所以選擇了ELK整套工具進行研究。 數據庫日志收集這塊,...
    我的橙子很甜閱讀 10,848評論 2 5
  • 寫在最前面: 這篇文章是我看了很多博文之后,自己實踐后備忘的,在文中也標注了借鑒的地方,非常感謝原博主的分享...
    yangkg閱讀 3,372評論 0 5
  • 承擔著古老傳說 今夜喜鵲 去架設相會之橋 樹梢頂上的鵲窩 是村野的空巢 鵲卵留守在上弦的余輝里 裸露著孤單 致謝詩...
    微風LG閱讀 227評論 5 5
  • 木瓜椰子凍是我們常在餐廳吃到的一種涼菜,香甜軟滑、美味可口,還具有美容功效,是多數女生都很喜歡的一道菜。那么木瓜椰...
    青青優農閱讀 290評論 0 0