999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

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

王曉鋒 馬麗麗

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

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

中圖分類號:TP391? ? ?文獻標(biāo)識碼:A

文章編號: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ù)量成幾何級數(shù)增長,人類進入大數(shù)據(jù)時代。在大數(shù)據(jù)分布式集群系統(tǒng)環(huán)境下,實現(xiàn)滿足每秒數(shù)百MB的日志數(shù)據(jù)采集和傳輸需求,已經(jīng)成為大數(shù)據(jù)解決方案的前提和基本保障。如何解決在復(fù)雜場景下技術(shù)實現(xiàn)高緯度數(shù)據(jù)模型、自定義語言查詢、可視化數(shù)據(jù)展示等數(shù)據(jù)監(jiān)控技術(shù)難題,也成為大數(shù)據(jù)解決方案的一項嚴(yán)峻的挑戰(zhàn)[1]。

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

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

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

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

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

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

3.1? ?Prometheus組件介紹

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

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

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

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

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

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

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

3.2? ?Prometheus的工作流

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

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

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

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

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

根據(jù)Flume Agent采集數(shù)據(jù)泄漏防護外泄事件和網(wǎng)絡(luò)資源業(yè)務(wù)需求,進行項目定制開發(fā),形成FileLimitrateThriftInterceptor.java,修改配置文件thrift2kafka.conf,實現(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ù)泄漏防護大數(shù)據(jù)監(jiān)管平臺

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

4.2.1? ?Exporter組件

采用Go語言開發(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平臺配置頁面定義與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ù)器中的警報規(guī)則,規(guī)則觸發(fā)時,將警報發(fā)送到AlertManager組件。告警處理方法包括沉默、抑制、聚集和通過,例如郵件、即時通訊平臺、釘釘?shù)取?/p>

4.3? ?測試及運行結(jié)果

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

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

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

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

參考文獻(References)

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

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

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

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

[5] 張小龍.基于Flume的XML數(shù)據(jù)自動收集系統(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大會, 2019.

作者簡介:

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

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

猜你喜歡
數(shù)據(jù)采集
Web網(wǎng)絡(luò)大數(shù)據(jù)分類系統(tǒng)的設(shè)計與改進
CAN總線通信技術(shù)在電梯監(jiān)控系統(tǒng)中的應(yīng)用
基于大型嵌入式系統(tǒng)的污水檢測系統(tǒng)設(shè)計
社會保障一卡通數(shù)據(jù)采集與整理技巧
基于AVR單片機的SPI接口設(shè)計與實現(xiàn)
CS5463在植栽用電子鎮(zhèn)流器老化監(jiān)控系統(tǒng)中的應(yīng)用
大數(shù)據(jù)時代高校數(shù)據(jù)管理的思考
科技視界(2016年18期)2016-11-03 22:51:40
鐵路客流時空分布研究綜述
基于廣播模式的數(shù)據(jù)實時采集與處理系統(tǒng)
軟件工程(2016年8期)2016-10-25 15:54:18
通用Web表單數(shù)據(jù)采集系統(tǒng)的設(shè)計與實現(xiàn)
軟件工程(2016年8期)2016-10-25 15:52:53
主站蜘蛛池模板: 青青青亚洲精品国产| 国产国模一区二区三区四区| 伊人成人在线视频| 久久综合亚洲色一区二区三区| 在线a视频免费观看| 亚洲中文字幕久久精品无码一区| 国产精品浪潮Av| 露脸真实国语乱在线观看| 国产电话自拍伊人| 69免费在线视频| 91无码视频在线观看| 人妻无码中文字幕一区二区三区| 成人一区专区在线观看| 欧美激情视频二区三区| 毛片最新网址| 国产亚洲精品无码专| 欧美成人一区午夜福利在线| 9啪在线视频| 日本精品视频| 午夜丁香婷婷| 91成人在线免费视频| 免费A级毛片无码无遮挡| 国产91丝袜| 亚洲Va中文字幕久久一区| 欧美成人精品一区二区| 精品视频在线观看你懂的一区 | 黄色a一级视频| 韩日免费小视频| 乱系列中文字幕在线视频| 思思热在线视频精品| 青青操视频在线| 国产午夜人做人免费视频中文| 国产精品女在线观看| 色天天综合| 九九线精品视频在线观看| 伊人成人在线| 永久成人无码激情视频免费| 亚洲首页在线观看| 国产幂在线无码精品| 国产成人无码综合亚洲日韩不卡| 鲁鲁鲁爽爽爽在线视频观看| 99精品国产自在现线观看| 国产自产视频一区二区三区| 91丨九色丨首页在线播放| 久久综合五月| 欧美亚洲中文精品三区| 亚洲欧洲日本在线| 国产无人区一区二区三区| 亚洲视频免| 国产福利一区二区在线观看| 高清不卡毛片| 午夜电影在线观看国产1区| 国产白丝av| 国产一级做美女做受视频| 亚洲欧洲自拍拍偷午夜色| 日韩精品毛片人妻AV不卡| 在线观看网站国产| 国产区精品高清在线观看| 911亚洲精品| 婷婷亚洲综合五月天在线| 韩国福利一区| 久久国产精品电影| 成人av专区精品无码国产 | 欧美中文字幕一区| 1级黄色毛片| 青青草91视频| 国产欧美日韩18| 四虎永久免费地址| 五月天久久婷婷| 国产日韩欧美黄色片免费观看| 97超爽成人免费视频在线播放| 国产永久无码观看在线| 国产精品视频导航| 国产成人精品男人的天堂| 国产打屁股免费区网站| 性色生活片在线观看| 精品一区国产精品| 69视频国产| 欧美成a人片在线观看| 四虎影视无码永久免费观看| 天天干伊人| 国产特级毛片aaaaaa|