九耘纱、使用Selenium抓取zabbix性能監(jiān)控圖

概要

老樣子先來(lái)個(gè)概要,因?yàn)楣疽恢倍甲邮褂闷髽I(yè)微信菜循,前兩天剛剛將所有zabbix的告警信息接到微信上,總感覺還差那么一點(diǎn)申尤,就想著就高等級(jí)的告警加上一個(gè)性能監(jiān)控圖债朵,這樣只看告警信息大概就清楚問(wèn)題了,不用在登錄到zabbix再去查找信息瀑凝,就因?yàn)檫@個(gè)想法讓我掉坑里呆了一整天序芦,驀然回首還是自己太菜啊,下面先貼出來(lái)使用Python登錄zabbix并且獲取到對(duì)應(yīng)告警項(xiàng)監(jiān)控圖的代碼粤咪,之后完整代碼會(huì)貼到github中谚中,鏈接放到簡(jiǎn)書上~

實(shí)現(xiàn)抓取

以下幾點(diǎn)基礎(chǔ):
1、告警信息的發(fā)送message里寥枝,可以發(fā)送zabbix的宏變量Item ID信息
2宪塔、根據(jù)Item ID,可以直接使用特殊URL攜帶Item ID信息獲取對(duì)應(yīng)監(jiān)控截圖
以下為獲取截圖完整代碼:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# name image.py
from selenium import webdriver
import os
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

def get_item_graph(itemid,flag,eventid):
    temp_name = "/tmp/"+eventid+".png"
        #save_screenshot僅能保存png格式圖片囊拜,所以文件名定義需要以png結(jié)尾
    driver = webdriver.PhantomJS("/usr/local/zabbix-agent-ops/phantomjs-2.1.1/bin/phantomjs",service_log_path=os.path.devnull)
        #使用PhantomJS可以模擬瀏覽器進(jìn)行訪問(wèn)
    driver.get("http://127.0.0.1/zabbix/")
    driver.set_window_size(640,480)
    driver.find_element_by_id("name").send_keys("armo")
    driver.find_element_by_id("password").send_keys("123456")
    driver.find_element_by_id("enter").click()
        #模擬訪問(wèn)url某筐,在對(duì)應(yīng)的元素element處輸入用戶名密碼后click登陸
    if flag:
        driver.get("http://127.0.0.1/zabbix/history.php?action=showgraph&fullscreen=1&itemids[]="+itemid)
    else:
        driver.get("http://127.0.0.1/zabbix/history.php?action=showvalues&fullscreen=1&itemids[]="+itemid)
        #flag如果是1,則對(duì)應(yīng)Item有對(duì)應(yīng)的graph獲裙邗巍南誊;如果是0,則獲取最新一段時(shí)間的值
        driver.save_screenshot(temp_name)
        #將網(wǎng)頁(yè)內(nèi)容保存為png圖片
    driver.close()
    driver.quit()

if __name__ == "__main__":
    if len(sys.argv) > 1:
        itemid = sys.argv[1]           #腳本傳遞的第一個(gè)參數(shù) Item ID
        flag = sys.argv[2]             #腳本傳遞的第二個(gè)參數(shù) Flag蜜托,從zabbix數(shù)據(jù)庫(kù)item和graph的對(duì)應(yīng)表查詢item是否具有對(duì)應(yīng)的graph抄囚,如果有則傳遞1到腳本,無(wú)傳遞0
        eventid = sys.argv[3]          #腳本傳遞的第三個(gè)參數(shù) 告警信息的Event ID橄务,用來(lái)命名png圖片
    get_item_graph(itemid,flag,eventid)
        #以上三個(gè)參數(shù)為前置調(diào)用腳本分析zabbix的發(fā)送信息后得到幔托,之后會(huì)更新在后續(xù)文章中

遇到的問(wèn)題

1、第一個(gè)session和cookies的保存問(wèn)題,如果登錄之后不攜帶cookies是無(wú)法訪問(wèn)對(duì)應(yīng)監(jiān)控頁(yè)面的重挑,剛開始選擇requests模塊嗓化,感覺相對(duì)較難,對(duì)于剛?cè)腴T的我來(lái)說(shuō)還是selenium比較合適谬哀,不用考慮session和cookies的問(wèn)題
2刺覆、腳本在測(cè)試環(huán)境運(yùn)行非常好,截圖信息也很準(zhǔn)確玻粪,但是到線上服務(wù)器就出了問(wèn)題,上倆個(gè)圖:
很明顯線上環(huán)境返回的圖诬垂,前面一段居然是亂碼劲室。檢查了所有環(huán)境,最后才發(fā)現(xiàn)問(wèn)題出在線上服務(wù)器沒有安裝和zabbix適配的字體問(wèn)題上结窘,很是無(wú)奈啊很洋,居然還要考慮字體的問(wèn)題,阿里云的服務(wù)器也是真夠能偷懶的隧枫。


正常

不正常

3喉磁、安裝字體
為了確保萬(wàn)無(wú)一失,直接安裝zabbix調(diào)用的字體到系統(tǒng)中
[root@zabbix ~]# cp /var/www/html/zabbix/fonts/DejaVuSans.ttf /usr/share/fonts/
[root@zabbix ~]# mkfontscale
[root@zabbix ~]# mkfontdir
[root@zabbix ~]# fc-list :lang=zh
Fangsong ti:style=Regular
AR PL ShanHeiSun Uni:style=Regular
[root@zabbix ~]#
安裝成功之后再次運(yùn)行腳本后官脓,截圖一切正常了~~~~終于可以安心睡覺了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末协怒,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子卑笨,更是在濱河造成了極大的恐慌孕暇,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赤兴,死亡現(xiàn)場(chǎng)離奇詭異妖滔,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)桶良,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門座舍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人陨帆,你說(shuō)我怎么就攤上這事曲秉。” “怎么了疲牵?”我有些...
    開封第一講書人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵岸浑,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我瑰步,道長(zhǎng)矢洲,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任缩焦,我火速辦了婚禮读虏,結(jié)果婚禮上责静,老公的妹妹穿的比我還像新娘。我一直安慰自己盖桥,他們只是感情好灾螃,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著揩徊,像睡著了一般腰鬼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上塑荒,一...
    開封第一講書人閱讀 51,590評(píng)論 1 305
  • 那天熄赡,我揣著相機(jī)與錄音,去河邊找鬼齿税。 笑死彼硫,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的凌箕。 我是一名探鬼主播拧篮,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼牵舱!你這毒婦竟也來(lái)了串绩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤芜壁,失蹤者是張志新(化名)和其女友劉穎赏参,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體沿盅,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡把篓,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了腰涧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片韧掩。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖窖铡,靈堂內(nèi)的尸體忽然破棺而出疗锐,到底是詐尸還是另有隱情,我是刑警寧澤费彼,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布滑臊,位于F島的核電站,受9級(jí)特大地震影響箍铲,放射性物質(zhì)發(fā)生泄漏雇卷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望关划。 院中可真熱鬧小染,春花似錦、人聲如沸贮折。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)调榄。三九已至踊赠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間每庆,已是汗流浹背筐带。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留扣孟,地道東北人烫堤。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓荣赶,卻偏偏與公主長(zhǎng)得像凤价,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拔创,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Zabbix簡(jiǎn)介 Zabbix官方網(wǎng)站Zabbix中文文檔 本文系統(tǒng)環(huán)境是CentOS7x86_64, Zabbi...
    Zhang21閱讀 8,002評(píng)論 0 37
  • 1.寫在前面 本文主要介紹的是zabbix的編譯安裝過(guò)程利诺,包含它的基礎(chǔ)環(huán)境LNMP,雖然zabbix官方一般推薦的...
    天之藍(lán)色閱讀 2,535評(píng)論 0 16
  • 一剩燥、準(zhǔn)備搭建環(huán)境 1.系統(tǒng):CentOS 7.3 2.軟件:Zabbix 3.2 二慢逾、安裝前的準(zhǔn)備 最小化安裝Ce...
    塵世不擾閱讀 4,144評(píng)論 8 31
  • 一.zabbix介紹 (1)zabbix:zabbix是一款基于web開發(fā)的分布式監(jiān)控系統(tǒng)以及企業(yè)級(jí)的網(wǎng)絡(luò)監(jiān)控的開...
    楠人幫閱讀 555評(píng)論 0 1
  • 最近忽然發(fā)現(xiàn)自己對(duì)很多問(wèn)題的看法變了,有的結(jié)果甚至令人驚訝灭红。我想侣滩,這應(yīng)該是思維方式改變的緣故。當(dāng)我把這個(gè)觀點(diǎn)跟朋友...
    聽賢小館閱讀 663評(píng)論 1 14