一種基于ELK的安全防護(hù)日志管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
引言
作為基礎(chǔ)網(wǎng)絡(luò)維護(hù)單位,電信運(yùn)營商部署了大量網(wǎng)絡(luò)安全設(shè)備,隨著網(wǎng)絡(luò)安全形勢的日益嚴(yán)峻,這些設(shè)備每天產(chǎn)生的安全防護(hù)日志也不斷增加,如何有效管理并使用好這些日志,進(jìn)而提升網(wǎng)絡(luò)安全感知能力,成為了十分重要的課題。
目前,日志數(shù)據(jù)大多以文件形式保存在磁盤上,在規(guī)模化場景下,grep、awk無法快速發(fā)揮作用,雖然部分設(shè)備廠商提供了日志查詢功能,但通常只能對單一設(shè)備日志進(jìn)行分析及審計(jì),很多場景下需要逐一查詢各個(gè)設(shè)備的日志信息,且查詢手段較為簡單,無法根據(jù)業(yè)務(wù)需要提供更多維度,不利于問題定位。此外因?yàn)槿罩玖枯^大,或受限于系統(tǒng)功能,很難對重要日志信息進(jìn)行及時(shí)獲取,影響問題定位的及時(shí)性。如涉及跨廠家或設(shè)備類型的場景,由于存儲周期、存儲形式、日志格式的不同,問題則更為突出。
同時(shí),各類安全設(shè)備所配的存儲空間不一,一些觸發(fā)規(guī)則之外的事件只能保存較短時(shí)間,為事后的溯源分析和審計(jì)帶來不便。因此,考慮構(gòu)建一種統(tǒng)一的安全防護(hù)日志管理系統(tǒng),用于實(shí)現(xiàn)各類日志的收集、存儲、檢索、分析及展現(xiàn)。
1系統(tǒng)架構(gòu)設(shè)計(jì)
1.1系統(tǒng)要求
本項(xiàng)目建設(shè)目標(biāo)是收集各類安全防護(hù)日志,對這些數(shù)據(jù)解析后進(jìn)行統(tǒng)一分析呈現(xiàn)。由于安全設(shè)備及其配套管理平臺形式多樣,日志管理系統(tǒng)需要支持不同的目標(biāo)操作系統(tǒng)、接口類型、日志格式等,并通過合理的架構(gòu)設(shè)計(jì)保證采集和使用效率。關(guān)鍵要求如下:
(l)支持從不同類型的客戶端上獲取日志數(shù)據(jù),并做到多并發(fā)采集。
(2)提供大規(guī)模的存儲空間,滿足海量日志分析要求。
(3)提供高效的數(shù)據(jù)查詢和分析功能。
(4)具備二次開發(fā)能力,可通過配置定制化數(shù)據(jù)展現(xiàn)形
式,并提供接口將分析結(jié)果轉(zhuǎn)發(fā)給外系統(tǒng)。
1.2技術(shù)架構(gòu)實(shí)現(xiàn)
安全防護(hù)日志管理系統(tǒng)采用Logstash+Elasticsearch+Kibana+Filebeat+Redis的架構(gòu)進(jìn)行系統(tǒng)搭建,總體包括日志采集、日志分析、日志展示3層架構(gòu)。系統(tǒng)采用模塊化設(shè)計(jì),模塊之間松耦合。新模塊可通過配置直接接入平臺,模塊之間通過消息隊(duì)列、接口等方式進(jìn)行通信。安全防護(hù)日志管理系統(tǒng)流程如圖1所示。
1.21日志采集模塊
日志采集是整個(gè)管理平臺的基礎(chǔ),負(fù)責(zé)采集平臺運(yùn)行需要的日志數(shù)據(jù)。源數(shù)據(jù)以各種各樣的形式,分散或集中存在于很多系統(tǒng)中。本平臺使用的Logstash支持各種輸入選擇,可以在同一時(shí)間從多個(gè)來源捕捉事件,提供具有實(shí)時(shí)渠道能力的數(shù)據(jù)收集引擎,能夠以流式方式傳輸數(shù)據(jù),對包括syslog、消息隊(duì)列、JMx在內(nèi)的各種日志數(shù)據(jù)都能較好支持,在整個(gè)系統(tǒng)框架中,實(shí)現(xiàn)數(shù)據(jù)搬運(yùn)功能,將采集的日志數(shù)據(jù)存入數(shù)據(jù)庫,供上層平臺進(jìn)行分析和展示。同時(shí)可以與多種外部應(yīng)用結(jié)合,并且支持彈性擴(kuò)展。Logstash組件結(jié)構(gòu)如圖2所示。
盡管Logstash有全面的日志收集能力,但是占用CPU和內(nèi)存較多,為了減小對業(yè)務(wù)系統(tǒng)主機(jī)性能的消耗,本項(xiàng)目引入了Filebeat,Filebeat是一個(gè)輕量級的日志收集處理工具,占用資源少,適用于在各個(gè)服務(wù)器上搜集日志后傳輸給Logstash,從而提高系統(tǒng)可用性。
1.2.2日志分析模塊
Elasticsearch是一個(gè)開源、分布式、REsTful接口的全文搜索引擎,同時(shí)也是一個(gè)分布式文檔數(shù)據(jù)庫,支持分布式實(shí)時(shí)文件存儲,并將每一個(gè)字段都編入索引,具有高可用性、易擴(kuò)展的特性,能夠橫向擴(kuò)展,根據(jù)業(yè)務(wù)需求可實(shí)現(xiàn)海量存儲并處理PB級數(shù)據(jù),可以快速存儲、搜索和分析大量數(shù)據(jù):允許多客戶端調(diào)用,支持結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)源:接口友好,支持JsON格式。
本系統(tǒng)采用的是Elasticsearch6.8版本,為整個(gè)系統(tǒng)提供全文搜索、結(jié)構(gòu)化搜索以及實(shí)時(shí)分析功能。
1.2.3日志緩存模塊
為減少日志在服務(wù)端的積壓,本系統(tǒng)在Logstash和Elasticsearch之間添加一層Redis作為緩存,以減小系統(tǒng)壓力。同時(shí),Redis作為一種內(nèi)存數(shù)據(jù)庫,響應(yīng)速度快,因此在Redis后添加了多個(gè)消費(fèi)系統(tǒng)(Logstash),用于擴(kuò)展消費(fèi)能力,提升處理速度。
1.2.4可視化界面
最上層是B/s架構(gòu)的日志展示層,是整個(gè)平臺的統(tǒng)一門戶,經(jīng)過統(tǒng)一用戶認(rèn)證,用戶可以通過瀏覽器訪問日志管理平臺,查看各類日志、功能模塊以及統(tǒng)計(jì)數(shù)據(jù)。Kibana是一個(gè)針對Elasticsearch的分析及可視化平臺,用來搜索、查看交互存儲在索引中的數(shù)據(jù),提供分析、查找、數(shù)據(jù)交互等功能,并生成各種維度的表圖,不僅允許用戶創(chuàng)建自定義的表視圖,還允許以特殊方式查詢和過濾數(shù)據(jù)。
2系統(tǒng)部署
整個(gè)系統(tǒng)中,首先在安全設(shè)備生成日志的主機(jī)上分別部署獨(dú)立的日志采集agent,并將經(jīng)過預(yù)處理的數(shù)據(jù)輸入分析集群,進(jìn)行進(jìn)一步的處理與存儲,最終在展示層完成面向用戶的日志數(shù)據(jù)統(tǒng)計(jì)、分析與展現(xiàn)。平臺采用分布式架構(gòu)部署,擴(kuò)展性強(qiáng),可以根據(jù)數(shù)據(jù)量、計(jì)算需求靈活添加或減少硬件資源。
本項(xiàng)目通過集群方式部署,安裝過程不再贅述,下面僅說明系統(tǒng)中的重要配置。
(l)Logstash采用的版本為6.6.0,指定日志輸入路徑和輸出路徑,在mylogstash.conf中配置如下:
input(
beats(
port=>5044
)
)
output(
elasticsearch(
hosts=>"l27.0.0.l:9200"
index=>"crontest-一(%++++.YY.dd)"
)
)
(2)對于Milebeat,編輯配置文件myfilebeat.yml,內(nèi)容如下:filebeat.inputs:
-type:logenabled:truepaths:
-/hadoop/rsyslog/l0.40.l06.2l0/Faf.log
tailfiles:true
fields:
logsource:Faf
fieldsunderroot:true
scanfrewuency:60s
closeinactiqe:lh
output.logstash:
hosts:["l27.0.0.l:5044"]
其中,paths配置的是需要讀取的日志文件:logsource為自定義,針對日志而言,便于區(qū)分不同的日志文件。
(3)若要讓其他組件能夠從服務(wù)器上訪問Elasticsearch,需要在elasticsearch.yml進(jìn)行配置:
netForv.host:0.0.0.0
...Yemory....
bootstrap.memorylocv:false
bootstrap.systemcallfilter:false
(4)Kibana采用的版本為6.5.4,編輯vibana.yml文件,修改如下:
serqer.host:"l72.l6.33.l0l"
elasticsearch.url:"http://l27.0.0.l:9200"
serqer.port:2255l
3系統(tǒng)實(shí)現(xiàn)效果
日志管理系統(tǒng)搭建完成后,接入Tomcat、IDs、wAF、交換機(jī)等網(wǎng)絡(luò)類日志數(shù)據(jù),實(shí)現(xiàn)了對安全事件及設(shè)備告警的統(tǒng)一管理和全面分析,運(yùn)維人員不再需要面對多個(gè)視頻界面,系統(tǒng)通過統(tǒng)一門戶提供對多種安全防護(hù)設(shè)備的日志集中搜集、展現(xiàn)與分析,支持按照日志格式、日志類型、審計(jì)設(shè)備等條件查詢,可以生成日志趨勢圖和分析報(bào)表,幫助發(fā)現(xiàn)安全事件和系統(tǒng)漏洞,并總結(jié)其發(fā)生的規(guī)律:能夠保存較長時(shí)間范圍內(nèi)的日志信息,實(shí)現(xiàn)對整個(gè)日志的監(jiān)控分析與事后審計(jì),運(yùn)維人員通過對系統(tǒng)的使用,可以對整個(gè)安全防護(hù)現(xiàn)狀有直觀了解,隨時(shí)掌握各類安全系統(tǒng)、設(shè)備涉及的性能指標(biāo)和健康情況,獲取實(shí)時(shí)安全防護(hù)狀態(tài),大幅提高運(yùn)維工作的及時(shí)性和處理效率。日志分析可視化展示如圖3所示。
本項(xiàng)目中日志管理系統(tǒng)主要包括日志匯總監(jiān)控和對外接口兩部分,既能夠作為獨(dú)立分析系統(tǒng)使用,也不斷為外系統(tǒng)提供有價(jià)值的分析數(shù)據(jù),將日志處理后生成的相關(guān)數(shù)據(jù)及分析結(jié)果傳送給各類業(yè)務(wù)系統(tǒng),結(jié)合業(yè)務(wù)系統(tǒng)原有的各類運(yùn)維和監(jiān)控告警功能,更大程度地發(fā)掘數(shù)據(jù)價(jià)值。
4結(jié)語
在大數(shù)據(jù)時(shí)代,信息安全要求不斷提高,網(wǎng)絡(luò)規(guī)模飛速擴(kuò)展,使安全事件的監(jiān)控和分析變得尤為重要。本文通過構(gòu)建安全防護(hù)日志管理系統(tǒng),增強(qiáng)了安全監(jiān)控的實(shí)時(shí)性,提升了網(wǎng)絡(luò)安全感知能力。未來還將收集應(yīng)用系統(tǒng)、服務(wù)器日志等信息,通過更多維度的關(guān)聯(lián)分析,結(jié)合科學(xué)算法,進(jìn)一步完善分析手段和風(fēng)險(xiǎn)預(yù)警能力,為保障運(yùn)營商網(wǎng)絡(luò)信息安全提供支持。