Zabbix支持多種自定義報警方式,可以靈活跟你的需求來制定報警方式。常見的有短信,郵件,本文將介紹 如何把zabbix報警信息發送至釘釘羣消息中。
zabbix的相關配置不再贅述,直接貼圖講述重點內容。
一.添加釘釘羣報警機器人
二.編寫報警腳本
三.zabbix 添加報警類型
四.測試報警
正文:
一:添加釘釘羣報警機器人,機器人類型位自定義機器人,並複製保存機器人的api接口地址
二:編輯報警腳本
我直接貼出腳本全文,方便大家理解。
#!/bin/python
# -*- coding: UTF-8 -*-
#author: Jiang
import requests
import json
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )
import os
import urllib2
import urllib
import datetime
date_time = datetime.datetime.now()
msg=sys.argv[1]
url = "機器人地址"
dt = urllib.quote(msg)
#報警內容展示url
url_info = "http://192.168.1.1/msgPage.html?info=" + dt
#根據對項目名稱的判斷,指定@固定的項目負責人
job_a = 'demo-test'
if job_a in msg :
demo = 'demo-test'
phone_number = 'demo-test項目負責人手機號碼'
demo_Name = '姓名'
else:
demo = ''
phone_number = ''
demo_Name = ''
header = {
"Content-Type": "application/json",
"charset": "utf-8"
}
data = {
"msgtype": "markdown",
"markdown": {
"title": "ELK - ERROR",
"text": "## 告警標題!" + "\n\n" +
"@" + phone_number + "\n\n" +
# "![](圖片地址,如果想展示圖片,此處貼圖片地址,並取消本行註釋)" + "\n\n" +
"您好,您負責的工程又雙叒叕來異常報警了,老是報警提醒您,我真是累得筋疲力盡,滿頭大汗,上氣不接下氣!希望您寫點好的代碼,讓我輕鬆輕鬆。" + "\n\n" +
str(date_time) + "\n\n" +
"[點擊鏈接查看報警內容](" + url_info + ")"
},
"at": {
"atMobiles": [
"demo-test項目負責人手機號碼"
],
"isAtAll": False
}
}
sendData = json.dumps(data)
request = urllib2.Request(url, data=sendData, headers=header)
urlopen = urllib2.urlopen(request)
print urlopen.read()
此處的報警內容實例如下:
點擊鏈接後,彈出瀏覽器,並展示zabbix內定義的報警內容。
其中,msgPage.html 內容如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>信息頁</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="apple-mobile-web-app-capable" content="no">
<meta name="viewport" content="width=device-width, initial-scale=1.0,minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
</head>
<body >
<div >
<p id="msg"></p>
</div>
<script>
function getParam(a){
var reg = new RegExp('(^|&)' + a + '=([^&]*)(&|$)');
var r = window.location.search.substr(1).match(reg);
return (r != null) ? decodeURIComponent(r[2]) : "";
}
var hexToDec = function(str) {
str=str.replace(/\\u/g,"%u");
return unescape(str);
}
document.getElementById('msg').innerHTML = hexToDec(getParam('info'))
</script>
</body>
</html>
三:zabbix 添加報警類型
四:測試報警
觸發報警,查看釘釘羣是否收到消息即可