欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于salt的數(shù)據(jù)庫性能自動化監(jiān)控系統(tǒng)的制作方法

文檔序號:11216142閱讀:586來源:國知局
基于salt的數(shù)據(jù)庫性能自動化監(jiān)控系統(tǒng)的制造方法與工藝

本發(fā)明屬于數(shù)據(jù)庫監(jiān)控領(lǐng)域,主要應(yīng)用于互聯(lián)網(wǎng)行業(yè)各種類型的數(shù)據(jù)庫的性能監(jiān)控。



背景技術(shù):

對于互聯(lián)網(wǎng)公司而言,數(shù)據(jù)庫應(yīng)用越來越普及,為了提高數(shù)據(jù)庫可用性,需要為數(shù)據(jù)庫部署監(jiān)控,除了常規(guī)的功能監(jiān)控,還需要對數(shù)據(jù)庫性能進(jìn)行監(jiān)控,從而提高監(jiān)控精度,及時發(fā)現(xiàn)數(shù)據(jù)庫性能問題,保證數(shù)據(jù)庫服務(wù)質(zhì)量。

現(xiàn)有的數(shù)據(jù)庫監(jiān)控系統(tǒng)及方法的缺點(diǎn)是:

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

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

(3)不適合大規(guī)模數(shù)據(jù)庫監(jiān)控:在大規(guī)模數(shù)據(jù)庫情況下,使用現(xiàn)由的監(jiān)控方法,幾乎很難沐足監(jiān)控需求;

(4)功能單一:現(xiàn)有監(jiān)控方案,功能比較單一。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的在于針對現(xiàn)有技術(shù)的不足,提供一種基于salt的數(shù)據(jù)庫性能自動化監(jiān)控系統(tǒng),可以實(shí)現(xiàn)各種數(shù)據(jù)庫性能監(jiān)控自動化,基本沒有人工成本,通用性強(qiáng),并且使用非常方便。

本發(fā)明的目的是通過以下技術(shù)方案來實(shí)現(xiàn)的:一種基于salt的數(shù)據(jù)庫性能自動化監(jiān)控系統(tǒng),通過采集數(shù)據(jù)庫服務(wù)進(jìn)程對應(yīng)的cpu數(shù)據(jù)來監(jiān)控?cái)?shù)據(jù)庫性能,該系統(tǒng)包括salt管理端、數(shù)據(jù)庫節(jié)點(diǎn)和zabbix服務(wù)端;

salt管理端是管理salt客戶端的服務(wù)器,包括salt管理模塊、元信息管理模塊和發(fā)送監(jiān)控?cái)?shù)據(jù)模塊;salt管理端通過salt客戶端采集數(shù)據(jù)庫節(jié)點(diǎn)上數(shù)據(jù)庫服務(wù)進(jìn)程的cpu信息,發(fā)送到zabbix服務(wù)端。

數(shù)據(jù)庫節(jié)點(diǎn)是部署數(shù)據(jù)庫服務(wù)的服務(wù)器,包括采集性能監(jiān)控?cái)?shù)據(jù)模塊;不同的數(shù)據(jù)庫服務(wù),端口唯一,每個數(shù)據(jù)庫節(jié)點(diǎn)上部署一個salt客戶端;數(shù)據(jù)庫節(jié)點(diǎn)根據(jù)salt管理端傳入的參數(shù),調(diào)用該節(jié)點(diǎn)上的采集腳本,采集性能監(jiān)控?cái)?shù)據(jù)。

zabbix服務(wù)端是支持短信和郵件的監(jiān)控服務(wù)器,包括監(jiān)控告警和展示模塊;zabbix服務(wù)端接收監(jiān)控?cái)?shù)據(jù),并根據(jù)告警策略進(jìn)行告警,以及展示監(jiān)控?cái)?shù)據(jù)的趨勢圖。

進(jìn)一步地,所述salt管理模塊包括:

在所有數(shù)據(jù)庫節(jié)點(diǎn)部署salt客戶端,salt管理端部署在單獨(dú)的一臺服務(wù)器上。

定期調(diào)用salt管理端接口,檢查所有的數(shù)據(jù)庫節(jié)點(diǎn)上的salt客戶端是否注冊到salt管理端;如未注冊,調(diào)用salt管理端接口,注冊所述salt客戶端;如注冊失敗,則發(fā)送通知給管理員??蛇x擇注銷某個數(shù)據(jù)庫節(jié)點(diǎn)的salt客戶端。

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

進(jìn)一步地,所述元信息管理模塊包括:

salt管理端定期調(diào)用元信息管理模塊,及時獲取最新的元信息;所述元信息包括數(shù)據(jù)庫節(jié)點(diǎn)主機(jī)名、數(shù)據(jù)庫節(jié)點(diǎn)ip、數(shù)據(jù)庫端口和數(shù)據(jù)庫進(jìn)程號以及數(shù)據(jù)庫標(biāo)識符。

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

進(jìn)一步地,所述采集性能監(jiān)控?cái)?shù)據(jù)模塊包括:

需要傳入的參數(shù):數(shù)據(jù)庫節(jié)點(diǎn)主機(jī)名,數(shù)據(jù)庫進(jìn)程號;

在salt管理端,定期調(diào)用元信息管理模塊之后,得到所有的數(shù)據(jù)庫節(jié)點(diǎn)主機(jī)名,以及對應(yīng)的數(shù)據(jù)庫進(jìn)程號。然后,根據(jù)這些信息,salt管理端發(fā)送指令到所述數(shù)據(jù)庫節(jié)點(diǎn)對應(yīng)的salt客戶端,首先判斷是否存在性能監(jiān)控腳本,如果存在,那么不需要分發(fā)監(jiān)控腳本,否則,分發(fā)監(jiān)控腳本:然后,在salt管理端上,針對每個數(shù)據(jù)庫節(jié)點(diǎn)上的每個數(shù)據(jù)庫進(jìn)程,采集性能監(jiān)控?cái)?shù)據(jù);采集到的性能監(jiān)控?cái)?shù)據(jù)保存在salt管理端本地文件中,稱為監(jiān)控?cái)?shù)據(jù)文件。

進(jìn)一步地,所述發(fā)送監(jiān)控?cái)?shù)據(jù)模塊包括:調(diào)用zabbix服務(wù)端接口,發(fā)送所述監(jiān)控?cái)?shù)據(jù)文件到zabbix服務(wù)端,如果發(fā)送監(jiān)控?cái)?shù)據(jù)成功,那么需要清空所述監(jiān)控?cái)?shù)據(jù)文件;否則需要通知管理員處理。

進(jìn)一步地,所述監(jiān)控告警和展示模塊包括:

zabbix服務(wù)端接收和存儲所述監(jiān)控?cái)?shù)據(jù),分析所述監(jiān)控?cái)?shù)據(jù)并產(chǎn)生告警,以及通過zabbix服務(wù)端的趨勢圖展示監(jiān)控?cái)?shù)據(jù)。調(diào)用zabbix服務(wù)端自身功能,為數(shù)據(jù)庫性能監(jiān)控配置短信接收人和郵件接收人,方便第一時間接收告警信息和處理數(shù)據(jù)庫性能問題。

本發(fā)明的有益效果如下:

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

(2)維護(hù)成本低:以上組件部署完畢后,對于新增加的數(shù)據(jù)庫服務(wù),不需要維護(hù)監(jiān)控,可以實(shí)現(xiàn)自動采集和發(fā)送監(jiān)控?cái)?shù)據(jù),維護(hù)成本為零。

(3)性能監(jiān)控準(zhǔn)確:通過數(shù)據(jù)庫服務(wù)占用的cpu反映數(shù)據(jù)庫性能,可以準(zhǔn)確發(fā)現(xiàn)性能問題。

(4)支持多種類型數(shù)據(jù)庫:適用于對于關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫。

(5)易擴(kuò)展:對于大規(guī)模數(shù)據(jù)庫節(jié)點(diǎn),只需要部署多個salt管理端,分別管理各自的salt客戶端即可。擴(kuò)展容易并且可行。

附圖說明

圖1是本發(fā)明基于salt的數(shù)據(jù)庫性能自動化監(jiān)控系統(tǒng)的總體架構(gòu)圖;

圖2是本發(fā)明各個模塊相互調(diào)用的流程圖。

具體實(shí)施方式

圖1是本發(fā)明基于salt的數(shù)據(jù)庫性能自動化監(jiān)控系統(tǒng)的總體架構(gòu)圖??傮w上包括三部分:salt管理端、數(shù)據(jù)庫節(jié)點(diǎn)和zabbix服務(wù)端,每個數(shù)據(jù)庫節(jié)點(diǎn)部署一個salt客戶端。salt管理端通過salt客戶端獲取所有數(shù)據(jù)庫進(jìn)程,然后調(diào)用zabbix服務(wù)端接口注冊數(shù)據(jù)庫主機(jī),接下來,salt管理端通過salt客戶端采集所述數(shù)據(jù)庫節(jié)點(diǎn)上每個數(shù)據(jù)庫進(jìn)程對應(yīng)的監(jiān)控?cái)?shù)據(jù),最后發(fā)送所述監(jiān)控?cái)?shù)據(jù)到zabbix服務(wù)端。

圖2是本發(fā)明各個模塊相互調(diào)用的流程圖。首先,salt管理模塊注冊所有數(shù)據(jù)庫節(jié)點(diǎn)對應(yīng)的salt客戶端,然后通過salt客戶端獲取所有數(shù)據(jù)庫節(jié)點(diǎn)上的數(shù)據(jù)庫進(jìn)程,根據(jù)所述數(shù)據(jù)庫進(jìn)程,解析得到數(shù)據(jù)庫進(jìn)程號和數(shù)據(jù)庫端口號,然后,salt管理端通過salt客戶端采集對應(yīng)的cpu信息;最后,salt管理端調(diào)用zabbix服務(wù)端接口,發(fā)送到zabbix服務(wù)端。

下面詳細(xì)介紹各模塊的實(shí)現(xiàn)過程:

(1)salt管理端

salt管理端是管理salt客戶端的服務(wù)器,用于注冊和注銷salt客戶端,發(fā)送指令到salt客戶端等。這里的指令一般是通過一個或者多個linux命令完成的操作。salt管理端包括salt管理模塊、元信息管理模塊和發(fā)送監(jiān)控?cái)?shù)據(jù)模塊,功能包括管理salt客戶端,分發(fā)指令和文件,獲取數(shù)據(jù)庫節(jié)點(diǎn)上的數(shù)據(jù)庫進(jìn)程信息,以及發(fā)送監(jiān)控?cái)?shù)據(jù)到zabbix服務(wù)端。

salt管理端通過salt客戶端采集數(shù)據(jù)庫節(jié)點(diǎn)上數(shù)據(jù)庫服務(wù)進(jìn)程的cpu信息,發(fā)送到zabbix服務(wù)端。

(2)數(shù)據(jù)庫節(jié)點(diǎn)

數(shù)據(jù)庫節(jié)點(diǎn)是指部署數(shù)據(jù)庫服務(wù)的服務(wù)器,這些數(shù)據(jù)庫服務(wù)包括常用的關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫,不同的數(shù)據(jù)庫服務(wù),端口唯一。

主要包括采集性能監(jiān)控?cái)?shù)據(jù)模塊,根據(jù)salt管理端傳入的參數(shù),調(diào)用該節(jié)點(diǎn)上的采集腳本,采集性能監(jiān)控?cái)?shù)據(jù)。

每個數(shù)據(jù)庫節(jié)點(diǎn)上,都需要部署一個salt客戶端。salt客戶端用于接收salt管理端的指令和文件,執(zhí)行相應(yīng)的操作,返回結(jié)果給salt管理端。

(3)zabbix服務(wù)端

zabbix服務(wù)端是一種支持短信和郵件的監(jiān)控服務(wù)器,接收監(jiān)控?cái)?shù)據(jù),并根據(jù)告警策略進(jìn)行告警,以及展示監(jiān)控?cái)?shù)據(jù)的趨勢圖。

包括監(jiān)控告警和展示模塊,主要功能是接收和存儲監(jiān)控?cái)?shù)據(jù),以及監(jiān)控告警。

數(shù)據(jù)庫主機(jī)是zabbix服務(wù)端注冊的數(shù)據(jù)庫服務(wù)標(biāo)識,每個數(shù)據(jù)庫服務(wù),數(shù)據(jù)庫主機(jī)采用端口_主機(jī)方式命名,比如3306_10.1.1.11,表示10.1.1.11數(shù)據(jù)庫節(jié)點(diǎn)上的3306數(shù)據(jù)庫服務(wù)。

監(jiān)控模板是指根據(jù)數(shù)據(jù)庫的接口,設(shè)置采集項(xiàng)、觸發(fā)器和趨勢圖,用于掛載到數(shù)據(jù)庫主機(jī)中。

各子模塊具體實(shí)現(xiàn)如下:

(1)salt管理模塊

主要功能是在所有數(shù)據(jù)庫節(jié)點(diǎn)部署salt客戶端,salt管理端部署在單獨(dú)的一臺服務(wù)器上。

定期調(diào)用salt管理端接口,檢查所有的數(shù)據(jù)庫節(jié)點(diǎn)上的salt客戶端是否注冊到salt管理端,檢測方式如下:

#salt‐key‐l‐acc|grep‘?dāng)?shù)據(jù)庫節(jié)點(diǎn)主機(jī)名’

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

#salt‐key–a–y‘?dāng)?shù)據(jù)庫節(jié)點(diǎn)主機(jī)名’

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

如果需要注銷某個數(shù)據(jù)庫節(jié)點(diǎn)的salt客戶端,需要手動執(zhí)行如下指令:

#salt‐key–d‘?dāng)?shù)據(jù)庫節(jié)點(diǎn)主機(jī)名’

所有的數(shù)據(jù)庫節(jié)點(diǎn)對應(yīng)的salt客戶端全部注冊到salt管理端后,salt管理端就可以發(fā)送指令和文件給salt客戶端,完成特定的操作。

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

#salt'數(shù)據(jù)庫節(jié)點(diǎn)主機(jī)名'cmd.run'exit'

如果返回值為真,說明該數(shù)據(jù)庫節(jié)點(diǎn)主機(jī)名所述salt客戶端可以通達(dá);否則,需要發(fā)送通知給管理員,需要人工處理。

(2)元信息管理模塊

這里的元信息包括數(shù)據(jù)庫節(jié)點(diǎn)主機(jī)名、數(shù)據(jù)庫節(jié)點(diǎn)ip、數(shù)據(jù)庫端口和數(shù)據(jù)庫進(jìn)程號以及數(shù)據(jù)庫標(biāo)識符。

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

首先,salt管理端獲取所有的數(shù)據(jù)庫節(jié)點(diǎn)主機(jī)名:獲取方式如下:

#salt‐key–l|grep數(shù)據(jù)庫節(jié)點(diǎn)主機(jī)名前綴

數(shù)據(jù)庫節(jié)點(diǎn)主機(jī)名前綴是數(shù)據(jù)庫節(jié)點(diǎn)主機(jī)名的前綴字符,基于此可以過濾得到所有的數(shù)據(jù)庫節(jié)點(diǎn)。

然后,針對每個數(shù)據(jù)庫節(jié)點(diǎn),salt管理端通過發(fā)送指令給salt客戶端,獲取每個數(shù)據(jù)庫節(jié)點(diǎn)上所有的數(shù)據(jù)庫進(jìn)程信息,命令如下:

#salt‘?dāng)?shù)據(jù)庫節(jié)點(diǎn)主機(jī)名’cmd.run‘ps–ef|egrep數(shù)據(jù)庫標(biāo)識符|egrep–vgrep’

數(shù)據(jù)庫標(biāo)識符是數(shù)據(jù)庫類型的標(biāo)識,比如,mysql數(shù)據(jù)庫的數(shù)據(jù)庫標(biāo)識符為mysqld。

通過數(shù)據(jù)庫進(jìn)程信息,可以解析得到數(shù)據(jù)庫端口和數(shù)據(jù)庫進(jìn)程號。

同時,根據(jù)數(shù)據(jù)庫節(jié)點(diǎn)主機(jī)名獲取到數(shù)據(jù)庫節(jié)點(diǎn)ip。

所述數(shù)據(jù)庫節(jié)點(diǎn)主機(jī)名、數(shù)據(jù)庫節(jié)點(diǎn)ip、數(shù)據(jù)庫端口和數(shù)據(jù)庫進(jìn)程號保存在元信息文件中。

接下來,在salt管理端,掃描元信息文件,傳入數(shù)據(jù)庫端口,數(shù)據(jù)庫節(jié)點(diǎn)ip,以及zabbix服務(wù)端的用戶名密碼,調(diào)用zabbix服務(wù)端接口,自動創(chuàng)建相應(yīng)的所述數(shù)據(jù)庫主機(jī)。同時,根據(jù)所述數(shù)據(jù)庫主機(jī),解析得到相應(yīng)的監(jiān)控模板,根據(jù)該監(jiān)控模板,調(diào)用zabbix服務(wù)端接口,自動掛載相應(yīng)的監(jiān)控模板,包括cpu采集項(xiàng),cpu報(bào)警項(xiàng)和cpu趨勢圖。

如果某個所述數(shù)據(jù)庫主機(jī)不需要cpu監(jiān)控,可以采用手動方式,在zabbix服務(wù)端頁面卸載對應(yīng)的監(jiān)控模板即可。

也可以根據(jù)具體需求,調(diào)用zabbix服務(wù)端功能,調(diào)整cpu報(bào)警項(xiàng)設(shè)置。

(3)采集性能監(jiān)控?cái)?shù)據(jù)模塊

需要傳入的參數(shù):數(shù)據(jù)庫節(jié)點(diǎn)主機(jī)名,數(shù)據(jù)庫進(jìn)程號

在salt管理端,定期調(diào)用元信息管理模塊之后,得到所有的數(shù)據(jù)庫節(jié)點(diǎn)主機(jī)名,以及對應(yīng)的數(shù)據(jù)庫進(jìn)程號。然后,根據(jù)這些信息,salt管理端發(fā)送指令到所述數(shù)據(jù)庫節(jié)點(diǎn)對應(yīng)的salt客戶端,首先判斷是否存在性能監(jiān)控腳本,指令如下:#salt‘?dāng)?shù)據(jù)庫節(jié)點(diǎn)主機(jī)名’cmd.run‘ls–l/path/to/監(jiān)控腳本’

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

#salt'數(shù)據(jù)庫節(jié)點(diǎn)主機(jī)名'cp.get_filesalt://監(jiān)控腳本/path/to/監(jiān)控腳本

然后,在salt管理端上,針對每個數(shù)據(jù)庫節(jié)點(diǎn)上的每個數(shù)據(jù)庫進(jìn)程,采集性能監(jiān)控?cái)?shù)據(jù)指令如下:

#salt‘?dāng)?shù)據(jù)庫節(jié)點(diǎn)主機(jī)名’cmd.run‘python/path/to/監(jiān)控腳本數(shù)據(jù)庫進(jìn)程號’

說明,采用python編寫監(jiān)控腳本,執(zhí)行該監(jiān)控腳本,需要傳入一個參數(shù):數(shù)據(jù)庫進(jìn)程號

所述監(jiān)控腳本采集數(shù)據(jù)庫進(jìn)程占用的cpu信息的核心邏輯為:

p=psutil.process(int(pid))

cpuusage=p.cpu_percent(interval=1)

該監(jiān)控腳本依賴python的psutil模塊。pid是該腳本需要傳入的參數(shù),表示數(shù)據(jù)庫進(jìn)程號。

采集到的性能監(jiān)控?cái)?shù)據(jù)保存在salt管理端本地文件中,稱之為監(jiān)控?cái)?shù)據(jù)文件。(4)發(fā)送監(jiān)控?cái)?shù)據(jù)模塊

每當(dāng)調(diào)用采集性能監(jiān)控?cái)?shù)據(jù)模塊結(jié)束后,本模塊將被調(diào)用,本模塊功能是調(diào)用zabbix服務(wù)端接口,發(fā)送所述監(jiān)控?cái)?shù)據(jù)文件到zabbix服務(wù)端,指令如下:

#zabbix_sender‐‐zabbix‐serverzabbix服務(wù)端ip‐‐portzabbix服務(wù)端端口‐‐input‐file監(jiān)控?cái)?shù)據(jù)文件‐‐with‐timestamps

如果發(fā)送監(jiān)控?cái)?shù)據(jù)成功,那么需要清空所述監(jiān)控?cái)?shù)據(jù)文件;否則需要通知管理員處理。

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

該模塊可選。zabbix服務(wù)端接收和存儲所述監(jiān)控?cái)?shù)據(jù),分析所述監(jiān)控?cái)?shù)據(jù)并產(chǎn)生告警,以及通過zabbix服務(wù)端的趨勢圖展示監(jiān)控?cái)?shù)據(jù)。

說明:調(diào)用zabbix服務(wù)端自身功能,為數(shù)據(jù)庫性能監(jiān)控配置短信接收人和郵件接收人,方便第一時間接收告警信息和處理數(shù)據(jù)庫性能問題。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
白山市| 潍坊市| 陇南市| 寿阳县| 青神县| 大关县| 策勒县| 宁波市| 瑞金市| 东兰县| 五莲县| 麟游县| 湾仔区| 土默特左旗| 白玉县| 罗山县| 浮山县| 陵水| 贺州市| 靖江市| 诏安县| 乐业县| 页游| 南昌市| 中山市| 广西| 周至县| 平顶山市| 洞口县| 五莲县| 玉门市| 德格县| 牙克石市| 磴口县| 开平市| 青神县| 彝良县| 浠水县| 左云县| 清原| 邯郸市|