• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Prometheus的油田數(shù)據(jù)泄漏防護(hù)大數(shù)據(jù)系統(tǒng)運(yùn)維方法

      2021-04-18 23:45王曉鋒馬麗麗
      軟件工程 2021年4期
      關(guān)鍵詞:數(shù)據(jù)采集

      王曉鋒 馬麗麗

      摘? 要:數(shù)據(jù)泄漏防護(hù)系統(tǒng)可以阻止企業(yè)的重要數(shù)據(jù)從網(wǎng)絡(luò)出口違規(guī)外發(fā)。針對(duì)油田數(shù)據(jù)泄漏防護(hù)大數(shù)據(jù)平臺(tái)對(duì)各個(gè)區(qū)域、不同類(lèi)型的數(shù)據(jù)采集和設(shè)備、業(yè)務(wù)監(jiān)測(cè)問(wèn)題,本文首先提出依托大數(shù)據(jù)Flume(數(shù)據(jù)采集系統(tǒng))組件,采用抓取外泄事件日志JSON(一種輕量級(jí)的數(shù)據(jù)交換格式)和解析后的違規(guī)外發(fā)文件txt文本的方法,實(shí)現(xiàn)數(shù)據(jù)采集;其次依托Prometheus服務(wù)監(jiān)管系統(tǒng)Flume_exporter、Node_exporter組件和Grafana(一個(gè)跨平臺(tái)的、開(kāi)源的度量分析和可視化工具),實(shí)現(xiàn)對(duì)數(shù)據(jù)泄漏防護(hù)設(shè)備信息和應(yīng)用數(shù)據(jù)的監(jiān)管;最后指出搭建采集系統(tǒng)和監(jiān)管平臺(tái)對(duì)數(shù)據(jù)泄漏防護(hù)系統(tǒng)運(yùn)維的作用。

      關(guān)鍵詞:Flume;Prometheus;數(shù)據(jù)采集;監(jiān)管平臺(tái)

      中圖分類(lèi)號(hào):TP391? ? ?文獻(xiàn)標(biāo)識(shí)碼:A

      文章編號(hào):2096-1472(2021)-04-43-03

      Abstract: Data leakage protection system can prevent important data of enterprises from being illegally exported from networks. This paper aims to solve problems of acquiring data of different types in different regions, and monitoring equipment and business on big data system for oilfield data leakage prevention. First, based on big data Flume (data acquisition system) component, this paper proposes to adopt the method of capturing JSON (JavaScript Object Notation, a lightweight data exchange format) of the leakage event log and the parsed illegally exported TXT file to achieve data acquisition. Second, Flume_exporter (Prometheus service supervision system), Node_exporter component and Grafana (a cross-platform open source measurement analysis and visualization tool) are used to supervise equipment information and application data of data leakage prevention. Finally, this paper points out the effect of building an acquisition system and supervision platform in operation and maintenance of data leakage prevention system.

      Keywords: Flume; Prometheus; data acquisition; supervision platform

      1? ?引言(Introduction)

      隨著信息技術(shù)的快速發(fā)展,數(shù)據(jù)量成幾何級(jí)數(shù)增長(zhǎng),人類(lèi)進(jìn)入大數(shù)據(jù)時(shí)代。在大數(shù)據(jù)分布式集群系統(tǒng)環(huán)境下,實(shí)現(xiàn)滿足每秒數(shù)百M(fèi)B的日志數(shù)據(jù)采集和傳輸需求,已經(jīng)成為大數(shù)據(jù)解決方案的前提和基本保障。如何解決在復(fù)雜場(chǎng)景下技術(shù)實(shí)現(xiàn)高緯度數(shù)據(jù)模型、自定義語(yǔ)言查詢(xún)、可視化數(shù)據(jù)展示等數(shù)據(jù)監(jiān)控技術(shù)難題,也成為大數(shù)據(jù)解決方案的一項(xiàng)嚴(yán)峻的挑戰(zhàn)[1]。

      油田企業(yè)為防護(hù)重要數(shù)據(jù)資產(chǎn)不從網(wǎng)絡(luò)出口違規(guī)泄漏,搭建了油田數(shù)據(jù)泄漏防護(hù)大數(shù)據(jù)系統(tǒng)。本文主要研究依托開(kāi)源數(shù)據(jù)采集系統(tǒng)Flume,實(shí)現(xiàn)油田對(duì)網(wǎng)絡(luò)、終端敏感文件外泄事件全面數(shù)據(jù)采集,并且基于Prometheus服務(wù)監(jiān)管系統(tǒng)[2]搭建油田數(shù)據(jù)泄漏防護(hù)大數(shù)據(jù)監(jiān)管平臺(tái),實(shí)現(xiàn)對(duì)數(shù)據(jù)泄漏防護(hù)設(shè)備基本信息和應(yīng)用數(shù)據(jù)的實(shí)時(shí)監(jiān)控、管理、分析以及健康度準(zhǔn)確評(píng)估。

      2? Flume數(shù)據(jù)采集系統(tǒng)(Flume data acquisition system)

      Flume是一個(gè)高可靠、分布式、高可用的海量日志采集、聚合和傳輸系統(tǒng),將大批量不同數(shù)據(jù)源的日志數(shù)據(jù)收集、聚合、移動(dòng)到HDFS進(jìn)行存儲(chǔ)[2]。Flume分布式系統(tǒng)的核心是Agent,內(nèi)部有三個(gè)組件:Source、Channel、Sink。Source:源數(shù)據(jù)采集,通過(guò)與應(yīng)用服務(wù)接口對(duì)接以獲取數(shù)據(jù);Channel:Agent內(nèi)部的數(shù)據(jù)傳輸通道,作為臨時(shí)存儲(chǔ)聚合數(shù)據(jù),用于從Source將數(shù)據(jù)傳遞到Sink;Sink:從Channel消費(fèi)數(shù)據(jù)并將其傳遞給目標(biāo)地,最終將數(shù)據(jù)存儲(chǔ)到集中存儲(chǔ)器(HDFS)。Flume數(shù)據(jù)采集系統(tǒng)架構(gòu)圖如圖1所示。油田數(shù)據(jù)泄漏防護(hù)大數(shù)據(jù)采集系統(tǒng)就是對(duì)終端、網(wǎng)絡(luò)數(shù)據(jù)泄漏防護(hù)日志、文件通過(guò)Flume Agent采集工具,以不同的Topic形式統(tǒng)一傳輸?shù)終afka,最終存儲(chǔ)到HDFS中。

      Flume在收集數(shù)據(jù)過(guò)程中,可以定義JMX、JSON、Custom等格式采集報(bào)告,并通過(guò)配置Web服務(wù)器展示,實(shí)現(xiàn)對(duì)傳輸數(shù)據(jù)的實(shí)時(shí)監(jiān)控。由于Flume數(shù)據(jù)采集報(bào)告Web展示端不具備大規(guī)模數(shù)據(jù)儀表盤(pán)式展示,在大數(shù)據(jù)背景下,借助Prometheus監(jiān)管平臺(tái)以圖表形式簡(jiǎn)潔、直觀地展示并統(tǒng)計(jì)、分析采集數(shù)據(jù)。

      3? Prometheus監(jiān)管平臺(tái)(Prometheus supervision platform)

      Prometheus是一個(gè)開(kāi)源的服務(wù)監(jiān)控系統(tǒng)和時(shí)間序列數(shù)據(jù)庫(kù),目前已經(jīng)被廣泛應(yīng)用于數(shù)據(jù)中心監(jiān)控[3]。Prometheus可以對(duì)系統(tǒng)資源或指定業(yè)務(wù)資源實(shí)時(shí)監(jiān)控,對(duì)自定義時(shí)間段內(nèi)的數(shù)據(jù)參數(shù)進(jìn)行查詢(xún)、分析,實(shí)現(xiàn)高效的系統(tǒng)維護(hù)和實(shí)時(shí)健康評(píng)估。

      3.1? ?Prometheus組件介紹

      Prometheus核心組件包括Prometheus Server(服務(wù)器)、Exporter(采集主機(jī)的監(jiān)控樣本數(shù)據(jù)程序)、PushGateway(數(shù)據(jù)中轉(zhuǎn)網(wǎng)關(guān))、AlertManager(告警系統(tǒng))。

      Prometheus Server:負(fù)責(zé)實(shí)現(xiàn)對(duì)監(jiān)控?cái)?shù)據(jù)的獲取、存儲(chǔ)及查詢(xún)。Prometheus Server可以通過(guò)靜態(tài)配置管理監(jiān)控目標(biāo),也可以配合使用Service Discovery的方式動(dòng)態(tài)管理監(jiān)控目標(biāo),并從這些監(jiān)控目標(biāo)中獲取數(shù)據(jù)。Storage模塊將采集的數(shù)據(jù)保存在TSDB(時(shí)序數(shù)據(jù)庫(kù))中,最終按照時(shí)間序列的方式存儲(chǔ)在本地磁盤(pán)中。

      Exporter:將監(jiān)控?cái)?shù)據(jù)采集的端點(diǎn)(Endpoint)通過(guò)HTTP服務(wù)的形式暴露給Prometheus Server,Prometheus Server通過(guò)訪問(wèn)該端點(diǎn)獲取到需要采集的監(jiān)控?cái)?shù)據(jù)。

      PushGateway:當(dāng)網(wǎng)絡(luò)環(huán)境不允許Prometheus Server和Exporter進(jìn)行通信時(shí),可以使用PushGateway來(lái)進(jìn)行中轉(zhuǎn)。PushGateway將監(jiān)控?cái)?shù)據(jù)主動(dòng)推送到Gateway中,然后Prometheus Server從PushGateway中拉取監(jiān)控?cái)?shù)據(jù)。

      AlertManager:在Prometheus Server中支持基于PromQL創(chuàng)建告警規(guī)則,如果滿足PromQL定義的規(guī)則,則會(huì)產(chǎn)生一條告警。當(dāng)接收到告警后,會(huì)通過(guò)郵件、釘釘?shù)确绞桨l(fā)出告警。

      Grafana是一款美觀、強(qiáng)大的可視化監(jiān)控指標(biāo)展示工具,主要用于大規(guī)模指標(biāo)數(shù)據(jù)的可視化展現(xiàn),是網(wǎng)絡(luò)架構(gòu)和應(yīng)用分析中最流行的時(shí)序數(shù)據(jù)展示工具。它將Prometheus監(jiān)控的數(shù)據(jù)源以?xún)x表盤(pán)方式在Web面板展示。

      Prometheus技術(shù)架構(gòu)圖如圖2所示。

      3.2? ?Prometheus的工作流

      Prometheus Server定期從Exporter中拉取數(shù)據(jù),或者接收來(lái)自PushGateway推送的數(shù)據(jù);Prometheus Server在本地存儲(chǔ)收集到的數(shù)據(jù),并運(yùn)行定義好的告警規(guī)則,記錄新的時(shí)間序列或者向AlertManager推送警報(bào);AlertManager根據(jù)配置文件對(duì)接收到的警報(bào)進(jìn)行處理,發(fā)出告警;在Grafana圖形界面中,可視化展示數(shù)據(jù)。

      4? 油田數(shù)據(jù)泄漏防護(hù)大數(shù)據(jù)采集系統(tǒng)和監(jiān)管平臺(tái) (Big data acquisition system and supervision platform for oilfield data leakage prevention)

      油田數(shù)據(jù)泄漏防護(hù)大數(shù)據(jù)采集系統(tǒng)的目標(biāo)是通過(guò)Flume 1.8.0采集油田企業(yè)違規(guī)外發(fā)敏感數(shù)據(jù)產(chǎn)生的外泄事件和油田企業(yè)內(nèi)部終端資產(chǎn)信息(包括軟硬件信息、終端存儲(chǔ)文件信息、組織機(jī)構(gòu)信息等),根據(jù)不同類(lèi)型Topic,統(tǒng)一傳輸?shù)終afka,為數(shù)據(jù)泄漏防護(hù)大數(shù)據(jù)平臺(tái)提供分析、建模的數(shù)據(jù)源,采集數(shù)據(jù)最終存儲(chǔ)到HDFS中。

      油田數(shù)據(jù)泄漏防護(hù)大數(shù)據(jù)監(jiān)管平臺(tái)基于Prometheus監(jiān)控系統(tǒng)Flume_exporter組件采集Flume獲取數(shù)據(jù)的統(tǒng)計(jì)數(shù)量,Node_exporter組件獲取數(shù)據(jù)泄漏防護(hù)設(shè)備系統(tǒng)運(yùn)行狀態(tài),AlertManager組件進(jìn)行異常告警,Grafana工具在Web面板展示,實(shí)現(xiàn)數(shù)據(jù)信息的分析和監(jiān)控。油田數(shù)據(jù)泄漏防護(hù)大數(shù)據(jù)采集系統(tǒng)和監(jiān)管平臺(tái)架構(gòu)圖如圖3所示。

      4.1? ?油田數(shù)據(jù)泄漏防護(hù)大數(shù)據(jù)采集系統(tǒng)

      根據(jù)Flume Agent采集數(shù)據(jù)泄漏防護(hù)外泄事件和網(wǎng)絡(luò)資源業(yè)務(wù)需求,進(jìn)行項(xiàng)目定制開(kāi)發(fā),形成FileLimitrateThriftInterceptor.java,修改配置文件thrift2kafka.conf,實(shí)現(xiàn)將數(shù)據(jù)傳輸至大數(shù)據(jù)Kafka組件[4-5]。FileLimitrateThriftInterceptor.java部分代碼如下:

      public FileLimitrateThriftInterceptor(Context context)

      {

      this.context = context;

      //采集數(shù)據(jù)初始化

      public void initialize() {

      //根據(jù)標(biāo)記iscollect決定是否啟用該通道

      this.flag=context.getBoolean(ISCOLLECT, true).booleanValue();

      this.secretkey = context.getString(SECRETKEY);

      try {

      this.aesUtils = new AesUtils(this.secretkey);

      } catch (Exception e) {

      e.printStackTrace();

      logger.info("aesUtils initialize error");

      //獲取事件方法

      public Event intercept(Event event) {

      ArrayList bytes = new ArrayList

      ();

      bytes.add(addBytes(event.getBody()));

      if(isUseSecret){

      event.setBody(aesUtils.AESEncode(SerializableUtils.ObjectToByte(bytes)));

      }else{

      event.setBody(SerializableUtils.ObjectToByte

      (bytes));

      public List intercept(List events) {

      for (Event event : events) {

      intercept(event);

      thrift2kafka.conf配置文件如下:

      //配置Source

      a1.sources.r1.type=thrift

      a1.sources.r1.port=9110

      a1.sources.r1.interceptors=limitrate

      a1.sources.r1.interceptors.limitrate.type=src.interceptor.FileLimitrateThriftInterceptor$Builder

      //配置Channel

      a1.channels.c1.type=file

      a1.channels.c1.checkpointDir=/mnt/checkpoint1

      a1.channels.c1.dataDirs=/mnt/file-channel1

      //配置Sink

      a1.sinks.k1.type=org.apache.flume.sink.kafka.KafkaSink

      a1.sinks.k1.kafka.topic=FILE_STORE_TOPIC

      a1.sinks.k1.kafka.bootstrap.servers=kafka01.dqyt.com:9092

      4.2? ?油田數(shù)據(jù)泄漏防護(hù)大數(shù)據(jù)監(jiān)管平臺(tái)

      油田數(shù)據(jù)泄漏防護(hù)大數(shù)據(jù)監(jiān)管平臺(tái)建設(shè)包括三部分:Exporter組件代碼編寫(xiě);告警規(guī)則AlertRule配置,AlertManager組件進(jìn)行異常處理方法配置;Grafana工具在Web面板展示方法配置[6-7]。

      4.2.1? ?Exporter組件

      采用Go語(yǔ)言開(kāi)發(fā)Flume_exporter、Node_exporter組件代碼,獲取Flume端采集數(shù)據(jù)數(shù)量和服務(wù)器系統(tǒng)資源數(shù)值。Exporter部分核心代碼如下:

      go func() {

      defer wg.Done()

      for _, url := range e.flumeMetricUrls {

      m := <-channel

      if m.Metrics[url] == nil {

      log.Warn(">>>.receive metrics channel is nil, url: " + url)

      continue

      }

      reg := regexp.MustCompile(`//(.*)/metrics`)

      host := reg.FindStringSubmatch(url)[1]

      for k, v := range m.Metrics[url] {

      sMetrics := make(map[string]interface{})

      sMetrics = v.(map[string]interface{})

      delete(sMetrics, "Type")

      if strings.HasPrefix(k, "SOURCE.") {

      e.processGaugeVecs(k, host, "SOURCE", sMetrics)

      } else if strings.HasPrefix(k, "CHANNEL.") {

      delete(sMetrics, "Open")

      e.processGaugeVecs(k, host, "CHANNEL", sMetrics)

      } else if strings.HasPrefix(k, "SINK.") {

      e.processGaugeVecs(k, host, "SINK", sMetrics)

      4.2.2? ?Grafana界面展示

      Grafana平臺(tái)配置頁(yè)面定義與Prometheus鏈接的變量后,配置展示的JSON Model。配置變量Variable如下:

      Variable:

      $host? label_values(host)

      $channel_name

      label_values(FLUME_CHANNEL_ChannelSize{host=

      "$host"},name)

      $sink_name

      label_values(FLUME_SINK_EventDrainSuccessCount

      {host="$host"},name)

      $source_name

      label_values(FLUME_SOURCE_OpenConnectionCount{host="$host"},name)

      4.2.3? ?AlertManager告警

      制定Prometheus服務(wù)器中的警報(bào)規(guī)則,規(guī)則觸發(fā)時(shí),將警報(bào)發(fā)送到AlertManager組件。告警處理方法包括沉默、抑制、聚集和通過(guò),例如郵件、即時(shí)通訊平臺(tái)、釘釘?shù)取?/p>

      4.3? ?測(cè)試及運(yùn)行結(jié)果

      Flume數(shù)據(jù)采集系統(tǒng)以流處理形式采集數(shù)據(jù)泄漏防護(hù)產(chǎn)生外泄事件JSON和解析的違規(guī)文件txt,系統(tǒng)性能測(cè)試需求是找出每秒接收事務(wù)數(shù)(外泄事件JSON數(shù))峰值和Flume系統(tǒng)處理最大size文件需要的平均時(shí)間,生產(chǎn)環(huán)境要求最大文件為50 MB。測(cè)試結(jié)果為:每秒接收事務(wù)數(shù)峰值613條,處理事務(wù)數(shù)1.5 Mbps,處理50 MB大小解析文件需要30多秒。

      Prometheus數(shù)據(jù)監(jiān)控系統(tǒng)批處理形式獲取數(shù)據(jù),只需對(duì)采集數(shù)據(jù)和告警功能的接口功能進(jìn)行測(cè)試。

      5? ?結(jié)論(Conclusion)

      利用大數(shù)據(jù)組件Flume的油田數(shù)據(jù)泄漏防護(hù)大數(shù)據(jù)采集系統(tǒng)為大數(shù)據(jù)分析展示平臺(tái)提供了數(shù)據(jù)源,為油田數(shù)據(jù)泄漏防護(hù)大數(shù)據(jù)解決方案提供了數(shù)據(jù)基礎(chǔ)。搭建Prometheus監(jiān)管平臺(tái)實(shí)現(xiàn)數(shù)據(jù)泄漏防護(hù)設(shè)備基本信息和Flume采集數(shù)據(jù)實(shí)時(shí)監(jiān)控、管理、分析和健康度準(zhǔn)確評(píng)估。在數(shù)字化油田的推動(dòng)下,信息化產(chǎn)品類(lèi)型更加多樣,設(shè)備數(shù)量、復(fù)雜度逐年增加,為網(wǎng)絡(luò)運(yùn)維帶來(lái)巨大的挑戰(zhàn)。油田數(shù)據(jù)泄漏防護(hù)大數(shù)據(jù)監(jiān)管平臺(tái)全面監(jiān)控油田數(shù)據(jù)泄漏防護(hù)大數(shù)據(jù)系統(tǒng)下所有運(yùn)行設(shè)備,大大降低了人工運(yùn)維成本和設(shè)備運(yùn)行風(fēng)險(xiǎn)。

      參考文獻(xiàn)(References)

      [1] 何邦才.大數(shù)據(jù)技術(shù)下企業(yè)信息采集技術(shù)研究[J].無(wú)線互聯(lián)科技,2019(4):58-59.

      [2] 方中純,趙江鵬.基于Flume和HDFS的大數(shù)據(jù)采集系統(tǒng)的研究和實(shí)現(xiàn)[N].內(nèi)蒙古科技大學(xué)學(xué)報(bào),2018(9):153-155.

      [3] 馬永,吳躍,何李囡.基于Prometheus的基礎(chǔ)軟硬件全鏈路監(jiān)控設(shè)計(jì)和實(shí)現(xiàn)[J].電子技術(shù)與軟件工程,2019(24):39-40.

      [4] 林蒼.基于flume的日志收集統(tǒng)計(jì)系統(tǒng)[D].福建:廈門(mén)大學(xué),2013(7):13.

      [5] 張小龍.基于Flume的XML數(shù)據(jù)自動(dòng)收集系統(tǒng)[J].科學(xué)技術(shù)與工程,2013(13):9062-9064.

      [6] 陳曉宇.深入淺出Prometheus:原理、應(yīng)用、源碼與拓展詳解[M].北京:電子工業(yè)出版社,2019:60-77.

      [7] JULIUS V. Prometheus monitoring system best practices and common pitfalls[C]. QCon北京2018大會(huì), 2019.

      作者簡(jiǎn)介:

      王曉鋒(1989-),男,本科,工程師.研究領(lǐng)域:軟件研發(fā),大數(shù)據(jù)運(yùn)維.

      馬麗麗(1982-),女,本科,高級(jí)工程師.研究領(lǐng)域:軟件開(kāi)發(fā).

      猜你喜歡
      數(shù)據(jù)采集
      Web網(wǎng)絡(luò)大數(shù)據(jù)分類(lèi)系統(tǒng)的設(shè)計(jì)與改進(jìn)
      CAN總線通信技術(shù)在電梯監(jiān)控系統(tǒng)中的應(yīng)用
      基于大型嵌入式系統(tǒng)的污水檢測(cè)系統(tǒng)設(shè)計(jì)
      基于AVR單片機(jī)的SPI接口設(shè)計(jì)與實(shí)現(xiàn)
      CS5463在植栽用電子鎮(zhèn)流器老化監(jiān)控系統(tǒng)中的應(yīng)用
      大數(shù)據(jù)時(shí)代高校數(shù)據(jù)管理的思考
      基于開(kāi)源系統(tǒng)的綜合業(yè)務(wù)數(shù)據(jù)采集系統(tǒng)的開(kāi)發(fā)研究
      大數(shù)據(jù)時(shí)代的管理會(huì)計(jì)
      桐庐县| 依安县| 青川县| 肇东市| 余庆县| 兴隆县| 绥德县| 克东县| 喀喇沁旗| 博爱县| 囊谦县| 定西市| 西丰县| 黄冈市| 屏南县| 黔西县| 金塔县| 伽师县| 彰化市| 喀喇| 蒲城县| 贵州省| 台南市| 大姚县| 什邡市| 吉隆县| 阜新| 彩票| 浦北县| 江陵县| 济宁市| 虹口区| 平罗县| 神农架林区| 定安县| 玉环县| 武威市| 遂平县| 怀安县| 康乐县| 镇平县|