首頁 > 軟體

Orabbix結合Python傳送圖形報表

2020-06-16 17:54:12

在資料庫的運維工作中,如果有一種運籌帷幄的感覺,那麼其中一種方式就是看報表,比如喝著咖啡緩緩開啟電腦,幾十台,上百台的機器的負載明細都在眼底。如果某個地方出現了異常或者明顯的抖動,在報表中也能夠很清晰的顯示出來。

目前這種情況還是很難實現,但是我們可以創造,之前的博文中也分析過了zabbix+orabbix的監控方式,還是存在很多亮點,在監控和客製化功能上確實很強大,gc功能本身就很強大,但是擴充套件相對還是比較困難的。

首先我們來show一個概覽圖,這個是我們努力的目標。比如我們有幾十台DB伺服器,在開始工作前看看這個報表無疑會讓你的工作針對性更強,哪些是需要重點關注的,哪些可能是潛在的問題,哪些問題迫在眉睫需要解決。

比如我們收到了下面的形式的郵件,描述的是4台DB在過去的24個小時內的等待事件,是不是相對來說感覺要清晰一些,當然我們還可以擴充套件其它的監控項。

要實現這個效果,著實不是一件容易的事情。
自己也是各方找了各種資料,也是在不斷的失敗經歷中總算看到了一絲曙光。
首先要通過zabbix得到這個圖片,大體的原理如下:
要得到一個基本的圖形,除了基本指定長寬之外,最主要的就是graphid和screenid這兩個屬性

orabbix會把資料通過Jdbc得到後傳給zabbix中的mysql表中,當需要取得對應的資料資訊時,通過圖形的方式還是要依賴screenid和graphid,在對應的表中進行關聯得到資料的變化情況。

明白了基本原理,我們為了實現傳送郵件中嵌入圖形的需求,就需要把這些圖形以附件的形式傳送郵件。
按照這個思路還是有幾件必須要完成的事情,
1.知道screenid和graphid和mysql表的關聯關係
2.利用screenid和graphid得到對應的報表圖片
3.把圖形儲存在臨時目錄下
4.把圖形以附件的形式傳送。

 第1步從網路中也會得到一些基本的資訊,如果想得到更多的明細資訊,似乎資源也有限,從我的實驗來看,表關聯關係和網路還是存在一定的差別,最後我是根據幾個關聯表的資料反復比較,最後也算是找出了規律,後面詳細介紹表關聯關係的細節。
 第2步通過screenid和graphid得到對應的報表圖片,這個步驟是基於第1步,我們可以做基本的測試,得到圖片的url格式,然後把一些非必須欄位,比如長寬等給定一個預設值即可。
 第3步需要把圖片能夠下載下來存放在臨時目錄下,這個過程還是需要藉助指令碼來完成,這方面python的強大的web功能就派上了用場。可以基於根據url下載圖片,然後把圖片放入web伺服器的預設路徑下,比如/var/www/zabbix/reports
第4步就是借用郵件傳送的功能來把圖片放入附件中,這個部分還是使用python來做,把步驟3,步驟4的功能都獨立成對應的功能點。
 看起來各個功能還是緊密關聯的,但是我們可以把它拆分開來,比如我們可以直接實現第4步,模擬我們收到了圖片的場景即可。
 得到圖片graphid和screenid的部分,我們可以在已有的監控圖中檢視屬性得到一個url樣例,然後按照這個格式來進行修改客製化。
 如果實現得都差不多了,再回到第一步來解析資料字典也不遲。解析資料字典的比偶關聯有點懵懵懂懂,壓根沒有datamodel之類的詳細文件,好在開源專案的表結構還是很清晰,還是能夠基本看出欄位,表名的含義,比較清晰,僥倖解析出來了關聯關係。

詳細的步驟閱讀下一頁的精彩內容http://www.linuxidc.com/Linux/2015-08/122359p2.htm

下面關於Python的文章您也可能喜歡,不妨看看:

Python:在指定目錄下查詢滿足條件的檔案  http://www.linuxidc.com/Linux/2015-08/121283.htm

Python2.7.7原始碼分析  http://www.linuxidc.com/Linux/2015-08/121168.htm

無需作業系統直接執行 Python 程式碼  http://www.linuxidc.com/Linux/2015-05/117357.htm

CentOS上原始碼安裝Python3.4  http://www.linuxidc.com/Linux/2015-01/111870.htm

《Python核心程式設計 第二版》.(Wesley J. Chun ).[高清PDF中文版] http://www.linuxidc.com/Linux/2013-06/85425.htm

《Python開發技術詳解》.( 周偉,宗傑).[高清PDF掃描版+隨書視訊+程式碼] http://www.linuxidc.com/Linux/2013-11/92693.htm

Python指令碼獲取Linux系統資訊 http://www.linuxidc.com/Linux/2013-08/88531.htm

Ubuntu下用Python搭建桌面演算法交易研究環境 http://www.linuxidc.com/Linux/2013-11/92534.htm

Python 語言的發展簡史 http://www.linuxidc.com/Linux/2014-09/107206.htm


IT145.com E-mail:sddin#qq.com