周德榮
摘 要:日志數(shù)據(jù)是IT基礎(chǔ)設(shè)施運(yùn)行情況的真實(shí)反映,是IT運(yùn)維管理與網(wǎng)絡(luò)安全分析的基礎(chǔ).本文介紹了高校校園網(wǎng)日志主要來源,分析了構(gòu)建日志分析平臺(tái)的關(guān)鍵技術(shù),提出了基于ELK開源軟件構(gòu)建高校校園網(wǎng)日志平臺(tái),給出了高校校園網(wǎng)日志平臺(tái)設(shè)計(jì)方案.該方案以高校校園網(wǎng)為研究對(duì)象,實(shí)現(xiàn)校園網(wǎng)原始日志采集、日志存儲(chǔ)、日志可視化分析功能,具有實(shí)時(shí)性好、可擴(kuò)展性強(qiáng)、成本低等優(yōu)點(diǎn).
關(guān)鍵詞:日志采集;日志存儲(chǔ);日志可視化;Logstash
中圖分類號(hào):TP393.09? 文獻(xiàn)標(biāo)識(shí)碼:A? 文章編號(hào):1673-260X(2019)10-0045-03
隨著互聯(lián)網(wǎng)的不斷發(fā)展,網(wǎng)絡(luò)安全問題日趨嚴(yán)峻.校園網(wǎng)作是教學(xué)、科研和信息化管理的重要基礎(chǔ)平臺(tái),具有網(wǎng)絡(luò)規(guī)模大、用戶數(shù)量多、網(wǎng)絡(luò)設(shè)備種類多、網(wǎng)絡(luò)環(huán)境開放等特點(diǎn),校園網(wǎng)面臨著越來越多的安全問題,校園網(wǎng)安全對(duì)于高校發(fā)展至關(guān)重要.
目前,校園網(wǎng)運(yùn)維與管理主要通過投入資金購買網(wǎng)絡(luò)管理平臺(tái)、防火墻、IDS、IPS等軟硬件設(shè)備來實(shí)現(xiàn),但總體效果不佳,其重要原因是忽視了日志在校園網(wǎng)管理中的作用.校園網(wǎng)中的軟硬件系統(tǒng)運(yùn)行過程中會(huì)產(chǎn)生大量的日志,日志具有不同類型、不同格式,其記錄了系統(tǒng)運(yùn)行、使用者和攻擊者的行為,能直觀反映校園網(wǎng)整體運(yùn)行情況.為了迅速發(fā)現(xiàn)校園網(wǎng)中的異常,有效監(jiān)控、分析和處理校園網(wǎng)運(yùn)行中的異常情況,只有將各種設(shè)備、軟件系統(tǒng)進(jìn)行綜合分析,建立專門日志信息采集平臺(tái),對(duì)其信息進(jìn)行分析和處理,才能有效解決校園網(wǎng)運(yùn)行中遇到的問題.
傳統(tǒng)的日志處理和分析方案具有以下不足:日志數(shù)據(jù)采集方式單一,主要針對(duì)單一日志來源、日志數(shù)據(jù)處理類型以結(jié)構(gòu)數(shù)據(jù)為主,對(duì)非結(jié)構(gòu)數(shù)據(jù)處理功能很弱;對(duì)日志數(shù)據(jù)進(jìn)行實(shí)時(shí)計(jì)算分析的能力較差;日志數(shù)據(jù)的可視化分析功能較弱.針對(duì)上述特點(diǎn),提出基于ELK開源軟件設(shè)計(jì)一個(gè)海量日志分析系統(tǒng).ELK是Logstash、Elasticstorage、Kibana軟件組合簡稱,ELK專為收集、存儲(chǔ)和分析數(shù)據(jù)設(shè)計(jì).Logstash是用于收集數(shù)據(jù)的核心軟件,Elasticstorage數(shù)據(jù)存儲(chǔ)和搜索引擎,通過Kibana完成數(shù)據(jù)可視化分析.采用ELK構(gòu)建日志系統(tǒng)具有成本低、可擴(kuò)展性好、能實(shí)現(xiàn)快速開發(fā)等優(yōu)點(diǎn).綜上所述,基于ELK開源軟件構(gòu)建高校校園網(wǎng)日志平臺(tái)是很有必要的.
1 校園網(wǎng)日志來源
高校校園網(wǎng)主要由網(wǎng)絡(luò)基礎(chǔ)設(shè)施和網(wǎng)絡(luò)服務(wù)及應(yīng)用組成.網(wǎng)絡(luò)系統(tǒng)的異構(gòu)性、設(shè)備的多樣性、軟件環(huán)境的復(fù)雜性,各類基礎(chǔ)設(shè)施設(shè)備及軟件都會(huì)產(chǎn)生日志.校園網(wǎng)中日志來源主要有以下三類:
1.1 網(wǎng)絡(luò)設(shè)備日志
網(wǎng)絡(luò)設(shè)備主要是指路由設(shè)備、交換設(shè)備、防火墻、入侵監(jiān)測(cè)系統(tǒng)、具有網(wǎng)絡(luò)功能的其他設(shè)備等.網(wǎng)絡(luò)設(shè)備日志系統(tǒng)對(duì)網(wǎng)絡(luò)管理非常重要,通過查看網(wǎng)絡(luò)設(shè)備的日志,能迅速了解設(shè)備運(yùn)行情況,及時(shí)發(fā)現(xiàn)并診斷發(fā)生的異常.
1.2 系統(tǒng)日志
Windows和Linux是目前主流的兩類操作系統(tǒng),它們的安全運(yùn)行是校園網(wǎng)提供服務(wù)的基礎(chǔ).兩類操作系統(tǒng)對(duì)應(yīng)不同的系統(tǒng)日志,Windows系統(tǒng)日志是windows操作系統(tǒng)的各組件在運(yùn)行過程中產(chǎn)生的事件,主要包括系統(tǒng)登錄、各種驅(qū)動(dòng)程序運(yùn)行出現(xiàn)的重大問題、操作系統(tǒng)的各組件運(yùn)行時(shí)出現(xiàn)的異常,系統(tǒng)日志通過Windows事件查看器或第三方工具讀取.Linux系統(tǒng)日志主要由登錄時(shí)間日志、進(jìn)程統(tǒng)計(jì)日志和錯(cuò)誤日志構(gòu)成,日志記錄為文本文件形式,能通過系統(tǒng)工具進(jìn)行讀取.
1.3 應(yīng)用服務(wù)日志
應(yīng)用服務(wù)日志是指操作系統(tǒng)中運(yùn)行的各類應(yīng)用系統(tǒng)產(chǎn)生重要事件的記錄.校園網(wǎng)主要提供Web服務(wù)、FTP服務(wù)、域名服務(wù)、數(shù)據(jù)庫服務(wù)等,對(duì)應(yīng)應(yīng)用系統(tǒng)有Apache、FTP、BIND、DHCP、IIS、Oracle數(shù)據(jù)庫管理系統(tǒng)等,每種應(yīng)用軟件在運(yùn)行過程中會(huì)產(chǎn)生大量與運(yùn)行行為密切相關(guān)日志信息.
2 關(guān)鍵技術(shù)
2.1 日志采集技術(shù)
日志來源具有多樣性、復(fù)雜性,有必要對(duì)校園網(wǎng)IT環(huán)境日志進(jìn)行采集.校園網(wǎng)中網(wǎng)絡(luò)設(shè)備及軟件系統(tǒng)通常具有日志記錄系統(tǒng),能實(shí)現(xiàn)重要日志的記錄.日志采集主要有單機(jī)部署和分布式部署兩種,為了日志集中管理推薦采用分布式日志采集.
日志協(xié)議主要有Syslog協(xié)議、SNMP協(xié)議、Windows日志系統(tǒng)、特殊專用協(xié)議,根據(jù)日志源環(huán)境不同,采用不同的日志協(xié)議.網(wǎng)絡(luò)管理中采集日志數(shù)據(jù)方式包括文本方式采集、Syslog方式采集、SNMP Trap方式采集等.
Logstash是一款專為收集、分析數(shù)據(jù)設(shè)計(jì)的開源軟件,Logstash具有數(shù)據(jù)的搜集、分析、過濾功能,支持多種形式的數(shù)據(jù)輸出.Logstash基于C/S架構(gòu),Logstash客戶端部署到日志源設(shè)備中,設(shè)置監(jiān)聽日志文件后日志數(shù)據(jù)增量發(fā)送到指定地址;服務(wù)端負(fù)責(zé)完成對(duì)客戶端的發(fā)送過來數(shù)據(jù)進(jìn)行過濾、修改等處理,同時(shí)將處理后的結(jié)果數(shù)據(jù)發(fā)送給存儲(chǔ)系統(tǒng).
2.2 日志存儲(chǔ)技術(shù)
日志存儲(chǔ)方式由日志留存策略決定.作為日志管理者,通常根據(jù)日志數(shù)據(jù)的存儲(chǔ)類型、大小、成本、檢索速度及存檔和銷毀時(shí)間等需求制定日志留存策略.日志存儲(chǔ)方式首要考慮留存時(shí)間與空間要求,目前主要有文件方式存儲(chǔ)、數(shù)據(jù)庫方式存儲(chǔ)、Hadoop存儲(chǔ)、Elasticsearch存儲(chǔ)等方式存儲(chǔ)日志,每種方式各有優(yōu)缺點(diǎn),為了便于高效存儲(chǔ)和分析采用Elasticsearch方式存儲(chǔ)日志.
Elasticsearch是一個(gè)基于Lucene的開源搜索引擎,具有穩(wěn)定、可靠、快速等優(yōu)點(diǎn),對(duì)于構(gòu)建大規(guī)模日志存儲(chǔ)與分析系統(tǒng),采用Elasticsearch集群.Elasticsearch集能實(shí)現(xiàn)分布式實(shí)時(shí)文件存儲(chǔ),將每一個(gè)字段存入索引,使其可以被檢索到;具有良好的水平擴(kuò)展能力,以處理PB級(jí)別的結(jié)構(gòu)化或非結(jié)構(gòu)化數(shù)據(jù);集群節(jié)點(diǎn)有數(shù)據(jù)節(jié)點(diǎn)、主節(jié)點(diǎn)、負(fù)載平衡節(jié)點(diǎn).同時(shí),Elasticsearch支持插件機(jī)制,包括分詞插件、同步插件、Hadoop插件、可視化插件等,能夠?qū)θ罩具M(jìn)行完整分析處理.Elasticsearch中存儲(chǔ)日志時(shí)可分別對(duì)未經(jīng)過計(jì)算的原始日志和經(jīng)過日志分析處理后的結(jié)果日志進(jìn)行存儲(chǔ).
2.3 日志可視化技術(shù)
數(shù)據(jù)可視化功能是分析數(shù)據(jù)時(shí)最直觀最有效的方法,用戶直觀地得到日志分析和計(jì)算之后生成的結(jié)果.數(shù)據(jù)可視化技術(shù)通過將原始數(shù)據(jù)進(jìn)行分析、圖形化,達(dá)到清晰有效地進(jìn)行數(shù)據(jù)顯示、查詢和維護(hù).Kibana是一個(gè)開源數(shù)據(jù)可視化平臺(tái),Kibana通過Web方式根據(jù)索引配置查找和交互Elasticsearch中的數(shù)據(jù),使用各種圖表對(duì)日志數(shù)據(jù)進(jìn)行分析及可視化展示.
2.4 Redis技術(shù)
由于日志平臺(tái)具有數(shù)據(jù)量大、實(shí)時(shí)性要求高的特點(diǎn),為保證日志平臺(tái)系統(tǒng)性能,采用內(nèi)存數(shù)據(jù)庫是作為數(shù)據(jù)存儲(chǔ)緩存技術(shù).Redis是開源的基于內(nèi)存、鍵值對(duì)目前主流的存儲(chǔ)數(shù)據(jù)庫之一.Redis內(nèi)存數(shù)據(jù)庫性能優(yōu)異、速度快、擴(kuò)展性好,通過將Redis內(nèi)存數(shù)據(jù)庫設(shè)在日志存儲(chǔ)數(shù)據(jù)庫前端,用以完成采集日志數(shù)據(jù)緩存.Redis提供發(fā)布/訂閱消息隊(duì)列模式,日志采集模塊負(fù)責(zé)向隊(duì)列中推送數(shù)據(jù),而存儲(chǔ)模塊連續(xù)從消息隊(duì)列中獲取日志數(shù)據(jù)進(jìn)行計(jì)算,消息隊(duì)列在生產(chǎn)者和消費(fèi)者之間有效地起到了緩存的作用,使得數(shù)據(jù)的生產(chǎn)和消費(fèi)達(dá)到異步的效果.
3 系統(tǒng)設(shè)計(jì)
3.1 需求分析
對(duì)國內(nèi)外研究現(xiàn)狀進(jìn)行分析和總結(jié),結(jié)合高校校園網(wǎng)環(huán)境實(shí)際,日志分析平臺(tái)的功能應(yīng)具有以下功能.(1)能夠及時(shí)、準(zhǔn)確地采集校園網(wǎng)中網(wǎng)絡(luò)設(shè)備、軟件基礎(chǔ)設(shè)施及應(yīng)用系統(tǒng)等產(chǎn)生的各類日志數(shù)據(jù);(2)能夠及時(shí)對(duì)采集到的海量日志數(shù)據(jù)進(jìn)行存儲(chǔ),同時(shí)保證日志數(shù)據(jù)存儲(chǔ)高并發(fā)性、高可用性要求;(3)能夠?qū)θ罩緮?shù)據(jù)進(jìn)行統(tǒng)計(jì)分析及可視化展示.
3.2 總體設(shè)計(jì)
針對(duì)日志分析平臺(tái)需求分析,系統(tǒng)目標(biāo)為設(shè)計(jì)實(shí)現(xiàn)一個(gè)對(duì)校園網(wǎng)海量日志進(jìn)行采集、存儲(chǔ)、處理和展示的日志分析平臺(tái),系統(tǒng)主要功能是日志采集、日志存儲(chǔ)、日志可視化分析展示.根據(jù)系統(tǒng)功能性需求,對(duì)系統(tǒng)模塊架構(gòu)進(jìn)行劃分,日志分析平臺(tái)的架構(gòu)如圖1所示:
根據(jù)日志分析平臺(tái)功能需求,日志分析平臺(tái)從日志采集、日志存儲(chǔ)、日志可視化分析展示三個(gè)模塊構(gòu)建核心流程,系統(tǒng)從logstash分布式日志采集模塊開始,首先對(duì)采集的日志經(jīng)過預(yù)處理、格式化和過濾,然后將原始日志要存儲(chǔ)的日志推送到Redis消息隊(duì)列,分布式存儲(chǔ)模塊Elasticsearch從Redis隊(duì)列中取得數(shù)據(jù)并進(jìn)行存儲(chǔ),最后通過Kibana可視化模塊對(duì)Elasticsearch中存儲(chǔ)的原始日志進(jìn)可視化分析與展示.
3.3 核心模塊設(shè)計(jì)
3.3.1 分布式日志采集模塊
該模塊完成校園網(wǎng)中原始日志數(shù)據(jù)的采集,將收集到每條日志進(jìn)行預(yù)處理,最后將日志進(jìn)行輸出到指定位置.以Logstash開源軟件為核心,日志采集功能由多個(gè)采集節(jié)點(diǎn)組成,構(gòu)建基于logstash的集群保障高可用性.集群中每個(gè)Logstash節(jié)點(diǎn)采集數(shù)據(jù)原理如圖2所示:
Input輸入完成對(duì)各類日志數(shù)據(jù)進(jìn)行采集定義,日志可以是來自文件或syslog報(bào)文等,通過定義輸入源及格式,實(shí)現(xiàn)日志自動(dòng)識(shí)別和處理日志輪轉(zhuǎn).Filtert處理主要完成對(duì)輸入日志數(shù)據(jù)進(jìn)行過濾,標(biāo)識(shí)出需要的字段并進(jìn)行處理.Output用于完成對(duì)已過濾日志數(shù)據(jù)輸出的定義,輸出可是以文件、數(shù)據(jù)庫、消息隊(duì)列、Elasticsearch等.Input、Filter、Output三個(gè)功能在Logstash是以插件方式實(shí)現(xiàn),部署Logstash時(shí),通過配置相應(yīng)插件來完成對(duì)輸入源日志輸入信息、過濾規(guī)則及輸出進(jìn)行定義,實(shí)現(xiàn)校園網(wǎng)中各類日志采集功能.
3.3.2 分布式日志存儲(chǔ)模塊
日志存儲(chǔ)模塊是整個(gè)系統(tǒng)的基礎(chǔ),由于日志數(shù)據(jù)的海量性,對(duì)數(shù)據(jù)存儲(chǔ)穩(wěn)定性、容錯(cuò)性、高性能、高可擴(kuò)展性要求高,采用Elasticsearch作為存儲(chǔ)技術(shù)對(duì)采集的原始日志進(jìn)行存儲(chǔ)、建立索引.Elasticsearch實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)時(shí),采用多副片方式存儲(chǔ)日志數(shù)據(jù),能實(shí)現(xiàn)多用戶文檔搜索功能.Elasticsearch可擴(kuò)展性高,支持大模型集群,節(jié)點(diǎn)數(shù)量擴(kuò)展容易,擴(kuò)展后索引庫能自動(dòng)再平衡,以保證集群的負(fù)載均衡.
為保證日志平臺(tái)存儲(chǔ)性能,構(gòu)成存儲(chǔ)集群,ES集群有5個(gè)節(jié)點(diǎn)組成,1個(gè)master節(jié)點(diǎn),4個(gè)Data節(jié)點(diǎn).Master節(jié)點(diǎn)用于協(xié)調(diào)查詢檢索請(qǐng)求和索引操作請(qǐng)求,將請(qǐng)求分配給Data節(jié)點(diǎn).Data節(jié)點(diǎn)用于存儲(chǔ)索引數(shù)據(jù)和完成數(shù)據(jù)處理操作.
3.3.3 日志可視分析模塊
該模塊實(shí)現(xiàn)對(duì)存儲(chǔ)于ES集群的日志數(shù)據(jù)分析、計(jì)算和聚合處理,對(duì)處理后的日志進(jìn)行可視化分析與展示,以達(dá)到使用日志結(jié)果服務(wù)校園網(wǎng)管理與運(yùn)維.
基于日志數(shù)據(jù)存儲(chǔ)于Elasticsearch,采用Kibana完成原始日志數(shù)據(jù)的可視化和查詢功能,當(dāng)任何結(jié)構(gòu)化和非結(jié)構(gòu)化日志數(shù)據(jù)存儲(chǔ)到Elasticsearch索引后,Kibana使用Elasticsearch強(qiáng)大的搜索和分析功能,結(jié)合Kibana定制的儀表盤,實(shí)現(xiàn)原始日志數(shù)據(jù)分析和展示,到達(dá)實(shí)時(shí)監(jiān)控系統(tǒng)中原始日志的狀態(tài)變化.
3.4 系統(tǒng)物理架構(gòu)
根據(jù)日志平臺(tái)功能需求分析,結(jié)合采集的校園網(wǎng)日志占用空間大,平臺(tái)主要由校園網(wǎng)IT環(huán)境、日志采集集群、ES日志存儲(chǔ)集群構(gòu)成,系統(tǒng)物理結(jié)構(gòu)如圖3所示.校園網(wǎng)IT環(huán)境為產(chǎn)生日志的基礎(chǔ)軟硬件設(shè)施,是校園網(wǎng)日志主要來源;日志采集集群由多臺(tái)服務(wù)器構(gòu)成,基于Logstash軟件構(gòu)建日志采集集群;ES集群為多臺(tái)服務(wù)器組成,通過部署Elasticsearch軟件,構(gòu)建主節(jié)點(diǎn)和數(shù)據(jù)結(jié)節(jié)點(diǎn)組成的數(shù)據(jù)存儲(chǔ)集群,完成日志數(shù)據(jù)存儲(chǔ);日志可視化查詢?cè)趩闻_(tái)服務(wù)器部署Kibana軟件,完成對(duì)ES集群中存儲(chǔ)的日志數(shù)據(jù)進(jìn)行可視化分析與展示.
4 結(jié)語
校園網(wǎng)日志數(shù)據(jù)對(duì)網(wǎng)絡(luò)管理運(yùn)維至關(guān)重要,本文提出了基于ELK開源軟件構(gòu)建高校校園網(wǎng)日志平臺(tái),分析了日志來源,對(duì)日志采集技術(shù)、日志存儲(chǔ)技術(shù)、日志可視化分析及消息隊(duì)列技術(shù)進(jìn)行詳細(xì)介紹,結(jié)合校園網(wǎng)實(shí)際,對(duì)高校日志平臺(tái)設(shè)計(jì)方案進(jìn)行了深入討論,對(duì)建設(shè)日志分析平臺(tái)有一定參考價(jià)值.
參考文獻(xiàn):
〔1〕楊品林.高校校園網(wǎng)的信息安全策略研究[J].信息安全與技術(shù),2015,6(04):31-33.
〔2〕姚軍,簡于涵,劉暉.日志管理與分析權(quán)威指南[M].北京:機(jī)械工業(yè)出版社,2014.
〔3〕李晨光.UNIX/Linux網(wǎng)絡(luò)日志分析與流量監(jiān)控[M].北京:機(jī)械工業(yè)出版社,2015.
〔4〕張春生,郭長杰,尹兆濤.基于大數(shù)據(jù)技術(shù)的IT基礎(chǔ)設(shè)施日志分析系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].微型電腦應(yīng)用,2016,32(06):49-52.
〔5〕李祥池.基于ELK和Spark Streaming的日志分析系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電子科學(xué)技術(shù),2015,02(06):674-678.
〔6〕于兆良,張文濤,葛慧,等.基于Hadoop平臺(tái)的日志分析模型[J].計(jì)算機(jī)工程與設(shè)計(jì),2016,37(02):338-344.