亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于ELK的BIND海量日志分析與用戶行為態(tài)勢感知研究

        2020-02-14 05:55:53阮曉龍路景鑫
        軟件工程 2020年1期
        關鍵詞:態(tài)勢感知

        阮曉龍 路景鑫

        摘 ?要:在互聯(lián)網(wǎng)大規(guī)模應用的環(huán)境下,如何有效分析用戶喜歡訪問什么網(wǎng)站、在互聯(lián)網(wǎng)上喜歡做什么、瀏覽什么是針對用戶行為分析的重要內(nèi)容。DNS作為一種域名解析服務,是互聯(lián)網(wǎng)業(yè)務通信的重要保障,幾乎所有互聯(lián)網(wǎng)業(yè)務訪問運行均離不開DNS的支持,所以本文通過對DNS海量日志進行收集、清洗、存儲全流程處理過程,并結合以ELK為平臺、以業(yè)務分析模型為基礎,從而使DNS日志分析結果可視化清晰呈現(xiàn),讓用戶了解互聯(lián)網(wǎng)業(yè)務訪問運行趨勢,也直觀表現(xiàn)出用戶實際的訪問情況,最終實現(xiàn)用戶行為的態(tài)勢感知。

        關鍵詞:ELK;BIND;日志分析;態(tài)勢感知

        中圖分類號:TP31 ? ? 文獻標識碼:A

        Abstract:In the environment of large-scale application of Internet,how to effectively analyze what websites users like to visit,what they like to do on the Internet,and what websites users like to brows is an important content of user behavior analysis.DNS,as a domain name resolution service,is an important guarantee for Internet business communication.Almost all Internet business access and operation can not be separated from DNS support.Therefore,through the whole process of collection,cleaning and storage of DNS massive logs,combined with elk platform and business analysis model,this paper makes DNS log analysis results visible and clear.Let users understand the operational trend of Internet business access,and also intuitively show the actual access situation of users,and finally achieve the situation awareness of user behavior.

        Keywords:ELK;BIND;log analysis;situational awareness

        1 ? 引言(Introduction)

        伴隨著互聯(lián)網(wǎng)規(guī)模的日益擴大,用戶量增加[1]。第43次《中國互聯(lián)網(wǎng)絡發(fā)展狀況統(tǒng)計報告》中指出,截至2018年12月,網(wǎng)民規(guī)模達8.29億,全年新增網(wǎng)民5653萬,互聯(lián)網(wǎng)普及率為59.6%。針對互聯(lián)網(wǎng)域名解析系統(tǒng),報告中也指出,截至2018年12月,我國域名總數(shù)為3792.8萬個。其中,“.CN”域名總數(shù)為2124.3萬個,在域名總數(shù)中占比56.0%[2]。

        域名服務DNS實現(xiàn)域名與IP地址之間的轉換,幾乎所有互聯(lián)網(wǎng)應用的正常運行都離不開DNS的支持。DNS是全球互聯(lián)網(wǎng)服務的基石,是互聯(lián)網(wǎng)通信的重要保障。域名生命周期的不同階段中會產(chǎn)生域名操作管理日志、查詢服務日志、解析服務日志等數(shù)據(jù)。這些日志數(shù)據(jù)記錄蘊含用戶訪問行為特征、域名系統(tǒng)服務質量、互聯(lián)網(wǎng)訪問安全、域名服務發(fā)展趨勢等大量信息,是對域名管理和域名服務狀態(tài)的體現(xiàn),反映域名服務體系的總體特征[3]。

        本文基于ELK對BIND海量日志進行數(shù)據(jù)分析,實現(xiàn)域名服務質量及用戶訪問行為的態(tài)勢感知分析與研究。

        2 ? BIND日志(BIND log)

        2.1 ? BIND日志配置

        在默認情況下,BIND把日志消息寫到/var/log/messages文件中,而這些日志消息是非常少的,主要包含啟動、關閉,以及嚴重錯誤的日志消息。如果需要詳細記錄服務器的運行日志,用戶可自行配置日志行為記錄內(nèi)容。

        本文基于BIND 9進行DNS服務實現(xiàn),其日志配置操作較為簡單靈活,要詳細記錄DNS域名解析與服務器的運行狀況,要在配置文件中使用“l(fā)ogging”語句來定義所需要的日志記錄類型。

        (1)常用術語

        BIND日志配置中常用術語及其說明,如表1所示。

        (2)日志語法格式

        BIND的logging日志語法格式如下所示。

        logging {

        channel channel_name { ? ? ? ? ? ? ? ? //定義通道

        file log_file [versions number | unlimited] [size sizespec]; | syslog optional_facility; | null; | stderr; ? ? ?//定義輸出方式

        severity log_severity; //定義消息嚴重性

        [print-time boolean;] //是否添加時間前綴

        [print-severity boolean;] //是否添加消息嚴重性前綴

        [print-category boolean;] //是否添加消息類別名前綴

        };

        category category_name { // 定義類別

        channel_name;

        ......

        };

        };

        (3)DNS日志配置

        本文中主要實現(xiàn)DNS查詢?nèi)罩九渲貌M足以下要求,日志文件代碼如下所示。

        ①能夠獲取并存儲查詢?nèi)罩?,以文本文件方式存?

        ②文本文件大小進行限制,不能無限存儲,并設置多版本文件;

        ③存儲日志消息記錄可添加時間、消息嚴重性、類別等內(nèi)容前綴。

        logging {

        channel query{ //查詢?nèi)罩?/p>

        file "log/query.log" versions 9 size 32m; //日志存儲

        severity info;

        print-category yes;

        print-severity yes;

        print-time yes;

        };

        category default {null;};

        category queries {query;};

        category network {null;};

        category client {null;};

        category general {null;};

        };

        2.2 ? BIND日志解讀

        查看DNS服務器中“/log/query.log”查詢?nèi)罩居涗浳募?,獲取DNS一條查詢?nèi)罩救缦滤?,根?jù)日志消息記錄類型進行拆分每個字段的含義如表2所示。

        08-Aug-2019 04:05:10.009 queries: info: client 10.10.3.234#64345 (vip.wps.cn): view openlabs: query: vip.wps.cn IN A + (10.10.3.70)

        2.3 ? BIND日志推送

        Filebeat是一種輕量型日志采集器,用于轉發(fā)和匯總日志與文件。本文基于該采集器進行BIND日志數(shù)據(jù)獲取并推送到Logstash服務器中進行日志數(shù)據(jù)處理,其操作過程如下所示。

        (1)獲取與安裝

        獲取Filebeat軟件可通過官網(wǎng)網(wǎng)址(https://www.elastic.co/cn/downloads/beats/filebeat)選擇相應版本進行下載。下載完成后的軟件包,放置到DNS服務器中,并通過以下命令解壓安裝。

        # tar-zxvf filebeat-7.3.0-linux-x86_64.tar.gz

        (2)修改配置文件

        進入Filebeat軟件解壓目錄下,對Filebeat配置文件“filebeat.yml”進行編輯修改,設置本地日志文件的路徑與輸出Logstash服務器地址,具體配置如下所示。

        filebeat.inputs:

        -type: log ? #數(shù)據(jù)類型

        enabled: true ? #開啟模塊

        paths:

        -/var/named/log/query* ? #文件路徑

        fields:

        document_type: dnslog ? #定義日志文件索引值,區(qū)分日志文件

        output.logstash:

        hosts: ["10.10.2.231:5044"] ? #輸出Logstash地址

        (3)執(zhí)行啟動Filebeat

        配置執(zhí)行后臺啟動Filebeat,其操作命令如下所示。

        //將所有標準輸出及標準錯誤輸出到/dev/null空設備,即沒有任何輸出

        # nohup./filebeat-e-c filebeat.yml>/dev/null 2>&1 &

        //或者執(zhí)行如下命令操作

        # nohup ./filebeat-e-c filebeat.yml > filebeat.log &

        3 ? 日志數(shù)據(jù)處理(Log data processing)

        Logstash作為Elasicsearch常用的實時數(shù)據(jù)采集引擎,可以采集來自不同數(shù)據(jù)源的數(shù)據(jù),并對數(shù)據(jù)進行處理后輸出到多種輸出源。Logstash的數(shù)據(jù)處理主要是由Inputs(用于從數(shù)據(jù)源獲取數(shù)據(jù))、Filters(用戶處理數(shù)據(jù)如格式化、數(shù)據(jù)派生等)、Outputs(用于數(shù)據(jù)輸出)三部分組成。

        在Logstash的“config”目錄內(nèi)創(chuàng)建配置文件“dns-logstash.conf”進行日志數(shù)據(jù)處理,其操作過程如下所示。

        3.1 ? 日志數(shù)據(jù)接收

        在“dns-logstash.conf”配置文件中填寫Input內(nèi)容,用于接收來自DNS服務器的Filebeat數(shù)據(jù),配置內(nèi)容如下所示。

        input {

        beats {

        port=>5044

        }

        }

        3.2 ? 日志數(shù)據(jù)格式化

        應根據(jù)日志字段的含義進行切分格式化處理,可使用Grok或自定義規(guī)則,將定義格式化規(guī)則內(nèi)容寫入配置文件“filter”字段中,配置內(nèi)容如下所示。

        filter {

        if [fields][document_type]== "dnslog" {

        //根據(jù)正則規(guī)則進行日志字段拆分

        grok {

        match=>{ "message"=>"^(?.*)\s(?\w*):\s(?\w*):\sclient\s(?\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})#(?\w*)\s\((?.*)\):\squery:\s(?.*?\s)(?.*?\s)(?.*?\s)(?.*?\s)\((?.*)\)"}

        }

        //DNS日志時間格式化

        date {

        match=>["dns_time" , "dd-MMM-yyyy HH:mm:ss.SSS"]

        target=>"dns_time_local"

        }

        //根據(jù)客戶端IP獲取地理位置

        geoip {

        source=>"client_ip"

        target=>"geoip"

        database=>" /opt/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-filter-geoip-6.0.1-java/vendor/GeoLite2-City.mmdb"

        add_field=>["[geoip][coordinates]", "%{[geoip][longitude]}"]

        add_field=>["[geoip][coordinates]", "%{[geoip][latitude]}"]

        }

        //對字段信息進行處理,格式化類型、刪除字段等

        mutate {

        convert=>["[geoip][coordinates]", "float"]

        remove_field=>["dns_domain1"]

        strip=>["dns_time","dns_desc","dns_level","client_ip","client_port","dns_domain","dns_class","dns_type","dns_info","dns_ip"]

        }

        }

        }

        3.3 ? 日志數(shù)據(jù)清洗

        可對拆分的字段進行深入清洗處理,需在“filter”字段中引用腳本清洗文件“dns.rb”,配置內(nèi)容如下所示。

        ruby {

        path=>"/opt/logstash/script/dns.rb"

        remove_field=>["dns_time"]

        }

        腳本清洗處理文件中處理字段部分內(nèi)容如下所示。

        //進行多級域名聚合合并

        dns_domain=Array.new

        dns_domain=event.get("dns_domain").split('.')

        event.set('dns_domain_ana_arr',dns_domain)

        dns_domain_ana=""

        for i in 1..dns_domain.length-1

        dns_domain_ana +=dns_domain[i] +"."

        end

        event.set('dns_domain_ana',dns_domain_ana[0..dns_domain_ana.length-2])

        3.4 ? 日志數(shù)據(jù)輸出

        如果是在對Logstash配置文件調試階段,可將處理后的數(shù)據(jù)輸出到控制臺中,從而可直觀查看處理后數(shù)據(jù)是否正確,其配置內(nèi)容如下所示。

        output {

        if [fields][document_type]== "dnslog" ?{

        stdout { codec=>rubydebug }

        }

        }

        如果需要處理后的數(shù)據(jù)推送至Elasticsearch服務器中,其配置內(nèi)容如下所示。

        output {

        if [fields][document_type]== "dnslog" ?{

        elasticsearch{

        hosts=>"10.10.2.231:9200"

        index=>"dnslog"

        }

        }

        }

        將DNS日志文件推送到Elasticsearch服務中,基于Kibana服務進行數(shù)據(jù)展示,如圖1所示。

        4 ? 分析模型研究(Research on analysis model)

        4.1 ? 分析模型

        基于采集的DNS日志數(shù)據(jù)結構并結合DNS作用可創(chuàng)建如表3所示日志數(shù)據(jù)分析模型。

        4.2 ? 數(shù)據(jù)分析可視化

        使用Kibana可快速將獲取到日志數(shù)據(jù)創(chuàng)建直觀的分析展示,并將各種分析圖表匯總,形成儀表盤進行展示。以分析“DNS記錄訪問量統(tǒng)計分析”為例,繪制數(shù)據(jù)可視化圖表,其操作步驟如下所示。

        ①在“可視化”操作界面中,點擊【創(chuàng)建新的可視化】,選擇可視化類型為“折線圖”;

        ②選擇可視化呈現(xiàn)數(shù)據(jù)源為“dnslog”;

        ③調整“存儲桶”下“X軸”數(shù)據(jù)內(nèi)容,以“Date Historgram”為聚合方式、“dns_time_local”為字段、設置“秒”為最小時間間隔;

        ④點擊左側“運行”圖標可查看數(shù)據(jù)呈現(xiàn)效果,如圖2所示,點擊【保存】按鈕完成可視化圖標配置。

        5 ? 態(tài)勢感知研究(Research on situational awareness)

        態(tài)勢感知過程分為態(tài)勢采集、態(tài)勢理解、未來態(tài)勢預測三個階段[4],相對于DNS日志分析來說,分別體現(xiàn)出域名系統(tǒng)“目前是怎樣的、為什么這樣、將要發(fā)生什么”等問題。通過解決這類問題可有效輔助域名系統(tǒng)提高服務質量、降低安全風險、了解用戶訪問行為等內(nèi)容,基于BIND海量日志分析的態(tài)勢感知框架如圖3所示。

        5.1 ? 態(tài)勢采集

        態(tài)勢采集獲取環(huán)境中的重要元素,是態(tài)勢感知的基礎。高效地采集態(tài)勢感知大數(shù)據(jù)并可靠地進行傳輸、存儲、分析、處理,是構建ELK大數(shù)據(jù)分析平臺所不可或缺的,通過該平臺可快速實時獲取DNS的運行狀態(tài)、請求查詢等日志。當新日志產(chǎn)生時,ELK平臺也可快速檢測并進行數(shù)據(jù)的拆分、清洗、格式化等處理并進行存儲,為用戶行為態(tài)勢感知提供平臺基礎。

        5.2 ? 態(tài)勢理解

        根據(jù)域名解析的實際需求,可以建立一套實用、有效地態(tài)勢理解指標體系,從而提高判斷的準確性與可靠性。態(tài)勢理解是通過大數(shù)據(jù)技術獲取數(shù)據(jù)隱含的消息內(nèi)容,明確DNS域名解析系統(tǒng)所處狀態(tài)、掌握用戶訪問行為趨勢,并按照指標數(shù)據(jù)進行態(tài)勢評估分析。

        5.3 ? 態(tài)勢預測

        基于對態(tài)勢的理解,對DNS域名解析未來的發(fā)展趨勢進行預測,根據(jù)用戶請求訪問量,能夠及時調整鏈路帶寬或發(fā)現(xiàn)異常并及時采取措施等內(nèi)容,此為態(tài)勢感知的最高層次。

        在進行態(tài)勢預測時,可以將以往的態(tài)勢數(shù)據(jù)分為輸入、輸出兩個序列,通過對模型參數(shù)的不斷調整,使輸出序列的值逐步逼近于輸入序列,從而得到比較可靠的初步預測模型。在初步預測模型的基礎上,采用機器學習方法,可以進一步得到完善的預測模型[5]。

        6 ? 結論(Conclusion)

        基于ELK大數(shù)據(jù)分析平臺實現(xiàn)對BIND海量日志的分析,并通過對態(tài)勢感知的了解,探索了海量BIND日志的分析方法,能夠及時分析掌握DNS服務的運行性能,了解用戶訪問互聯(lián)網(wǎng)的行為趨勢,有效地分析用戶上網(wǎng)行為。

        參考文獻(References)

        [1] 程琦.基于DNS日志分析調度及優(yōu)化設計與實現(xiàn)[J].福建電腦,2017,33(11):101-103.

        [2] 中國互聯(lián)網(wǎng)絡信息中心 (CNNIC) 在京發(fā)布第43次《中國互聯(lián)網(wǎng)絡發(fā)展狀況統(tǒng)計報告》[R].2019.

        [3] 陳文文,吳開超.海量域名日志數(shù)據(jù)分析與可視化研究及應用[J].計算機應用研究,2016,33(02):335-338.

        [4] 周凱,馬智遠,許中.基于大數(shù)據(jù)技術的智能電網(wǎng)態(tài)勢感知分析[J].電器與能效管理技術,2018(21):70-76.

        [5] 董超,劉雷.大數(shù)據(jù)網(wǎng)絡安全態(tài)勢感知中數(shù)據(jù)融合技術研究[J].網(wǎng)絡安全技術與應用,2019(07):60-62.

        作者簡介:

        阮曉龍(1981-),男,本科,副教授.研究領域:計算機網(wǎng)絡,計算機軟件,Web技術.

        路景鑫(1994-),男,本科,工程師.研究領域:計算機軟件,系統(tǒng)運維.

        猜你喜歡
        態(tài)勢感知
        網(wǎng)絡安全態(tài)勢感知實用研究
        安全態(tài)勢感知在移動業(yè)務支撐系統(tǒng)中的應用
        科技視界(2017年14期)2017-10-09 16:49:51
        針對超強臺風的大規(guī)模人群疏散模式研究
        綠色科技(2017年10期)2017-07-05 00:15:40
        基于態(tài)勢感知理念的交通運輸行業(yè)網(wǎng)絡安全體系構建探析
        中國水運(2017年6期)2017-06-13 08:32:36
        基于融合的網(wǎng)絡安全態(tài)勢量化感知
        航電系統(tǒng)數(shù)據(jù)危害的模式和原理
        信息安全態(tài)勢分析方法與系統(tǒng)在電力信息化中的應用研究
        基于態(tài)勢感知平臺的網(wǎng)絡安全威脅管理研究
        基于數(shù)學模型的網(wǎng)絡安全態(tài)勢感知綜述
        信息安全態(tài)勢智能預警分析平臺淺談
        色欲欲www成人网站| 久久久国产视频久久久| 射进去av一区二区三区| 一边捏奶头一边高潮视频| 国产成人免费一区二区三区| 国产AⅤ无码久久丝袜美腿| 男女男生精精品视频网站| 国产最新女主播福利在线观看| 亚洲中文久久精品无码| 美女在线国产| 粉嫩的18在线观看极品精品| 日韩女同视频在线网站| 久久人妻内射无码一区三区| 国产91色在线|亚洲| 麻豆三级视频网站在线观看| 亚洲 欧美 综合 在线 精品| 婷婷午夜天| 国产精品18久久久久久首页| 日本人妻97中文字幕| 男女猛烈xx00免费视频试看| 日韩精品无码区免费专区| 精品88久久久久88久久久| 91色婷婷成人精品亚洲| 女同性恋一区二区三区av| 我爱我色成人网| 亚洲精品一二区| 亚洲国产成人久久精品美女av | 久草视频在线视频手机在线观看| 丰满人妻久久中文字幕| 天堂а√在线中文在线新版| 日本久久精品免费播放| 极品少妇人妻一区二区三区| 国产精品成人va在线观看| 中文字幕免费观看视频| 免费国产自拍视频在线观看| 国产丝袜长腿美臀在线观看| 亚洲日韩精品无码av海量| 男女18禁啪啪无遮挡| 国产av91在线播放| 男女啪啪在线视频网站| 青娱乐极品视觉盛宴国产视频|