Zabbix配置郵箱報警
打開郵箱SMTP服務(163郵箱為例)
創建報警媒介
消息模板
# 告警模板
主題:
監控告警: {EVENT.NAME}
消息:
主機: {HOST.NAME1}
時間: {EVENT.DATE} {EVENT.TIME}
級別: {TRIGGER.SEVERITY}
觸發: {TRIGGER.NAME}
詳情: {ITEM.NAME1}:{ITEM.KEY1}:{ITEM.VALUE1}
狀態: {TRIGGER.STATUS}
項目:{TRIGGER.KEY1}
事件ID:{EVENT.ID}
# 恢復模板
主題:
告警恢復: {EVENT.DURATION}: {EVENT.NAME}
消息:
主機: {HOST.NAME1}
時間: {EVENT.DATE} {EVENT.TIME}
級別: {TRIGGER.SEVERITY}
觸發: {TRIGGER.NAME}
詳情: {ITEM.NAME1}:{ITEM.KEY1}:{ITEM.VALUE1}
狀態: {TRIGGER.STATUS}
測試告警媒介
媒介綁定用戶
告警媒介綁定動作
測試
停止agent端的nginx進行
systemctl stop nginx
systemctl start nginx
Zabbix配置釘釘報警
創建釘釘機器人
查找本地IP
在釘釘群聊中創建自定義機器人
添加報警腳本
vim /usr/lib/zabbix/alertscripts/dingding.py
#!/usr/bin/env python3
#coding:utf-8
#zabbix報警
import requests,json,sys,os,datetime
# 更換機器人webhook
webhook="https://oapi.dingtalk.com/robot/send?access_token=13b4395253b507cb6281c48d5677a0c05a5d9b4ad2fd4b4140adc49d5f5955e"
user=sys.argv[1]
text=sys.argv[3]
data={
"msgtype": "text",
"text": {
"content": text
},
"at": {
"atMobiles": [
user
],
"isAtAll": False
}
}
headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
if os.path.exists("/var/log/zabbix/dingding.log"):
f=open("/var/log/zabbix/dingding.log","a+")
else:
f=open("/var/log/zabbix/dingding.log","w+")
f.write("\n"+"--"*30)
if x.json()["errcode"] == 0:
f.write("\n"+str(datetime.datetime.now())+" "+str(user)+" "+"發送成功"+"\n"+str(text))
f.close()
else:
f.write("\n"+str(datetime.datetime.now()) + " " + str(user) + " " + "發送失敗" + "\n" + str(text))
f.close()
chmod +x /usr/lib/zabbix/alertscripts/dingding.py
touch /var/log/zabbix/dingding.log
chown zabbix.zabbix /var/log/zabbix/dingding.log
安裝python3環境
yum -y install phthon3 epel-release python-pip
pip3 install requests
測試腳本
cd /usr/lib/zabbix/alertscripts
./dingding.py test test "釘釘"
Zabbix創建告警媒介
腳本參數
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
消息模板
# 主題
告警問題: {EVENT.NAME}
# 消息:
主機: {HOST.NAME1}
時間: {EVENT.DATE} {EVENT.TIME}
級別: {TRIGGER.SEVERITY}
觸發: {TRIGGER.NAME}
詳情: {ITEM.NAME1}:{ITEM.KEY1}:{ITEM.VALUE1}
狀態: {TRIGGER.STATUS}
項目: {TRIGGER.KEY1}
事件ID:{EVENT.ID}
# 主題
告警恢復 {EVENT.DURATION}: {EVENT.NAME}
# 消息
主機: {HOST.NAME1}
時間: {EVENT.DATE} {EVENT.TIME}
級別: {TRIGGER.SEVERITY}
觸發: {TRIGGER.NAME}
詳情: {ITEM.NAME1}:{ITEM.KEY1}:{ITEM.VALUE1}
狀態: {TRIGGER.STATUS}
項目: {TRIGGER.KEY1}
事件ID:{EVENT.ID}
測試告警媒介
告警媒介綁定用戶
告警媒介綁定觸發器動作
測試
來到agent端停止nginx
systemctl stop nginx
Zabbix配置企業微信報警
企業微信依然采用機器人的方式
創建企業微信機器人

添加報警腳本
vim /usr/lib/zabbix/alertscripts/weixin.py
#!/usr/bin/env python3
#coding:utf-8
#zabbix報警
import requests,json,sys,os,datetime
# 更改機器人webhook
webhook="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=64c2858d-efab-4bba-acb0-41f0e034eb3"
user=sys.argv[1]
text=sys.argv[3]
data={
"msgtype": "text",
"text": {
"content": text
},
"at": {
"atMobiles": [
user
],
"isAtAll": False
}
}
headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
if os.path.exists("/var/log/zabbix/weixin.log"):
f=open("/var/log/zabbix/weixin.log","a+")
else:
f=open("/var/log/zabbix/weixin.log","w+")
f.write("\n"+"--"*30)
if x.json()["errcode"] == 0:
f.write("\n"+str(datetime.datetime.now())+" "+str(user)+" "+"發送成功"+"\n"+str(text))
f.close()
else:
f.write("\n"+str(datetime.datetime.now()) + " " + str(user) + " " + "發送失敗" + "\n" + str(text))
f.close()
chmod +x /usr/lib/zabbix/alertscripts/weixin.py
touch /var/log/zabbix/weixin.log
chown zabbix.zabbix /var/log/zabbix/weixin.log
“+“發送成功”+”\n"+str(text))
f.close()
else:
f.write(“\n”+str(datetime.datetime.now()) + " " + str(user) + " " + “發送失敗” + “\n” + str(text))
f.close()
```bash
chmod +x /usr/lib/zabbix/alertscripts/weixin.py
touch /var/log/zabbix/weixin.log
chown zabbix.zabbix /var/log/zabbix/weixin.log
浙公網安備 33010602011771號