Zabbix7设置告警
文章目录
一、邮件告警设置
1、邮箱设置
登录163邮箱,设置邮箱调用授权码
获取授权码
查看SMTP服务器地址
2、Zabbix Server UI界面设置告警
告警->媒介->创建媒介类型
点击测试
测试邮件发送
3、设置调用用户
用户->用户->
添加报警媒介
4、设置触发器
数据采集->主机或模版->触发器->创建触发器(假如有触发器可跳过该步骤!!)
5、添加动作
设置触发操作
动作的作用是将触发器与告警配置联系在一起。
告警->动作->触发器动作->创建动作
添加动作
二、设置钉钉告警
创建钉钉群
- 登录钉钉
- 创建钉钉群
手机、电脑都可以,这里以电脑举例
这里可以自己随便选择,我选择的是内部群
邀请好友,起一个群名称就可以了;
创建完成。
添加机器人–>设置关键词
创建完成之后点击群设置
往下翻找到“机器人”
点击添加机器人
添加”机器人“–>“自定义”
点击添加
生成webhook(请保管好webhook的值;后面需要用到。)
请保管好webhook的值;后面需要用到。
服务器上操作
- 配置钉钉脚本
#将脚本写在/usr/lib/zabbix/alertscripts/目录下
[root@zabbix ~]# cd /usr/lib/zabbix/alertscripts/
##安装python或者python
[root@zabbix alertscripts]# vim dingding.py
注意:这里需要提前安装好这几个python模块:
requests、json、sys、os、datetime
;安装方式为:
pip3 install requests
以此类推;如遇到以下报错就是没有安装
requests模块
,就需要pip安装一下;
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
import json
import sys
import os
import datetime
webhook = "https://oapi.dingtalk.com/robot/send?access_token=237132311231w4ru3rweehfiuqeor21o34u1923412werqwrq223"
user=sys.argv[1]
subject=sys.argv[2]
text=sys.argv[3]
data={
"msgtype": "text",
"text": {
"content": "%s%s"%(subject,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("/usr/lib/zabbix/alertscripts/log/dingding.log"):
f=open("/usr/lib/zabbix/alertscripts/log/dingding.log","a+")
else:
f=open("/usr/lib/zabbix/alertscripts/log/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()
#为脚本添加执行权限
[root@zabbix alertscripts]# chmod +x dingding.py
#修改脚本的属主和属组:
[root@zabbix alertscripts]# chown zabbix.zabbix dingding.py
- 创建日志文件:
#如果目录不存在,创建它:
mkdir -p /usr/lib/zabbix/alertscripts/log/
#确保 Zabbix 用户有权限写入该目录:
chown zabbix:zabbix /usr/lib/zabbix/alertscripts/log/
chmod 755 /usr/lib/zabbix/alertscripts/log/
- 测试脚本是否能运行成功:
注意关键词;
#py脚本 手机号 关键词 告警信息
./dingding.py 147852963 告警 test
手机号写的正确的话就可以直接@他,如果随便写的就不会输出,如下图的上(正确手机号)、下(错误手机号)
成功接收到信息,完成!
web页面操作
- 告警–>媒介–>创建报警媒介类型
添加完之后要进行测试,测试成功在进行下一步
{ALERT.SUBJECT}
{ALERT.MESSAGE}
{ALERT.SENDTO}
用户 –> 用户 –> 报警媒介
创建触发器
创建触发器动作
操作:
#告警操作内容:
##标题:
服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
##消息内容:
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
验证:
# 1. 修改脚本中的日志路径
sudo sed -i 's|/usr/lib/zabbix/alertscripts/log|/var/log/zabbix|' /usr/lib/zabbix/alertscripts/dingding.py
# 2. 确保日志文件存在
sudo touch /var/log/zabbix/dingding.log
sudo chown zabbix:zabbix /var/log/zabbix/dingding.log
sudo chmod 644 /var/log/zabbix/dingding.log
# 3. 验证SELinux上下文
sudo chcon -t zabbix_log_t /var/log/zabbix/dingding.log