麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

基于salt的數據庫性能自動化監控系統的制作方法

文檔序號:11216142閱讀:621來源:國知局
基于salt的數據庫性能自動化監控系統的制造方法與工藝

本發明屬于數據庫監控領域,主要應用于互聯網行業各種類型的數據庫的性能監控。



背景技術:

對于互聯網公司而言,數據庫應用越來越普及,為了提高數據庫可用性,需要為數據庫部署監控,除了常規的功能監控,還需要對數據庫性能進行監控,從而提高監控精度,及時發現數據庫性能問題,保證數據庫服務質量。

現有的數據庫監控系統及方法的缺點是:

(1)操作繁雜,維護成本高:操作步驟繁多,需要大量的人力維護,維護成本高;

(2)自動化程度低:幾乎全部需要人力操作,缺乏自動化,效率低下;

(3)不適合大規模數據庫監控:在大規模數據庫情況下,使用現由的監控方法,幾乎很難沐足監控需求;

(4)功能單一:現有監控方案,功能比較單一。



技術實現要素:

本發明的目的在于針對現有技術的不足,提供一種基于salt的數據庫性能自動化監控系統,可以實現各種數據庫性能監控自動化,基本沒有人工成本,通用性強,并且使用非常方便。

本發明的目的是通過以下技術方案來實現的:一種基于salt的數據庫性能自動化監控系統,通過采集數據庫服務進程對應的cpu數據來監控數據庫性能,該系統包括salt管理端、數據庫節點和zabbix服務端;

salt管理端是管理salt客戶端的服務器,包括salt管理模塊、元信息管理模塊和發送監控數據模塊;salt管理端通過salt客戶端采集數據庫節點上數據庫服務進程的cpu信息,發送到zabbix服務端。

數據庫節點是部署數據庫服務的服務器,包括采集性能監控數據模塊;不同的數據庫服務,端口唯一,每個數據庫節點上部署一個salt客戶端;數據庫節點根據salt管理端傳入的參數,調用該節點上的采集腳本,采集性能監控數據。

zabbix服務端是支持短信和郵件的監控服務器,包括監控告警和展示模塊;zabbix服務端接收監控數據,并根據告警策略進行告警,以及展示監控數據的趨勢圖。

進一步地,所述salt管理模塊包括:

在所有數據庫節點部署salt客戶端,salt管理端部署在單獨的一臺服務器上。

定期調用salt管理端接口,檢查所有的數據庫節點上的salt客戶端是否注冊到salt管理端;如未注冊,調用salt管理端接口,注冊所述salt客戶端;如注冊失敗,則發送通知給管理員。可選擇注銷某個數據庫節點的salt客戶端。

在salt管理端,定期檢測salt客戶端是否通達,如不通,發送通知給管理員。

進一步地,所述元信息管理模塊包括:

salt管理端定期調用元信息管理模塊,及時獲取最新的元信息;所述元信息包括數據庫節點主機名、數據庫節點ip、數據庫端口和數據庫進程號以及數據庫標識符。

首先,salt管理端獲取所有的數據庫節點主機名;然后,針對每個數據庫節點,salt管理端通過發送指令給salt客戶端,獲取每個數據庫節點上所有的數據庫進程信息;通過數據庫進程信息,解析得到數據庫端口和數據庫進程號;同時,根據數據庫節點主機名獲取數據庫節點ip。所述數據庫節點主機名、數據庫節點ip、數據庫端口和數據庫進程號保存在元信息文件中。接下來,在salt管理端,掃描元信息文件,傳入數據庫端口,數據庫節點ip,以及zabbix服務端的用戶名密碼,調用zabbix服務端接口,自動創建相應的所述數據庫主機。同時,根據所述數據庫主機,解析得到相應的監控模板,根據該監控模板,調用zabbix服務端接口,自動掛載相應的監控模板,包括cpu采集項、cpu報警項和cpu趨勢圖。如果某個所述數據庫主機不需要cpu監控,可以采用手動方式,在zabbix服務端頁面卸載對應的監控模板。也可以根據具體需求,調用zabbix服務端功能,調整cpu報警項設置。

進一步地,所述采集性能監控數據模塊包括:

需要傳入的參數:數據庫節點主機名,數據庫進程號;

在salt管理端,定期調用元信息管理模塊之后,得到所有的數據庫節點主機名,以及對應的數據庫進程號。然后,根據這些信息,salt管理端發送指令到所述數據庫節點對應的salt客戶端,首先判斷是否存在性能監控腳本,如果存在,那么不需要分發監控腳本,否則,分發監控腳本:然后,在salt管理端上,針對每個數據庫節點上的每個數據庫進程,采集性能監控數據;采集到的性能監控數據保存在salt管理端本地文件中,稱為監控數據文件。

進一步地,所述發送監控數據模塊包括:調用zabbix服務端接口,發送所述監控數據文件到zabbix服務端,如果發送監控數據成功,那么需要清空所述監控數據文件;否則需要通知管理員處理。

進一步地,所述監控告警和展示模塊包括:

zabbix服務端接收和存儲所述監控數據,分析所述監控數據并產生告警,以及通過zabbix服務端的趨勢圖展示監控數據。調用zabbix服務端自身功能,為數據庫性能監控配置短信接收人和郵件接收人,方便第一時間接收告警信息和處理數據庫性能問題。

本發明的有益效果如下:

(1)監控部署非常簡單:只需要部署zabbix服務端、salt管理端和salt客戶端和制定監控模板,操作簡單。

(2)維護成本低:以上組件部署完畢后,對于新增加的數據庫服務,不需要維護監控,可以實現自動采集和發送監控數據,維護成本為零。

(3)性能監控準確:通過數據庫服務占用的cpu反映數據庫性能,可以準確發現性能問題。

(4)支持多種類型數據庫:適用于對于關系型數據庫和非關系型數據庫。

(5)易擴展:對于大規模數據庫節點,只需要部署多個salt管理端,分別管理各自的salt客戶端即可。擴展容易并且可行。

附圖說明

圖1是本發明基于salt的數據庫性能自動化監控系統的總體架構圖;

圖2是本發明各個模塊相互調用的流程圖。

具體實施方式

圖1是本發明基于salt的數據庫性能自動化監控系統的總體架構圖。總體上包括三部分:salt管理端、數據庫節點和zabbix服務端,每個數據庫節點部署一個salt客戶端。salt管理端通過salt客戶端獲取所有數據庫進程,然后調用zabbix服務端接口注冊數據庫主機,接下來,salt管理端通過salt客戶端采集所述數據庫節點上每個數據庫進程對應的監控數據,最后發送所述監控數據到zabbix服務端。

圖2是本發明各個模塊相互調用的流程圖。首先,salt管理模塊注冊所有數據庫節點對應的salt客戶端,然后通過salt客戶端獲取所有數據庫節點上的數據庫進程,根據所述數據庫進程,解析得到數據庫進程號和數據庫端口號,然后,salt管理端通過salt客戶端采集對應的cpu信息;最后,salt管理端調用zabbix服務端接口,發送到zabbix服務端。

下面詳細介紹各模塊的實現過程:

(1)salt管理端

salt管理端是管理salt客戶端的服務器,用于注冊和注銷salt客戶端,發送指令到salt客戶端等。這里的指令一般是通過一個或者多個linux命令完成的操作。salt管理端包括salt管理模塊、元信息管理模塊和發送監控數據模塊,功能包括管理salt客戶端,分發指令和文件,獲取數據庫節點上的數據庫進程信息,以及發送監控數據到zabbix服務端。

salt管理端通過salt客戶端采集數據庫節點上數據庫服務進程的cpu信息,發送到zabbix服務端。

(2)數據庫節點

數據庫節點是指部署數據庫服務的服務器,這些數據庫服務包括常用的關系型數據庫和非關系型數據庫,不同的數據庫服務,端口唯一。

主要包括采集性能監控數據模塊,根據salt管理端傳入的參數,調用該節點上的采集腳本,采集性能監控數據。

每個數據庫節點上,都需要部署一個salt客戶端。salt客戶端用于接收salt管理端的指令和文件,執行相應的操作,返回結果給salt管理端。

(3)zabbix服務端

zabbix服務端是一種支持短信和郵件的監控服務器,接收監控數據,并根據告警策略進行告警,以及展示監控數據的趨勢圖。

包括監控告警和展示模塊,主要功能是接收和存儲監控數據,以及監控告警。

數據庫主機是zabbix服務端注冊的數據庫服務標識,每個數據庫服務,數據庫主機采用端口_主機方式命名,比如3306_10.1.1.11,表示10.1.1.11數據庫節點上的3306數據庫服務。

監控模板是指根據數據庫的接口,設置采集項、觸發器和趨勢圖,用于掛載到數據庫主機中。

各子模塊具體實現如下:

(1)salt管理模塊

主要功能是在所有數據庫節點部署salt客戶端,salt管理端部署在單獨的一臺服務器上。

定期調用salt管理端接口,檢查所有的數據庫節點上的salt客戶端是否注冊到salt管理端,檢測方式如下:

#salt‐key‐l‐acc|grep‘數據庫節點主機名’

如果返回值為假,需要調用salt管理端接口,注冊所述salt客戶端,注冊方式如下:

#salt‐key–a–y‘數據庫節點主機名’

否則,不需要調用注冊所述salt客戶端。如果注冊失敗,那么發送通知給管理員處理。

如果需要注銷某個數據庫節點的salt客戶端,需要手動執行如下指令:

#salt‐key–d‘數據庫節點主機名’

所有的數據庫節點對應的salt客戶端全部注冊到salt管理端后,salt管理端就可以發送指令和文件給salt客戶端,完成特定的操作。

并且,在salt管理端,定期檢測salt客戶端是否通達,檢測方式如下:

#salt'數據庫節點主機名'cmd.run'exit'

如果返回值為真,說明該數據庫節點主機名所述salt客戶端可以通達;否則,需要發送通知給管理員,需要人工處理。

(2)元信息管理模塊

這里的元信息包括數據庫節點主機名、數據庫節點ip、數據庫端口和數據庫進程號以及數據庫標識符。

salt管理端定期調用元信息管理模塊,及時獲取最新的元信息。

首先,salt管理端獲取所有的數據庫節點主機名:獲取方式如下:

#salt‐key–l|grep數據庫節點主機名前綴

數據庫節點主機名前綴是數據庫節點主機名的前綴字符,基于此可以過濾得到所有的數據庫節點。

然后,針對每個數據庫節點,salt管理端通過發送指令給salt客戶端,獲取每個數據庫節點上所有的數據庫進程信息,命令如下:

#salt‘數據庫節點主機名’cmd.run‘ps–ef|egrep數據庫標識符|egrep–vgrep’

數據庫標識符是數據庫類型的標識,比如,mysql數據庫的數據庫標識符為mysqld。

通過數據庫進程信息,可以解析得到數據庫端口和數據庫進程號。

同時,根據數據庫節點主機名獲取到數據庫節點ip。

所述數據庫節點主機名、數據庫節點ip、數據庫端口和數據庫進程號保存在元信息文件中。

接下來,在salt管理端,掃描元信息文件,傳入數據庫端口,數據庫節點ip,以及zabbix服務端的用戶名密碼,調用zabbix服務端接口,自動創建相應的所述數據庫主機。同時,根據所述數據庫主機,解析得到相應的監控模板,根據該監控模板,調用zabbix服務端接口,自動掛載相應的監控模板,包括cpu采集項,cpu報警項和cpu趨勢圖。

如果某個所述數據庫主機不需要cpu監控,可以采用手動方式,在zabbix服務端頁面卸載對應的監控模板即可。

也可以根據具體需求,調用zabbix服務端功能,調整cpu報警項設置。

(3)采集性能監控數據模塊

需要傳入的參數:數據庫節點主機名,數據庫進程號

在salt管理端,定期調用元信息管理模塊之后,得到所有的數據庫節點主機名,以及對應的數據庫進程號。然后,根據這些信息,salt管理端發送指令到所述數據庫節點對應的salt客戶端,首先判斷是否存在性能監控腳本,指令如下:#salt‘數據庫節點主機名’cmd.run‘ls–l/path/to/監控腳本’

如果返回為真,那么不需要分發監控腳本,否則,通過如下指令分發監控腳本:

#salt'數據庫節點主機名'cp.get_filesalt://監控腳本/path/to/監控腳本

然后,在salt管理端上,針對每個數據庫節點上的每個數據庫進程,采集性能監控數據指令如下:

#salt‘數據庫節點主機名’cmd.run‘python/path/to/監控腳本數據庫進程號’

說明,采用python編寫監控腳本,執行該監控腳本,需要傳入一個參數:數據庫進程號

所述監控腳本采集數據庫進程占用的cpu信息的核心邏輯為:

p=psutil.process(int(pid))

cpuusage=p.cpu_percent(interval=1)

該監控腳本依賴python的psutil模塊。pid是該腳本需要傳入的參數,表示數據庫進程號。

采集到的性能監控數據保存在salt管理端本地文件中,稱之為監控數據文件。(4)發送監控數據模塊

每當調用采集性能監控數據模塊結束后,本模塊將被調用,本模塊功能是調用zabbix服務端接口,發送所述監控數據文件到zabbix服務端,指令如下:

#zabbix_sender‐‐zabbix‐serverzabbix服務端ip‐‐portzabbix服務端端口‐‐input‐file監控數據文件‐‐with‐timestamps

如果發送監控數據成功,那么需要清空所述監控數據文件;否則需要通知管理員處理。

(5)監控告警和展示模塊

該模塊可選。zabbix服務端接收和存儲所述監控數據,分析所述監控數據并產生告警,以及通過zabbix服務端的趨勢圖展示監控數據。

說明:調用zabbix服務端自身功能,為數據庫性能監控配置短信接收人和郵件接收人,方便第一時間接收告警信息和處理數據庫性能問題。

當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 云浮市| 江源县| 上思县| 云浮市| 荆门市| 溧水县| 赤城县| 馆陶县| 永顺县| 乐安县| 莎车县| 景东| 扶绥县| 新绛县| 井研县| 温州市| 岑巩县| 江都市| 儋州市| 平罗县| 古田县| 兴山县| 永善县| 顺义区| 枞阳县| 德格县| 游戏| 塔河县| 广州市| 湄潭县| 阿拉尔市| 界首市| 安徽省| 蓝山县| 仁怀市| 墨江| 化德县| 界首市| 洮南市| 密云县| 格尔木市|