本發(fā)明屬于電力系統(tǒng),涉及電網(wǎng)公司信息內(nèi)外網(wǎng)邏輯強隔離、應用服務多節(jié)點部署背景下服務器端日志的采集工作,具體地說是一種跨網(wǎng)絡多節(jié)點日志采集的方法。
背景技術:
基于國網(wǎng)公司信息系統(tǒng)“分區(qū)、分級、分域”的總體防護策略,信息網(wǎng)絡分為信息內(nèi)網(wǎng)和信息外網(wǎng)。信息內(nèi)網(wǎng)定位為公司信息化“SG186”工程業(yè)務應用承載網(wǎng)絡和內(nèi)部辦公網(wǎng)絡,信息外網(wǎng)定位為對外業(yè)務網(wǎng)絡和訪問互聯(lián)網(wǎng)用戶終端網(wǎng)絡。信息內(nèi)、外網(wǎng)之間實施強邏輯隔離的措施。由于應用服務器部署在信息外網(wǎng),而日志數(shù)據(jù)需提交到信息內(nèi)網(wǎng)的大數(shù)據(jù)平臺進行分析,必須對外網(wǎng)服務器端的日志文件提供擺渡程序,將其傳輸?shù)叫畔?nèi)網(wǎng)。此外,由于國網(wǎng)公司大多應用服務采用總部網(wǎng)省二級部署,需要將各網(wǎng)省節(jié)點日志數(shù)據(jù)定時上報到總部進行分析。
由于國網(wǎng)公司信息內(nèi)外網(wǎng)采用物理強隔離的安全防護策略,且多數(shù)應用服務采用總部網(wǎng)省兩級部署,增大了服務器端日志采集工作的難度。
技術實現(xiàn)要素:
本發(fā)明的目的是提供一種跨網(wǎng)絡多節(jié)點的日志采集方法,采用該方法服務器端日志采集工作簡單方便,安全可靠。
本發(fā)明的目的通過以下技術方案實現(xiàn):
一種跨網(wǎng)絡多節(jié)點的日志采集方法,其特征在于該方法包含:節(jié)點日志發(fā)送至總部外網(wǎng)、日志數(shù)據(jù)從總部外網(wǎng)發(fā)送至總部內(nèi)網(wǎng)、數(shù)據(jù)庫中日志數(shù)據(jù)恢復為原始日志文件;具體步驟如下:
1)節(jié)點日志發(fā)送至總部
應用服務器需要將每日節(jié)點日志發(fā)送到總部,采用外網(wǎng)傳輸方式,服務器每日定時執(zhí)行shell腳本,對服務器上的日志文件進行壓縮等處理,發(fā)送到總部服務器;
2)日志數(shù)據(jù)從總部外網(wǎng)發(fā)送至總部內(nèi)網(wǎng)
將日志數(shù)據(jù)從總部外網(wǎng)發(fā)送至總部內(nèi)網(wǎng),需要提供日志擺渡程序,將日志存儲到內(nèi)網(wǎng)數(shù)據(jù)庫;
3)數(shù)據(jù)庫中日志數(shù)據(jù)恢復為原始日志文件
總部內(nèi)網(wǎng)數(shù)據(jù)庫中的日志數(shù)據(jù),恢復為原始日志文件,再通過日志管理工具logstash發(fā)送到大數(shù)據(jù)平臺。
本發(fā)明步驟1)中,對于文件傳輸,采用https協(xié)議進行文件傳輸。步驟2)中,由于數(shù)據(jù)要穿過隔離裝置進入內(nèi)網(wǎng),隔離裝置能否承受大量數(shù)據(jù)的實時傳輸存在一定的風險,采取以下措施:
(1)對數(shù)據(jù)傳輸頻率進行限制,日志擺渡程序每隔10s從Kafka緩沖隊列中讀取日志數(shù)據(jù),以blob字段的形式存儲到內(nèi)網(wǎng)數(shù)據(jù)庫;
(2)對數(shù)據(jù)傳輸大小進行限制,對日志數(shù)據(jù)以行為單位進行分割,控制數(shù)據(jù)大小不超過2M;
(3)在使用日志管理工具logstash進行日志采集時,對請求長度超過限制或不滿足規(guī)定格式的日志數(shù)據(jù)進行過濾,保證數(shù)據(jù)的有效性和安全性。
步驟3)中,開設三個線程分別對數(shù)據(jù)庫中三類日志數(shù)據(jù)進行處理,實時讀取到3個日志文件中,標識日志記錄為已讀;由于日志數(shù)據(jù)的增大會對數(shù)據(jù)庫性能產(chǎn)生影響,每3天對已讀日志數(shù)據(jù)進行清理。
本發(fā)明基于國網(wǎng)公司應用服務部署的特點,采用該方法服務器端日志采集工作簡單方便,安全可靠。
附圖說明
圖1是日志采集流程圖。
具體實施方式
一種跨網(wǎng)絡多節(jié)點的日志采集方法,如圖1所示,包含:節(jié)點日志發(fā)送至總部外網(wǎng)、日志數(shù)據(jù)從總部外網(wǎng)發(fā)送至總部內(nèi)網(wǎng)、數(shù)據(jù)庫中日志數(shù)據(jù)恢復為原始日志文件。具體步驟如下:
1)網(wǎng)省節(jié)點日志發(fā)送至總部
網(wǎng)省公司應用服務器需要將每日節(jié)點日志發(fā)送到總部,采用外網(wǎng)傳輸方式,網(wǎng)省公司服務器每日定時執(zhí)行shell腳本,對服務器上的日志文件進行壓縮等處理,發(fā)送到總部服務器。對于文件傳輸,可采用https或sftp協(xié)議。由于sftp使用ssh協(xié)議,需總部對外開放ssh端口,該端口通常是黑客掃描的對象易造成安全隱患,因而采用https協(xié)議進行文件傳輸。
2)日志數(shù)據(jù)從總部外網(wǎng)發(fā)送至總部內(nèi)網(wǎng)
將日志數(shù)據(jù)從總部外網(wǎng)發(fā)送至總部內(nèi)網(wǎng),需要提供日志擺渡程序,將日志存儲到內(nèi)網(wǎng)數(shù)據(jù)庫。由于數(shù)據(jù)要穿過隔離裝置進入內(nèi)網(wǎng),隔離裝置能否承受大量數(shù)據(jù)的實時傳輸存在一定的風險,采取以下措施:
(1)對數(shù)據(jù)傳輸頻率進行限制。日志擺渡程序每隔10s從Kafka緩沖隊列中讀取日志數(shù)據(jù),以blob字段的形式存儲到內(nèi)網(wǎng)數(shù)據(jù)庫。
(2)對數(shù)據(jù)傳輸大小進行限制,對日志數(shù)據(jù)以行為單位進行分割,控制數(shù)據(jù)大小不超過2M。
此外,為避免服務器受到攻擊后產(chǎn)生的大量無效日志數(shù)據(jù)進入內(nèi)網(wǎng),在使用日志管理工具logstash進行日志采集時,對請求長度超過限制或不滿足規(guī)定格式的日志數(shù)據(jù)進行過濾,保證數(shù)據(jù)的有效性和安全性。
3)數(shù)據(jù)庫中日志數(shù)據(jù)恢復為原始日志文件
總部內(nèi)網(wǎng)數(shù)據(jù)庫中的日志數(shù)據(jù),需要恢復為原始日志文件,再通過日志管理工具logstash發(fā)送到大數(shù)據(jù)平臺。開設三個線程分別對數(shù)據(jù)庫中三類日志數(shù)據(jù)進行處理,實時讀取到3個日志文件中,標識日志記錄為已讀。由于日志數(shù)據(jù)的增大會對數(shù)據(jù)庫性能產(chǎn)生影響,可考慮每3天對已讀日志數(shù)據(jù)進行清理。
實施例
江蘇省電力公司日志搜集具體操作步驟如下:
1.網(wǎng)省節(jié)點服務器每日定時發(fā)送日志數(shù)據(jù)到總部外網(wǎng);
2.采用日志管理工具Logstash對總部服務端日志和各網(wǎng)省傳輸過來的日志進行實時收集,使用Kafka對日志消息進行消費;
3.將Kafka中的日志數(shù)據(jù)發(fā)送到總部內(nèi)網(wǎng)數(shù)據(jù)庫;
4.將內(nèi)網(wǎng)數(shù)據(jù)庫中日志數(shù)據(jù)恢復為原始日志文件;
5.采用日志管理工具Logstash對總部內(nèi)網(wǎng)的日志進行實時收集,以發(fā)送到大數(shù)據(jù)平臺進行后續(xù)的日志分析處理。