?

基于ELK的日志分析系統研究與實踐

2020-12-23 04:28謝磊張冰楊猛
科技經濟市場 2020年10期
關鍵詞:物聯網大數據

謝磊 張冰 楊猛

摘 要:為解決現階段物聯網應用日志處理效率低下的問題,研究一種基于ELK技術棧的開源日志解決方案。探討各組件的工作原理和使用方法,提出解析日志的規則和技巧,總結優化Elasticsearch集群性能的方法,在此基礎之上搭建能夠對海量日志進行實時采集和檢索的分析監控系統。實驗結果表明,該方案具有配置方式靈活、集群可線性擴展、日志實時導入、檢索性能高效、可視化方便等優點,能有效提高運維效率和異常排查速度。

關鍵詞:大數據;物聯網;系統監控

系統運行維護、診斷故障、屬性分析都是通過日志數據來解析的,日志是日志分析系統的主要組成部分。隨著互聯網大數據的發展和規模的擴大,系統的日志數量在不斷增加,其采集規模也在不斷擴大;傳統的采集手段已經遠遠不能滿足日志采集,且日志分析的方式會造成能源消耗的浪費,工作效率差,不能進行多維度的查詢,也不能對復雜事件進行處理分析?,F在大數據的處理趨勢主要是實時性,同時,硬件成本降低,在這種情況下出現了許多日志分析平臺,其中以ELK(分布式搜索引擎Elasticsearch、日志搜集過濾工具Logstash、數據可視化分析平臺Kibana)為代表的實時日志分析平臺,能滿足多個場合的應用和需求,可以從龐大的日志信息數據中準確及時篩選出相關的信息,對信息數據進行監控和維護,對日志可以實行統計分析。ELK不僅提高了運維人員的工作效率和質量,還能實時地監控日志數據運行狀態,并反饋處理。

1 基于ELK的日志分析系統平臺

1.1 系統整體結構

一個完整的日志分析系統主要包括采集、解析、儲存和可視化轉換4個部分。在ELK平臺運行過程中,Logstash主要是對日志數據進行采集、分析解讀和過濾數據,獲取大量的日志數據并按照解析規則輸送至Elasticsearch。Elasticsearch是一個開源分布式的搜索引擎,主要有搜集、分析、儲存等功能,具有對整個數據庫進行檢索的功能,在處理過程中Elasticsearch作為存儲日志的主要系統。Kibana把日志數據解析變得可視化,可以把從Elasticsearch中獲取的大量日志數據進行可視化解析,便于數據分析。Logstash可以對日志數據進行采集和解讀,但大規模的日志采集會增加內存的消耗和CPU儲量,如果服務器的設備和性能不夠完善,可能會導致服務器性能降低和系統罷工。為了解決這種問題,Elastic公司開發出了另外一種日志采集器Beats,在數據采集方面代替Logstash,系統結構見圖1。

Beats是單一功能所有器的總稱,能通過日志的不同采集源和類型進行分類采集,現階段分為以下幾種:

(1)Filebeat:本地文件的日志數據,可以對目錄和特殊的文件進行監控;

(2)Metricbeat:又稱為Topbeat,通過搜集系統、系統進程和文件等級別的CPU和內存儲存情況;

(3)Packetbeat:對網絡上的數據進行搜集,對系統實時監控,出現故障時可以及時反饋錯誤和報告,將其發送給Logstash或Elasticsearch;

(4)Winlogbeat:對Windows系統日常事件數據搜集;

(5)Heartbeat:對服務器的運行狀況監控,和Logstash相比,Beats收集數據的儲量占比很小,其次,Beats和Logstash兩種支持雙向加密傳輸,客戶端和服務器雙向認證,可以確保信息傳輸的安全性和穩定性。

1.2 實時收集系統

日志收集是分析處理和監控的基礎和重要部分,不同系統的數據采集源各不相同,日志收集需要在不同服務器上把分散的數據進行分析匯總,在通過解析規則進行轉換?,F階段都是通過Filebeat和Logstash匯總日志來組成日志收集,格式一般都采用文件的形式。

Filebeat是GO語言開發的不會消耗大量資源的輕便型日志采集器。當它開始工作運轉時,會啟動一個和多個prospector監控日志的采集源和數據,每個日志的數據都有相對應的harvester,harvester對日志進行解讀后會轉發至后臺。Filebeat能對注冊文件進行維護,記錄每個harvester最終讀取位置的偏差值。

Logstash是分布式數據收集引擎,對日志數據進行搬運,它能動態地從其他數據源搜集數據,并對數據進行篩選、解析、統一格式,然后輸送到相應的區域。把事件流通過Logstash中的Input、Filter和Output插件進行處理和轉換,Input是日志數據輸入的開始,Filter對數據進行解析轉換,Output對傳輸方向進行輸送。

Grok是Logstash的一種正則解析插件,它能對日志數據進行解析轉化,其中數據庫中包含了120多種表達式數據,在對日志進行解析時需要采用相應的正則表達式來轉化。利用Grok插件所帶來的便捷,對總結的文件進行解析,步驟如下:

(1)對采集的日志解析,并進行切分,每一條數據分為不同的字段,對其進行分析解讀,字段是日志分析的主要部分,是解讀日志和分析最重要的內容;

(2)將收集到的數據采取切分原則,切分后的字段都采用正則表達式的解析方式進行轉換,如果Grok中的正則數據庫中存在其相應的表達式,則可以直接對其進行轉換使用,沒有則采用自定義的轉換方式進行轉換分析,兩種模式可以結合使用;

(3)在GrokDebugger的調整工具中對解析后的日志進行調試、查驗轉換的表達式是否正確。

2 ELK日志采集

2.1 Logstash的性能問題

在實際的操作過程中,Logstash一般在ELKStack中作為日志采集器的工具,需要在不同設備的節點上安裝設置相應Logstash采集器,再將采集后的數據進行解析分配,傳送到ELK。Logstash是由Ruby語言開發制造的,且需要用JRuby解析器進行解讀分析,這種解讀方式會增加內存的占比和CPU容量的消耗,尤其是在一些性能低下的節點上,情況會加重,可能會導致服務器故障,系統運作出現問題。如果使用filter插件對日志的數據進行解析,操作過程不僅繁瑣,還會使Logstash變成系統處理器和硬盤密集型工具。通常情況可以根據不同設備的節點性能,對各個設備數據進行調整,以-Xms和-Xmx標志來設置JVM的初始內存大小,這種方式能夠優化Logstash的性能,但是如果節點很多,則會增加運維人員的工作量。因此在節點性能產生故障時,使用Logstash作為日志采集器則不合理。

2.2 Beats替代Logstash

Beats是多種具有單一功能的輕便型數據采集器工具集的統稱,Beats工具集軟件的開發語言是GO語言,和Ruby相比它的資源占比較少,執行高效。Beats工具集包括了Filebeat、Metricbeat、Packetbeat和Heartbeat等技術棧的采集器,每個工具功能單一化,通過搜集相關數據再采集后上報至Elasticsearch做集中化處理。它還能對節點采集的數據進行保留,并將數據轉化解析傳送給ELK日志分析平臺,降低內存的使用率占比和其他性能的消耗,還能保證系統服務器的正常運轉。

Filebeat工具對于低性能的節點具有很好的幫助作用,能夠降低內存使用量占比。Beats采集器的比較單一化,對日志數據進行采集且支持TLS雙向的認證加密,可以在向信任的Logstash服務器端點輸送數據時,防止數據在傳送過程中泄露和丟失。同樣還支持背壓敏感協議,可以防止網絡數據緩慢,降低設備節點的儲量和資源的消耗情況。

3 結論

在互聯網數據不斷增多的情況下,設備節點也不斷增加,維護服務日志數據也變得越來越重要。一個好的日志分析平臺可以對日志數據進行高效和優化的處理,及時準確地處理產生的問題和故障,還能通過實時監控和控制,對業務產生的故障及時診斷處理,并發出警告提醒,提高了運維人員的工作效率。ELK日志分析平臺不僅能夠對大量日志數據進行分析處理解析,還能夠對復雜的日志數據進行差異化采集和分類,利用Logstash工具自定義的篩選和解讀規則采集,將解析的日志數據上報至Elasticsearch并存儲下來,再之后在Kibana進行對數據可視化解讀和分析,提升分析的準確性和穩定性。在設備節點性能低下的情況,可以采用其他的日志采集器(Filebeat)替代Logstash進行數據采集。ELKStack日志處理平臺可以應用于不同場景,通過調整配置來滿足不同采集端的需要,進行定制化的采集數據。這種系統的使用增強了日志數據處理的便捷和質量,提高了使用率。

參考文獻:

[1]阮曉龍,張浩林.基于ELK的Apache日志實時分析系統探索與分析模型研究[J].電腦與信息技術,2020,28(01):54-57.

[2]李志民,孫林檀,吳建軍,等.基于大數據的ELK日志分析系統研究及應用[J].科學與信息化,2019(28):54,59.

猜你喜歡
物聯網大數據
基于LABVIEW的溫室管理系統的研究與設計
論智能油田的發展趨勢及必要性
大數據環境下基于移動客戶端的傳統媒體轉型思路
中國或成“物聯網”領軍者
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合