orabbix結合python傳送圖形報表(二)
http://blog.itpub.net/23718752/viewspace-1776784/
當然我們還是需要實現,意味著那些碰到的硬骨頭都需要啃下來,大體的思路如下,每個步驟都有一些難點。
1.知道screenid和graphid和mysql表的關聯關係
2.利用screenid和graphid得到對應的報表圖片
3.把圖形儲存在臨時目錄下
4.把圖形以附件的形式傳送。
首先就是表的關聯。這個部分還真沒有什麼捷徑,最好的方法就是自己去根據裡面的資料去找規律,至少從我的嘗試,沒有找到對應的datamodel之類的文件,不過這個開源的一個優點就是表定義還是很規範的,能夠根據字面意思就基本能夠看出來對應的資料含義。
我們可以根據圖片的連結地址來倒推,連結地址一般為 for screenid in i:
graphid_list = []
#for c in mysql_query("select resourceid from screens_items where screenid='%s'"%(int(screenid))):
for c in mysql_query("select graphid from graphs where templateid=1047 "):
for d in c:
graphid_list.append(int(d))
for graphid in graphid_list:
login_opt = urllib.urlencode({
"name": username,
"password": password,
"autologin": 1,
"enter": "Sign in"})
get_graph_opt = urllib.urlencode({
"graphid": graphid,
"screenid": screenid,
"width": width,
"height": height,
"period": period})
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
login_url = r"http://%s/index.php"%zabbix_host
save_graph_url = r"http://%s/chart2.php"%zabbix_host
opener.open(login_url,login_opt).read()
data = opener.open(save_graph_url,get_graph_opt).read()
filename = "%s/%s.%s.png"%(save_graph_path,screenid,graphid)
html += '<img width="600" height="250" src="http://%s/%s/%s/%s.%s.png">'%(zabbix_host,save_graph_path.split("/")[len(save_graph_path.split("/"))-2],save_graph_path.split("/")[len(save_graph_path.split("/"))-1],screenid,graphid)
f = open(filename,"wb")
f.write(data)
f.close()
至於傳送郵件,還是繼續套用python的工具包來做。可以採用下面的方式來傳送html格式的郵件。
def send_mail2(user,subject,content):
me = mail_head+"<"+mail_user+"@"+mail_postfix+">"
print me
# msg = MIMEText(content,'plain','utf-8')
msg = MIMEText(content,_subtype="html",_charset="utf8")
#msg['Subject'] = Header(subject,'utf-8')
msg['From'] = me
msg['to'] = user
global sendstatus
global senderr
try:
smtp = smtplib.SMTP()
smtp.connect(mail_host)
#smtp.login(mail_user,mail_pass)
smtp.sendmail(me,user,msg.as_string())
smtp.close()
print 'send ok'
sendstatus = True
except Exception,e:
senderr = str(e)
print senderr
sendstatus = False
logging.debug(user + ' ' + subject + ' ' + content)
這兩個部分都結合起來,得到圖片,然後作為附件傳送郵件,整個監控傳送圖形報表的工作就基本完成了。
可能有些地方還是沒有說的很清楚,我們可以繼續討論。我也在不斷完善這個部分。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-1781581/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python傳送帶附件的圖文格式報表指令碼(smtplib)Python指令碼
- Python爬蟲(二)——傳送請求Python爬蟲
- ThinkPHP6結合PHPMailer傳送郵件PHPAI
- ASP.NET結合COM元件傳送Email (轉)ASP.NET元件AI
- 理解TON合約中的訊息傳送結構
- 用 Python 寫指令碼傳送工作週報Python指令碼
- 樹形結構的處理——組合模式(二)模式
- jmeter學習指南之結果分析-圖形圖表JMeter
- TCP報文傳送工具TCP
- python: 傳送內容帶圖片的郵件Python
- python傳送郵件Python
- PHP結合HTML5使用FormData物件提交表單及上傳圖片PHPHTMLORM物件
- NC502報表學習總結(未含合併報表)
- Laravel 傳送郵件報錯Laravel
- GUI圖形化自動化框架研發V4.0(傳送缺陷報告至開發人員郵箱)GUI框架
- 使用 Python 傳送簡訊?Python
- Python SMTP傳送郵件Python
- 使用python傳送郵件Python
- 箱形圖(python畫圖)Python
- Java Mail 郵件傳送(二):簡單封裝的郵件傳送JavaAI封裝
- 如何將炫酷的報表直接截圖傳送郵件——在Superset 0.37使用Schedule Email功能AI
- postman傳送請求使用篇(二)Postman
- SpringBoot傳送郵件(二)Spring Boot
- 深度學習和圖形學渲染的結合和應用深度學習
- [自譯]結合圖形和語音,打造更好的體驗
- 最全總結!聊聊 Python 傳送郵件的幾種方式Python
- zabbix 配置傳送郵件報警
- 使用微信公眾平臺傳送報警資訊(Python版)薦Python
- 圖形、GDI + 和圖表(在網頁上嵌入動態圖形)網頁
- 傳送帶圖片的郵件
- python傳送HTTP POST請求PythonHTTP
- 【Python】釘釘webhook傳送通知PythonWebHook
- Python使用SMTP傳送郵件Python
- Python傳送請求代tokenPython
- python實現傳送郵件Python
- Python向IP地址傳送字串Python字串
- python 圖形初學Python
- 13個JavaScript圖表(JS圖表)圖形繪製外掛JavaScriptJS