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

云平臺安全監控數據采集關鍵技術研究

2019-12-07 08:37:30張偉華
網絡安全技術與應用 2019年12期
關鍵詞:用戶

張偉華

云平臺安全監控數據采集關鍵技術研究

張偉華

(華為西安研究所 陜西 710068)

Openstack技術中項目之間的通信使用RESTful API進行通信,項目內部不同的組件之間的通信使用消息總線;Ceilometer為Openstack項目提供信息收集功能;Esper是事件流處理和事件關聯引擎,主要面對的是實時事件驅動架構(Event Driven Architecture),構成云平臺監控數據采集和分析處理的關鍵技術,本文介紹了云平臺安全監控數據采集關鍵技術,供相關讀者參考。

云平臺;監控;數據采集

1 云平臺監控數據采集技術

Openstack是IaaS層軟件,允許用戶自行建立和提供云端的運算服務[1-2]。此外,openstack也用作建立防火墻內的私有云,提供機構或企業內部各個部門共享資源。它是以python編程語言編寫,遵循Open Virtualization Format、AMQP、SQLAlchemy等標準,所支持的虛擬化軟件包括KVM、Xen、VirtualBox、VMware、Hyper-V等。

Openstack項目中包含了眾多的子項目:Nova、Swift、Glance、Horizon、Cinder、Keystone、Neutron、Heat、Ceilometer、Trove、Saharad等。這些細化的子項目分別負責相應的功能,以保證云平臺的正常運行。由于項目眾多且篇幅有限,本文中只對云平臺監控相關的通用技術以及云平臺監控項目Ceiloemeter進行詳細的說明。

2 Openstack通用技術

Openstack的設計原則是:項目之間的通信使用RESTful API進行通信,項目內部不同的組件之間的通信使用消息總線[3]。

Ceilometer使用公用的Python庫Stevedore將監控不同類型部件的監控插件在運行時動態加載到進程中。

(1)RPC(Remote Procedure Call,遠程過程調用):通過RPC遠程調用,一個服務進程可以調用其他遠程服務進程的方法。

在Openstack項目中,屬于相同子項目的不同服務進程之間使用RPC進行相互調用。例如,Nova組件主要負責的是虛擬機的創建,刪除,掛起等的操作,Nova又由nova-api、nova-conductor、nova-scheduler,nova-compute組成。在用戶發出創建虛擬機的指令后,nova-api接受請求,完成權限校驗和參數校驗之后將請求傳遞給nova-conductor,nova-conductor調用nova-scheduler完成虛擬機創建位置的選取,然后再調用nova-compute的方法調用下層驅動完成虛擬機的創建。在這個過程中,Nova組件內部的通信就是通過RPC消息總線完成的。

消息總線有兩種調用方式:call和cast。RPC.call遠程調用的方法會被同步執行,調用者會被阻塞直到返回結果;RPC.cast遠程調用的方法會被異步執行,調用者在完成調用后會繼續往下執行,并不會等待遠程方法返回結果[4]。

RPC消息總線是一種概念,Openstack的消息總線支持AMQP(Advanced Message Queuing Protocol)[5]。默認的具體實現為RabbitMQ。

RabbitMQ實現了AMQP,它的工作流程如圖1所示。

RabbitMQ為消息傳遞的中間件,它會實現消息交換(Exchange)模塊和消息隊列(Queue)模塊。部件內部通訊時,消息產生的一方稱為生產者(即消息的發送方),接收消息的一方稱為消費者(即消息的接收方)。RabbitMQ作為中間件,在接收到從生產者發送來的消息的時候,會根據消息的屬性以及消息頭部信息將消息與相應的隊列進行綁定(Binding),這個動作是由Exchange模塊實現的。然后消費者會從它所監聽的消息隊列中讀出相應的消息,完成遠程方法的調用。如果使用的是RPC.call的方式進行遠程調用,那么在遠程函數執行完畢后,將執行結果以消息的形式發送給RabbitMQ,然后由Exchange發送給相應的消息隊列,原先的生產者現在變成了執行結果消息的消費者,從消息隊列中讀取所需消息,然后繼續向下執行。

圖1 RPC工作流程

(2)RESTful API(Representational State Transfer)是由HTTP協議(1.0版和1.1版)的主要設計者、Apache服務器軟件的作者之一、Apache基金會的第一任主席Roy Thomas Fielding博士2000年在他的論文中提出的[6],目的是為了想在符合架構原理的前提下,理解和評估以網絡為基礎的應用軟件的架構設計,得到一個功能強、性能好、適宜通信的架構。

REST(Representational State Transfer,表現層狀態轉化),也可以理解為資源狀態轉化(Resource State Transfer)。RESTful API將網絡上的所有內容都看作是一種資源,可以是一張圖片,一段音頻視頻,也可以是一種服務。使用一個特定的URL(統一資源定位符)指向這個資源,一個特定的URL指向獨一無二的資源,如果需要對這個資源進行操作,那么就需要通過與之綁定的URL對其進行訪問,這個URL就成了這個資源的識別符[7]。

用戶與網站服務器的交互,實質上就是用戶通過瀏覽器發送請求,對網絡服務器上的資源的狀態進行改變的過程。互聯網通信協議HTTP協議是無狀態的,因此資源狀態都保存在服務器上面。用戶需要使用HTTP協議的4個基本操作:GET、POST、PUT、DELETE使服務器上的資源發生狀態轉化,這就是RESTful API架構的核心原則。

Openstack各個部件都提供了RESTful架構的API作為對外接口,以方便部件之間內部的相互調用以及用戶通過瀏覽器對各個部件的訪問[8]。依舊以創建虛擬機的過程為例子:用戶通過Horizon或者命令行調用Nova-API向Openstack發送創建虛擬機的請求,從而改變后端計算、存儲、網絡資源的狀態。而在創建虛擬機的過程中,Nova部件不僅要選取合適的位置創建服務器,還需要向Cinder以及Neutron組件發送請求,調用相應API完成卷的創建和網絡資源的準備,只有在計算、存儲、網絡資源都被正確選取之后,才能真正開始創建虛擬機,供用戶使用。

WSGI(Web Server Gateway Interface)是一種接口,定義了Python程序與Web服務器之間的通信規范。Python庫Paste中的Deploy組件可以發現和配置WSGI Appliaction和Server。在Openstack的設計中,用戶發送RESTful API請求到云平臺,用以操作云服務提供商提供的計算資源,而整個云計算平臺的所有組件都以應用的形式部署在服務器端,以供用戶和平臺內部調用。Paste.Deploy組件在Openstack項目中的功能就是讓服務器識別各個組件,使服務器在接受到來自用戶和平臺內部其他組件的RESTful請求的時候,可以找到相應的組件應用。因此,Openstack項目中例如Nova、Cinder、Neutron、Swift等主要子部件中,都包含了自己的Paste.Deploy的配置文件Paste.ini,以完成功能在服務端的注冊。Paste.Deploy配置文件的格式如下:

[type:name]

其中,方括號括起的Section聲明一個新Section的開始,Section的聲明由兩部分組成,Section的類型(Type)和Section的名稱(Name),如:[app:main]等。Section的Type可以有:app、composite、filter、pipeline、filter-app等。每個Section中具體配置項的格式就是基本的ini格式: key = value ,所有從PasteDeploy配置文件中提取的參數鍵、值都以字符串的形式傳入底層實現。以Nova組件的Paste.ini文件中的部分進行說明:

此外,PasteDeploy的配置文件中使用“#”標注注釋。

(3)動態加載是指程序在開始運行的時候再將所需要的庫文件以及代碼加載到內存中,而不是在運行開始之前就將所有的代碼加載到內存里。這樣做的目的是為了減輕內存壓力,使程序運行速度加快。動態加載技術在云計算中的應用十分重要:云計算平臺結構復雜,代碼量在千萬行以上,雖然Openstack項目以分布式的方式部署在各個節點,但使用動態加載技術仍然十分有意義。

對于Openstack各個項目組件來說,調用公用的函數庫,例如訪問數據庫操作,鑒權操作以及相互之間調用各項服務的API的時候,都需要先將對應的函數庫加載到自己的代碼中,然后才能使用這些函數完成相應的操作。

對于Openstack的監控組件Ceilometer來說,動態加載還有更重要的意義:Ceilometer分布式的部署在Openstack集群的不同節點,Ceilometer的不同插件監控的部件也不相同,如果所有節點上都全量加載Ceilometer的所有組件的話就會造成性能下降和資源不必要的浪費,另外,部署在不同節點上的相同組件,因為物理環境不同需要加載的插件也不相同。因此,Ceilometer監控組件使用動態加載的方式,可以在不同的節點上按照需求,加載不同的監控插件。

Openstack項目就采用了Stevedore庫來實現動態加載以及創建發布Python包。它對Setuptools庫有依賴關系。Python Enterprise Application Kit(PEAK)項目中的子項目Setuptools是對Python 標準庫中的Distutils模塊的增強,而Stevedore是對Setuptools的簡化,更加方便了創建和發布Python包。

Stevtedore實現程序動態載入插件的過程主要分為三個部分:插件函數功能的實現,插件注冊,以及插件的動態載入。插件的實現和正常的函數功能的編寫沒有什么區別,繼承公共接口后,在指定的函數名下完成對相應特性的實現。

插件注冊的過程是在Setuptools的相關文件中注冊,注冊的格式為:

namespace=

插件名=相關函數實現位置:函數名

...

在Openstack項目的實例中,只有在setup.cfg中完成了相應插件的注冊,才能被Stevedore庫所識別。因此,每個組件對外所提供的接口在組件的相應的setup.cfg中都明確地給出,setup.cfg文件也就成為快速熟悉組件的“項目地圖”。

在代碼中將steverdore庫引入后,使用stevedore.driver.插件函數名即可完成插件的載入。

[1]李阿妮,張曉,趙曉南,等.面向IaaS的云計算系統可用性評估[J].計算機科學,2016,43(10):33-39.

[2]梁宇,楊海波,李鴻彬,等.基于OpenStack資源監控系統[J].計算機系統應用,2014,23(4):44-47.

[3]Wang Y,Li X. Achieve high availability about point-single failures in OpenStack[C]// International Conference on Computer Science and Network Technology. IEEE,2015.

[4]王姜,余萍,曹春,等.開放網絡環境下的程序設計:從RPC到REST[J].計算機工程與應用,2013,49(17):30-37.

[5]Ismail M A,Ismail M F,Ahmed H. Openstack cloud performance optimization using linux services[C]//Cloud Computing (ICCC), 2015 International Conference on. IEEE,2015:1-4.

[6]Fielding R T. Architectural styles and the design of network-based software architectures[D]. University of California,Irvine,2000.

[7]Salvadori I,Siqueira F. A Maturity Model for Semantic RESTful Web APIs[C]//Web Services (ICWS),2015 IEEE International Conference on. IEEE,2015:703-710.

猜你喜歡
用戶
雅閣國內用戶交付突破300萬輛
車主之友(2022年4期)2022-08-27 00:58:26
您撥打的用戶已戀愛,請稍后再哭
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年5期)2016-11-28 09:55:15
兩新黨建新媒體用戶與全網新媒體用戶之間有何差別
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
挖掘用戶需求尖端科技應用
Camera360:拍出5億用戶
創業家(2015年10期)2015-02-27 07:55:08
100萬用戶
創業家(2015年10期)2015-02-27 07:54:39
主站蜘蛛池模板: 亚洲最猛黑人xxxx黑人猛交| AV无码国产在线看岛国岛| 国产XXXX做受性欧美88| 中国国产一级毛片| 欧美午夜一区| 精品亚洲麻豆1区2区3区| 日本日韩欧美| 日韩黄色在线| 日韩精品一区二区三区视频免费看| 国产精品视频公开费视频| 日本道综合一本久久久88| 国产人在线成免费视频| 亚瑟天堂久久一区二区影院| 国产亚洲精品yxsp| 国产一区二区网站| jizz在线观看| 免费av一区二区三区在线| 综合色区亚洲熟妇在线| 国产肉感大码AV无码| 四虎影视8848永久精品| 女人18一级毛片免费观看| 中文字幕日韩久久综合影院| 免费看一级毛片波多结衣| 熟妇人妻无乱码中文字幕真矢织江| 国产成人h在线观看网站站| 国产精品视频第一专区| 亚洲欧美日本国产综合在线| 久久这里只有精品免费| 不卡视频国产| 一区二区三区国产精品视频| 亚洲三级色| av在线人妻熟妇| 久操中文在线| 亚洲午夜天堂| 色综合色国产热无码一| 成人a免费α片在线视频网站| 精品视频在线观看你懂的一区| 久久久久青草大香线综合精品| www.亚洲一区| 成年A级毛片| 亚洲一区二区在线无码| 午夜精品久久久久久久无码软件 | 国产精品成人久久| 国产精品久久精品| 欧美色亚洲| 亚洲精品中文字幕午夜| 欧美日本一区二区三区免费| 久久中文字幕2021精品| 日韩欧美国产成人| 伊人久久福利中文字幕| 亚欧乱色视频网站大全| 色呦呦手机在线精品| 97精品国产高清久久久久蜜芽| 色网站在线视频| 免费高清毛片| 在线观看视频99| 中文字幕自拍偷拍| 国产成人a在线观看视频| 亚洲第一天堂无码专区| 国产在线小视频| 日本www色视频| 92精品国产自产在线观看| 91精品伊人久久大香线蕉| 久久久久夜色精品波多野结衣| 一区二区三区国产精品视频| av大片在线无码免费| 亚洲天堂免费| 精品久久高清| 亚洲欧美在线综合图区| 亚洲最大在线观看| 亚洲Av综合日韩精品久久久| 日韩欧美中文在线| 国产性猛交XXXX免费看| 国产美女在线免费观看| 国产无人区一区二区三区| 国产手机在线ΑⅤ片无码观看| 亚洲三级片在线看| 亚洲无码久久久久| 人禽伦免费交视频网页播放| 亚洲制服中文字幕一区二区| 天天摸天天操免费播放小视频| 国产三级成人|