來源:南京審計(jì)大學(xué)官網(wǎng) 日志就如同人類的體檢報(bào)告,作為信息系統(tǒng)工作情況無聲的描述,,重要意義不言而喻,。但長期以來,作為偏底層的“邊緣信息系統(tǒng)”之一,,日志平臺(tái)的關(guān)注度和投入經(jīng)費(fèi)時(shí)常難以匹配其重要程度,。 隨著高校智慧校園信息系統(tǒng)的增加,以及近年來網(wǎng)絡(luò)安全要求的不斷提高,,建成,、建好全量化日志平臺(tái)已成為信息化基礎(chǔ)設(shè)施建設(shè)過程中不可缺少的一環(huán)。 經(jīng)過慎重考察和測試并結(jié)合學(xué)校實(shí)際情況,,南京審計(jì)大學(xué)最終決定使用開源的ELK(即Elasticsearch,、Logstash、Kibana三款軟件的集合)平臺(tái)建設(shè)全量化日志分析平臺(tái),,并取得了較好的效果,。 在ELK套件中,,Elasticsearch(以下簡稱“ES”)是一個(gè)高性能,、分布式的平臺(tái),在互聯(lián)網(wǎng)企業(yè)中得到了廣泛使用,,例如用于海量訂單搜索,、用戶操作日志分析等場景。Logstash作為日志的預(yù)處理工具,,能非常好地支持高校以網(wǎng)絡(luò)基礎(chǔ)設(shè)施為主,、各類應(yīng)用系統(tǒng)為輔的日志收集、整理,、存儲(chǔ)以及分析,。最后,Kibana作為自帶的分析,、查詢工具,,完全可以滿足我們的日常查詢、分析要求,。 高校日志場景分析 在實(shí)施前,,先要對高校信息系統(tǒng)產(chǎn)生的日志有詳細(xì)的了解,,在滿足了“應(yīng)收盡收”的基礎(chǔ)上才有可能充分發(fā)揮日志的作用。高校信息系統(tǒng)一般需要存儲(chǔ)和分析這三個(gè)類型的日志:一是設(shè)備運(yùn)行類,,如各類網(wǎng)絡(luò)設(shè)備,、物聯(lián)網(wǎng)設(shè)備、安全設(shè)備等產(chǎn)生的設(shè)備運(yùn)行日志等,;二是用戶行為類,,如NAT日志、DNS解析日志,、網(wǎng)站訪問,、IPS及WAF攔截日志等;三是應(yīng)用日志,,如操作系統(tǒng),、中間件、應(yīng)用等產(chǎn)生的運(yùn)行日志,。以南京審計(jì)大學(xué)日志平臺(tái)為例,,具有代表性的日志見表1。 表1 南京審計(jì)大學(xué)部分代表性日志情況 南京審計(jì)大學(xué)嘗試過各類商業(yè)版或試用版的日志平臺(tái),,但均未能落地,。究其原因,在大多數(shù)高校信息化投資有限的情況下,,作為邊緣信息系統(tǒng)的日志平臺(tái)很難獲得足夠的經(jīng)費(fèi)支持,;若作為大型集成項(xiàng)目的附帶品,又很難保證其能滿足各類復(fù)雜的需求,;加之商業(yè)產(chǎn)品由于閉源的特性,,在服務(wù)過期后遇到各類技術(shù)問題,也很難得到及時(shí)的響應(yīng),,只能通過付費(fèi)形式尋求原廠支持,,且費(fèi)用完全不受控,極大限制了產(chǎn)品使用的靈活性,。 可見,,全量日志收集體量是非常大的。以常見的挖礦協(xié)查為例,,一般根據(jù)上級提供的出口設(shè)備IP域名訪問記錄,,通過DNS請求日志來確定指定時(shí)間的內(nèi)網(wǎng)IP,并查詢NAT日志,,同時(shí)結(jié)合認(rèn)證系統(tǒng)或DHCP篩查到具體終端或人員,。參照表1,僅其中一臺(tái)DNS的解析量就已達(dá)千萬/日級別,此時(shí)的查詢使用傳統(tǒng)方式顯然是無法實(shí)現(xiàn)的,。 ELK平臺(tái)的優(yōu)點(diǎn) 第一,,具備高可擴(kuò)展性,當(dāng)容量不足時(shí),,可以簡單通過新建主機(jī)加入集群來實(shí)現(xiàn)容量和性能的水平擴(kuò)展,;具有高可用性,分布式部署下,,少量主機(jī)故障并不會(huì)影響業(yè)務(wù)的正常運(yùn)行,;支持分層特性,對于沒有頻繁查詢的日志類需求,,完全可以使用冷熱分層架構(gòu)部署,,從而減少硬件投入。 第二,,協(xié)議的廣泛支持,,除了通過Logstash支持傳統(tǒng)syslog等協(xié)議外,還可以通過Filebeat等插件支持操作系統(tǒng),、業(yè)務(wù)軟件產(chǎn)生的文本日志,,甚至是公有云的日志。 第三,,性能滿足要求,,ES本身是一種近實(shí)時(shí)的搜索平臺(tái),在海量數(shù)據(jù)的情況下也能快速查詢到所需內(nèi)容,。以DNS日志為例,,截至目前半年左右的時(shí)間內(nèi),系統(tǒng)共收集了約900億條數(shù)據(jù),,總量30TB,。由于對索引進(jìn)行了按天切分,因此查詢數(shù)據(jù)相對較快,,即使是按月查詢DNS日志(此時(shí)數(shù)據(jù)量已經(jīng)在10億級別),,也可以在10秒左右返回?cái)?shù)據(jù),。 第四,,部署相對簡單,對于熟悉Linux操作系統(tǒng)的管理員來說,,部署一個(gè)可用于生產(chǎn)的ES集群只需半天時(shí)間,,如果僅作為測試,甚至可以使用Docker等開箱即用模式來體驗(yàn),。 平臺(tái)軟硬件部署情況 目前,,南京審計(jì)大學(xué)ELK平臺(tái)的硬件情況如下: 第一,硬件部分為3臺(tái)2016年的退服雙路服務(wù)器,,128G內(nèi)存,,萬兆網(wǎng)卡,,每臺(tái)新購24塊2.4TSAS硬盤,運(yùn)行虛擬化軟件,;同時(shí),,外掛一臺(tái)100TB容量的利舊低端iSCSI存儲(chǔ),實(shí)現(xiàn)冷熱分層,。其中新增的硬盤也是為整個(gè)平臺(tái)建設(shè)投入的最大硬件成本,。 第二,軟件部分每臺(tái)虛擬機(jī)16G內(nèi)存,,2~5T不等空間,,目前共10臺(tái)虛擬機(jī)。 第三,,ES集群虛擬機(jī)運(yùn)行CentOS7,,Elasticsearch 7.0.16。 第四,,負(fù)責(zé)日志處理的Logstash運(yùn)行在一臺(tái)虛擬機(jī)上,,性能滿足需求的情況下暫時(shí)未部署到物理機(jī)上。圖1為南京審計(jì)大學(xué)ELK平臺(tái)邏輯架構(gòu),。 圖1 南京審計(jì)大學(xué)ELK平臺(tái)邏輯架構(gòu) 各類設(shè)備日志使用標(biāo)準(zhǔn)syslog協(xié)議發(fā)送到Logstash主機(jī),,并經(jīng)過預(yù)處理后,傳輸?shù)紼lasticsearch集群,。對于應(yīng)用日志,,則由Filebeat插件直接發(fā)送到Elasticsearch集群。 日志按照來源或者分類,,建立按天數(shù)命名的索引,,集群配置冷熱分層功能。對于超過90天的索引遷移到低端iSCSI存儲(chǔ),,并在180天后自動(dòng)刪除,。 當(dāng)有查詢需求時(shí),直接訪問Kibana使用KQL(Kinaba Query Langauge)語句查詢即可,。 日志的預(yù)處理和查詢 在平臺(tái)架構(gòu)圖中,,可以看到Logstash預(yù)處理是很關(guān)鍵的一環(huán)。Logstash除了對syslog進(jìn)行轉(zhuǎn)換外,,更重要的是將各類復(fù)雜的日志進(jìn)行簡單預(yù)處理,,使其在進(jìn)入Elasticsearch集群后可以高效地實(shí)現(xiàn)后期的保存、搜索,、冷熱分層等功能,。此處以NAT日志為例,簡要描述預(yù)處理過程。 首先,,在出口防火墻上確定NAT日志的格式,,如下: <134>1 2021 Dec 15 07:33:47 172.1.1.1 F5030_D-NAT444:sessionbasedA [17 172.16.1.1?218.1.1.147641 38104-] 這段日志的含義為172.16.1.1這臺(tái)內(nèi)網(wǎng)設(shè)備的47641端口,在2021年12月15日7點(diǎn)33分47秒,,使用218.1.1.1這個(gè)出口地址的38104端口訪問了互聯(lián)網(wǎng),。 其次,進(jìn)行日志切分,,將各個(gè)關(guān)鍵字提取出來,,如下: if [type] =="syslog-fw-f5030d-nat"{ grok{ match=>{ "message"=>"%{IP:SIP}-%{IP:DIP} %{INT:SPORT}%{INT:DPORT}" } } } 通過這段GROK語法,分別將上述的地址轉(zhuǎn)換為對應(yīng)的Elasticsearch關(guān)鍵字,,并指定其為特定索引模板(見表2),。 表2 NAT日志預(yù)處理 最后,將該索引模板在Elasticsearch中進(jìn)行保存,,再按照天數(shù)切割即可,。 當(dāng)有查詢需求時(shí),在Kibana中,,我們就很容易通過語法來查詢,。例如,輸入“SIP:10.100.0.104”即可快速查找出源IP為10.100.0.104的日志,,并且可以使用AND等語法進(jìn)行復(fù)雜查詢,。同時(shí),使用內(nèi)置的時(shí)間選擇器也可以很容易地在時(shí)間段中進(jìn)行選擇,。 同理,,我們也可以根據(jù)DNS等設(shè)備產(chǎn)生的日志,進(jìn)行一些簡單預(yù)處理,,這樣可以極大地方便后期查詢和數(shù)據(jù)存儲(chǔ),。 全量化日志平臺(tái)運(yùn)行情況 目前,上述日志平臺(tái)已經(jīng)穩(wěn)定運(yùn)行半年有余,,并且陸續(xù)對校園網(wǎng)出口NAT,、IPS和WAF等安全設(shè)備、DNS解析日志,、核心網(wǎng)絡(luò)設(shè)備運(yùn)行日志等進(jìn)行了收集,。該平臺(tái)完全可以實(shí)現(xiàn)秒級的精確查詢,并且滿足了多次上級機(jī)關(guān)的協(xié)查要求,。隨著日志數(shù)量的不斷增加,,也成功經(jīng)過了多次擴(kuò)容操作,穩(wěn)定性和性能都得到了充分驗(yàn)證,。 在未來,我們會(huì)對全量日志平臺(tái)進(jìn)行進(jìn)一步擴(kuò)展,使其更加符合學(xué)校要求,。 首先,,探索全流量數(shù)據(jù)的采集和分析。例如基于ES底座的Elasticflow或Arkime等開源工具,,對校園網(wǎng)的數(shù)據(jù)進(jìn)行流量收集和分析,。雖然實(shí)現(xiàn)全部流量收集受限于必要性和性能、空間,,但對于疑難雜癥的排查,,相較于傳統(tǒng)抓包具有較大優(yōu)勢。同時(shí),,也能為部分重要業(yè)務(wù)的流量分析,、網(wǎng)絡(luò)安全分析提供有效工具。 其次,,通過對全量日志存儲(chǔ),、分析,對校園網(wǎng)進(jìn)行傳統(tǒng)層面難以實(shí)現(xiàn)的分析結(jié)果,。例如,,我們嘗試過對一個(gè)月近10億條DNS日志進(jìn)行快速建模分析目的域名排行,不到30秒的時(shí)間可以分析出其中某個(gè)域名的解析數(shù)量達(dá)到了5000萬級別,,進(jìn)而進(jìn)一步分析其產(chǎn)生原因,,這種分析在傳統(tǒng)模式下是很難實(shí)現(xiàn)的。 最后,,希望將ELK作為日志底座,,基于其高可用、易擴(kuò)展,、全免費(fèi)的特性,,起到承上啟下的作用。向上,,能夠面向上層業(yè)務(wù)如校內(nèi)網(wǎng)站,、業(yè)務(wù)系統(tǒng)的全文搜索使用標(biāo)準(zhǔn)API接口提供服務(wù);向下,,能夠滿足業(yè)務(wù)系統(tǒng)大量的日志收集,、整理、存儲(chǔ)工作,,最終從日志視角實(shí)現(xiàn)對智慧校園體系的全景化,、可視化。 作者:吳鑫(南京審計(jì)大學(xué)信息化辦公室) |
|