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

        ?

        基于鐵路系統(tǒng)云平臺監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        2019-12-28 06:10:26聞彩麗蔣文怡
        鐵路計(jì)算機(jī)應(yīng)用 2019年12期
        關(guān)鍵詞:服務(wù)系統(tǒng)

        聞彩麗,蔣文怡

        (北京交通大學(xué) 電子信息工程學(xué)院, 北京 100044)

        近年來,為了實(shí)現(xiàn)鐵路內(nèi)部各信息系統(tǒng)之間的數(shù)據(jù)共享與業(yè)務(wù)協(xié)同,以及能在同一網(wǎng)絡(luò)基礎(chǔ)上開展業(yè)務(wù)和采用新技術(shù),需要將相關(guān)業(yè)務(wù)系統(tǒng)以及業(yè)務(wù)數(shù)據(jù)遷移到云計(jì)算平臺上[1]。為了保證鐵路信息系統(tǒng)能在云上穩(wěn)定運(yùn)行,平臺需要提供統(tǒng)一的監(jiān)控服務(wù)來實(shí)時地監(jiān)控物理服務(wù)器的狀態(tài)和資源使用信息,對出現(xiàn)的異常及時告警,由運(yùn)維人員進(jìn)行快速處理。開源的監(jiān)控軟件Zabbix由于其強(qiáng)大的展現(xiàn)功能和可擴(kuò)展性被廣泛使用。但是由于鐵路的覆蓋范圍廣泛,需要在不同的鐵路局集團(tuán)公司部署云計(jì)算平臺,同時也需要在不同的云計(jì)算中心部署監(jiān)控服務(wù)。現(xiàn)有的Zabbix部署方式是通過在服務(wù)器上下載安裝包,然后由運(yùn)維人員手工進(jìn)行安裝和系統(tǒng)配置。這種部署方式操作繁多、效率低[2-3],實(shí)現(xiàn)的監(jiān)控系統(tǒng)通常只能監(jiān)控平臺的基礎(chǔ)設(shè)備,對平臺中重要的容器服務(wù)的狀態(tài)和性能信息是無法監(jiān)控的[4]。本文基于云計(jì)算中的容器技術(shù),提出了基于Zabbix軟件的監(jiān)控系統(tǒng)的自動化部署方式。同時,實(shí)現(xiàn)的監(jiān)控系統(tǒng)可以監(jiān)控物理服務(wù)器上的各項(xiàng)指標(biāo)參數(shù)。

        1 系統(tǒng)設(shè)計(jì)

        1.1 系統(tǒng)架構(gòu)設(shè)計(jì)

        Zabbix作為一個基于Web界面的企業(yè)級監(jiān)控軟件,主要是用來監(jiān)控網(wǎng)絡(luò)的眾多參數(shù)以及服務(wù)器健康的完整性軟件,以保證服務(wù)器系統(tǒng)能夠安全運(yùn)營[5]。Zabbix提供了靈活的通知機(jī)制,允許用戶為任何事件配置基于電子郵件的警報(bào),實(shí)現(xiàn)對服務(wù)器問題的快速響應(yīng)[6]。Zabbix是由服務(wù)組件共同協(xié)作來完成監(jiān)控服務(wù)的,包含的組件如下。

        (1)Zabbix Server:是 Zabbix的核心組件,可以通過SNMP,Zabbix Agent 等方式提供對遠(yuǎn)程服務(wù)器、網(wǎng)絡(luò)設(shè)備的監(jiān)控和數(shù)據(jù)收集功能。

        (2)MysqL:負(fù)責(zé)用來存儲用戶的配置信息和從Agent上收集到的數(shù)據(jù)。

        (3)ZabbixProxy:常用于分布式監(jiān)控環(huán)境中,代理Server收集部分被監(jiān)控的數(shù)據(jù)并統(tǒng)一發(fā)往Server端。

        (4)Zabbix Web:提供Web界面,方便用戶通過界面瀏覽每個服務(wù)器的數(shù)據(jù)信息和監(jiān)控狀態(tài)。

        (5)Zabbix Agent: 部署在被監(jiān)控主機(jī)上,負(fù)責(zé)收集本地?cái)?shù)據(jù),并將數(shù)據(jù)發(fā)往Server端或Proxy端。

        當(dāng)需要被監(jiān)控的主機(jī)的數(shù)量較多時,可以基于Zabbix的分布式架構(gòu),實(shí)現(xiàn)監(jiān)控系統(tǒng)的可用性和可擴(kuò)展性。監(jiān)控系統(tǒng)的分布式架構(gòu)圖,如圖1所示。

        圖1 監(jiān)控系統(tǒng)的分布式架構(gòu)圖

        1.2 系統(tǒng)功能

        Zabbix可以用來監(jiān)控不同的物理設(shè)備。這里只介紹對物理主機(jī)的監(jiān)控。Zabbix已經(jīng)提供了一些強(qiáng)大的的功能,如圖2的功能概括圖所示,實(shí)現(xiàn)了對主機(jī)的全面監(jiān)控。

        (1)為主機(jī)關(guān)聯(lián)模板:Zabbix提供的默認(rèn)模板,已經(jīng)定義好了監(jiān)控項(xiàng)可以直接使用。我們也可以創(chuàng)建自定義監(jiān)控項(xiàng)。

        (2)主機(jī)監(jiān)控指標(biāo)收集:實(shí)現(xiàn)這一功能的前提是已在主機(jī)上部署了Zabbix Agent服務(wù),在模板關(guān)聯(lián)后,就開始收集數(shù)據(jù)。

        (3)問題自動檢測:在創(chuàng)建監(jiān)控項(xiàng)時,需要為監(jiān)控項(xiàng)設(shè)置觸發(fā)器,系統(tǒng)會自動檢測獲取的數(shù)據(jù)是否會超過閾值。

        (4)告警及時通知:當(dāng)系統(tǒng)檢測到問題時,需要通知相關(guān)人員進(jìn)行查看和處理。

        (5)監(jiān)控?cái)?shù)據(jù)可視化顯示:為了方便用戶查看監(jiān)控信息的變動,可以通過可視化界面將數(shù)據(jù)以圖像的形式顯示出來。

        圖2 監(jiān)控系統(tǒng)的功能概括圖

        Zabbix提供的主機(jī)默認(rèn)監(jiān)控項(xiàng)有CPU、內(nèi)存、硬盤、網(wǎng)絡(luò)接口以及操作系統(tǒng)的相關(guān)監(jiān)控信息等。這些監(jiān)控項(xiàng)只是從主機(jī)的系統(tǒng)信息的角度考慮。在主機(jī)上還有許多用來構(gòu)建云平臺的服務(wù)容器還沒有監(jiān)控起來,當(dāng)某個容器掛掉之后,云平臺對外提供服務(wù)就會受到影響。尤其是對于大量的鐵路業(yè)務(wù)數(shù)據(jù)的存儲是通過ceph容器實(shí)現(xiàn)的。這時就需要能實(shí)時監(jiān)控容器的狀態(tài)和性能信息。因此我們需要在原有監(jiān)控項(xiàng)的基礎(chǔ)上通過編寫腳本來實(shí)現(xiàn)對容器模板和監(jiān)控項(xiàng)的自定義。

        2 技術(shù)支撐

        實(shí)現(xiàn)Zabbix系統(tǒng)的自動化部署到服務(wù)的快速啟動過程,需要借助Docker技術(shù)和AnsibLe技術(shù)。Docker通過構(gòu)建鏡像來將Zabbix相關(guān)服務(wù)組件進(jìn)行容器化。AnsibLe用來實(shí)現(xiàn)將各個組件容器在多個主機(jī)上進(jìn)行自動化部署和系統(tǒng)配置[7]。

        2.1 Docker

        Docker是一個開源項(xiàng)目,它基于Linux內(nèi)核的Cgroup、Namespace等技術(shù),對進(jìn)程進(jìn)行封裝隔離,屬于操作系統(tǒng)層面的虛擬化技術(shù)[8]。由于隔離的進(jìn)程獨(dú)立于宿主機(jī)和其它的進(jìn)程,因此也稱其為容器,這與虛擬機(jī)的虛擬化技術(shù)有著明顯的差別。如圖3所示,虛擬機(jī)的虛擬化實(shí)現(xiàn)是在物理硬件和操作系統(tǒng)之間加了一層中間軟件層,即Hypervisor,它可以對下層的硬件資源進(jìn)行封裝、隔離、抽象,使它們成為另一種形式的邏輯資源,再提供給上層的虛擬機(jī)[9]。對每個虛擬機(jī)來說都擁有獨(dú)立的操作系統(tǒng)。對于容器的虛擬化實(shí)現(xiàn)來說,容器是共享主機(jī)的操作系統(tǒng)的。在操作系統(tǒng)的上層通過通過Docker Engine,將不同的應(yīng)用鏡像打包,使它們相互隔離[10]。

        圖3 容器和虛擬化技術(shù)的比較

        2.2 Ansible

        Ansible是一個自動化運(yùn)維工具,可以實(shí)現(xiàn)批量系統(tǒng)配置、批量程序部署、批量運(yùn)行命令等功能[11]。Anisble包含許多基于Python編寫的模塊,為部署提供某項(xiàng)具體的功能。Ansible要完成在多個主機(jī)上部署服務(wù)的功能,不僅需要模塊的支持,還需要通過Hosts文件來管理這些主機(jī),默認(rèn)通過SSH來實(shí)現(xiàn)主機(jī)之間的通信。在主機(jī)上執(zhí)行的任務(wù)通常是通過playbooks來定義的,將多個任務(wù)也就是執(zhí)行的命令定義在roles文件中,由Ansible自動執(zhí)行的。由于Ansible具有配置簡單、擴(kuò)展性強(qiáng)、部署簡單等優(yōu)勢,被廣泛應(yīng)用在了云計(jì)算平臺。

        3 系統(tǒng)實(shí)現(xiàn)

        3.1 系統(tǒng)部署實(shí)現(xiàn)

        監(jiān)控系統(tǒng)是通過在多個主機(jī)上部署Zabbix服務(wù)組件,由組件之間互相通信來實(shí)現(xiàn)的。傳統(tǒng)的部署方式需要操作人員下載安裝包,手動進(jìn)行安裝,這種方式不適合用于在多個主機(jī)上部署服務(wù)?;贒ocker技術(shù),將Zabbix的服務(wù)組件容器化?;贏nsibLe技術(shù),實(shí)現(xiàn)服務(wù)的自動化部署過程。Zabbix容器化到自動化部署的過程,如圖4所示。

        圖4 Zabbix容器化到自動化部署的實(shí)現(xiàn)流程圖

        3.1.1 鏡像的構(gòu)建和推送

        Zabbix各個組件鏡像的制作是Docker 通過執(zhí)行Dockerfile文件來實(shí)現(xiàn)的。Dockerfile文件中包括基礎(chǔ)鏡像,以及在基礎(chǔ)鏡像的上執(zhí)行的一些命令和定義的參數(shù)。構(gòu)建出的鏡像是與主機(jī)環(huán)境隔離的,不受主機(jī)環(huán)境的影響。將構(gòu)建好的鏡像通過Docker命令推送到自己的代碼倉庫中方便管理。Zabbix中需要制作鏡像的組件包括:Zabbix Server、Zabbix Web、Zabbix Proxy、Zabbix Agent。圖5是Zabbix-agent的Dockerfile文件主要代碼。

        3.1.2 自動化部署的實(shí)現(xiàn)

        自動化部署是基于Ansible技術(shù)通過編寫部署代碼來實(shí)現(xiàn)的。其中,包括對Zabbix服務(wù)容器的的啟動、配置和擴(kuò)展的自動化實(shí)現(xiàn)。自動化部署的代碼實(shí)現(xiàn)流程圖,如圖6所示。

        其中,group_vars文件夾中all.yml定義的是部署Zabbix各個服務(wù)組件時用到的一些常用變量,包括各個鏡像的名稱、容器的名稱、數(shù)據(jù)庫的地址、用戶和密碼等。inventory文件夾中的hosts文件定義的是要部署服務(wù)的主機(jī)組和主機(jī)。roles文件夾下定義的是要執(zhí)行的任務(wù)以及執(zhí)行任務(wù)的先后順序。順序如下:

        (1)為了方便數(shù)據(jù)的統(tǒng)一管理,我們選擇在云計(jì)算平臺的數(shù)據(jù)庫添加Zabbix數(shù)據(jù)庫。正如圖6中所示,需要創(chuàng)建Zabbix數(shù)據(jù)庫、用戶、密碼,用戶和密碼是用來登錄Zabbix數(shù)據(jù)庫的。

        (2)啟動Zabbix Server、Zabbix Web 容器。需要先從Docker倉庫中拉取該服務(wù)的鏡像來啟動容器。該服務(wù)需要部署到將要作為Server的物理節(jié)點(diǎn)上,讓這兩服務(wù)先對外提供服務(wù),為后面的服務(wù)連接提供保障。

        (3)在已經(jīng)啟動好的Zabbix Server中在創(chuàng)建主機(jī)組和導(dǎo)入自定義的模板。當(dāng)部署多個異地的云計(jì)算中心時,監(jiān)控系統(tǒng)也需要部署多個,該步驟可以保證不同監(jiān)控系統(tǒng)的起始數(shù)據(jù)的一致性。這使得維護(hù)人員不需要重新創(chuàng)建模板,或者是手動導(dǎo)入模板,極大地簡化了維護(hù)操作流程。

        (4)啟動Zabbix Proxy服務(wù)。需要先從Docker倉庫中拉取該服務(wù)的鏡像來啟動容器。該服務(wù)是用來對監(jiān)控系統(tǒng)實(shí)現(xiàn)分布式管理的,部署到其他的主機(jī)上,當(dāng)需要監(jiān)控的物理節(jié)點(diǎn)較多時,可以采用分布式架構(gòu)。

        (5)啟動Zabbix Agent服務(wù)。需要先從Docker倉庫中拉取該服務(wù)的鏡像來啟動容器。該服務(wù)要部署到需要被監(jiān)控的每臺物理節(jié)點(diǎn)上,由Agent來收集主機(jī)的監(jiān)控信息,發(fā)往Server端。

        圖5 Docker file文件中的主要代碼圖

        圖6 自動化部署的代碼實(shí)現(xiàn)流程圖

        只需要在部署服務(wù)器上拷貝Zabbix 部署的代碼,通過執(zhí)行“ansible-playbook -i ./inventory/hosts site.yml -e action=collect”該命令,既可以將整個監(jiān)控服務(wù)搭建起來,完成部署的所有操作,縮短了部署的時間。部署成功后在物理節(jié)點(diǎn)上執(zhí)行“Docker ps”,出現(xiàn)如圖7所示的界面,說明通過自動化部署在物理節(jié)點(diǎn)control上成功部署了Zabbix Server、Zabbix Web、Zabbix Agent的服務(wù)。

        圖7 部署成功的結(jié)果圖

        3.2 系統(tǒng)功能的實(shí)現(xiàn)

        在Zabbix提供的原有功能外,通對Zabbix Agent進(jìn)行二次開發(fā),使它能獲取主機(jī)上容器的監(jiān)控?cái)?shù)據(jù)。因?yàn)槿萜魇桥c主機(jī)外的環(huán)境是隔離的。因此在啟動Zabbix Agent容器時需要將主機(jī)上的Docker.socket進(jìn)程掛載到容器中,通過該進(jìn)程獲取主機(jī)外的容器的相關(guān)信息。在該容器中編寫Python腳本來實(shí)現(xiàn)對所有容器的監(jiān)控的。圖8是腳本中用來監(jiān)控容器的CPU使用率的關(guān)鍵代碼。

        通過自定義用來監(jiān)控容器的模板,實(shí)現(xiàn)了對容器的性能信息和狀態(tài)信息的監(jiān)控。

        圖8 實(shí)現(xiàn)獲取容器CPU使用率的相關(guān)代碼圖

        4 結(jié)束語

        利用Docker技術(shù)和Ansible技術(shù),基于Zabbix軟件的監(jiān)控系統(tǒng)的自動化部署方式,已在學(xué)校實(shí)驗(yàn)室的云平臺環(huán)境得到了應(yīng)用。應(yīng)用結(jié)果表明,該方法可以在2 min中內(nèi)將整個監(jiān)控系統(tǒng)部署好,并且監(jiān)控系統(tǒng)可以根據(jù)在部署時導(dǎo)入的自定義模板實(shí)時監(jiān)控到云環(huán)境中的物理服務(wù)器的狀態(tài)和性能信息。通過對Zabbix軟件的功能擴(kuò)展,實(shí)現(xiàn)的監(jiān)控系統(tǒng)也可以實(shí)時監(jiān)控到云平臺中的容器服務(wù)的狀態(tài)和性能信息。隨著鐵路云計(jì)算平臺的擴(kuò)展,該監(jiān)控系統(tǒng)的容器化和自動化方式將會得到快速的應(yīng)用。

        猜你喜歡
        服務(wù)系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機(jī)系統(tǒng)
        ZC系列無人機(jī)遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        基于PowerPC+FPGA顯示系統(tǒng)
        服務(wù)在身邊 健康每一天
        服務(wù)在身邊 健康每一天
        半沸制皂系統(tǒng)(下)
        服務(wù)在身邊 健康每一天
        服務(wù)在身邊 健康每一天
        服務(wù)在身邊 健康每一天
        国产精品a免费一区久久电影| 亚洲精品女优中文字幕| 国产乱人伦偷精品视频还看的 | 日本真人边吃奶边做爽电影| 怡红院免费的全部视频| 人妻AV无码一区二区三区奥田咲| 久久精品亚洲国产成人av| 45岁妇女草逼视频播放| 国产亚洲日韩在线一区二区三区 | 高清高速无码一区二区| 精品视频手机在线免费观看 | av一区二区三区人妻少妇| 亚洲AV日韩AV无码A一区| 一区二区三区在线观看精品视频| 国产一区二区自拍刺激在线观看| 毛片亚洲av无码精品国产午夜| 亚洲欧洲日产国产AV无码| 中国av一区二区三区四区| 国产无套中出学生姝| 日本少妇被黑人xxxxx| 国产最新一区二区三区天堂| 日韩精品极品免费在线视频| 最美女人体内射精一区二区| 亚洲欧美另类激情综合区| 国产精品福利久久香蕉中文| 亚洲国产国语对白在线观看| 香港aa三级久久三级| 人人狠狠综合久久亚洲婷婷| 性色av成人精品久久| 中文字幕一区二区中出后入| 狠狠做深爱婷婷久久综合一区| 国模无码视频专区一区| a级三级三级三级在线视频| 久久久亚洲欧洲日产国码aⅴ| 亚洲精品自产拍在线观看| 久久久亚洲精品一区二区| 丝袜美腿av在线观看| 久久99热久久99精品| 国产乱子伦视频一区二区三区| 国产人妖伦理视频在线观看 | 久久婷婷综合色拍亚洲|