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