python 监视图_python获取zabbix监控图
領(lǐng)導(dǎo)有個(gè)需求,希望每天郵件發(fā)出當(dāng)天服務(wù)器的監(jiān)控狀態(tài),開(kāi)始是每天下午快下班的時(shí)候打開(kāi)zabbix截圖,每天都這樣實(shí)在是累,于是寫(xiě)了一段腳本實(shí)現(xiàn)自動(dòng)抓取圖片,并組裝成html,通過(guò)定時(shí)郵件發(fā)送,實(shí)現(xiàn)日?qǐng)?bào)自動(dòng)化。"zabbix 郵件發(fā)送監(jiān)控圖片"(在網(wǎng)上也看到過(guò)很多大神些的各種腳本,有shell的,有perl的,有python呢,都不怎么看的懂,于是自己寫(xiě)了呵呵,)
以下則是我通過(guò)python的腳本獲取zabbix圖片的實(shí)現(xiàn)過(guò)程。
#_*_coding:utf-8_*_
import?sys
import?datetime
import?cookielib,?urllib2,urllib
class?ZabbixGraph(object):
def?__init__(self,url,name,password):
self.url=url
self.name=name
self.password=password
#初始化的時(shí)候生成cookies
cookiejar?=?cookielib.CookieJar()
urlOpener?=?urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
values?=?{"name":self.name,'password':self.password,'autologin':1,"enter":'Sign?in'}
data?=?urllib.urlencode(values)
request?=?urllib2.Request(url,?data)
try:
urlOpener.open(request,timeout=10)
self.urlOpener=urlOpener
except?urllib2.HTTPError,?e:
print?e
def?GetGraph(self,url,values,p_w_picpath_dir):
key=values.keys()
if?"graphid"??not?in?key:
print?u"請(qǐng)確認(rèn)是否輸入graphid"
sys.exit(1)
#以下if?是給定默認(rèn)值
if??"period"?not?in?key?:
#默認(rèn)獲取一天的數(shù)據(jù),單位為秒
values["period"]=86400
if?"stime"?not?in?key:
#默認(rèn)為當(dāng)前時(shí)間開(kāi)始
values["stime"]=datetime.datetime.now().strftime('%Y%m%d%H%M%S')
if?"width"?not?in?key:
values["width"]=800
if?"height"?not?in?key:
values["height"]=200
data=urllib.urlencode(values)
request?=?urllib2.Request(url,data)
url?=?self.urlOpener.open(request)
p_w_picpath?=?url.read()
p_w_picpathname="%s/%s.png"?%?(p_w_picpath_dir,?values["graphid"])
f=open(p_w_picpathname,'wb')
f.write(p_w_picpath)
#此url是獲取圖片是的,請(qǐng)注意餅圖的URL?和此URL不一樣,請(qǐng)仔細(xì)觀察!
gr_url="http://zabbix.XXXX.com/chart2.php"
#登陸URL
indexURL="http://zabbix.XXX.com/index.php"
username="xxxx"
password="xxxx"
#用于圖片存放的目錄
p_w_picpath_dir="/tmp"
#圖片的參數(shù),該字典至少傳入graphid。
values={"graphid":"582","period":86400,"stime":20160101000000,"width":800,"height":200}
b=ZabbixGraph(indexURL,username,password)
b.GetGraph(gr_url,values,p_w_picpath_dir)
通過(guò)以上獲取的圖片,在組裝html,可實(shí)現(xiàn)自動(dòng)化日?qǐng)?bào)發(fā)送;解放你的雙手。
與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的python 监视图_python获取zabbix监控图的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python生成器和装饰器_python
- 下一篇: python模块编程教程_python进