> 技术文档 > Zabbix7设置告警

Zabbix7设置告警


Zabbix7设置告警

文章目录

  • Zabbix7设置告警
  • 一、邮件告警设置
    • 1、邮箱设置
    • 2、Zabbix Server UI界面设置告警
    • 3、设置调用用户
    • 4、设置触发器
    • 5、添加动作
  • 二、设置钉钉告警
      • 创建钉钉群
      • 添加机器人–>设置关键词
      • 生成webhook(请保管好webhook的值;后面需要用到。)
    • 服务器上操作
    • web页面操作

一、邮件告警设置

1、邮箱设置

登录163邮箱,设置邮箱调用授权码

Zabbix7设置告警

Zabbix7设置告警

获取授权码
Zabbix7设置告警

查看SMTP服务器地址
Zabbix7设置告警

2、Zabbix Server UI界面设置告警

告警->媒介->创建媒介类型

Zabbix7设置告警
Zabbix7设置告警
点击测试
Zabbix7设置告警

Zabbix7设置告警
测试邮件发送
Zabbix7设置告警

3、设置调用用户

用户->用户->

Zabbix7设置告警

添加报警媒介
Zabbix7设置告警

Zabbix7设置告警

4、设置触发器

数据采集->主机或模版->触发器->创建触发器(假如有触发器可跳过该步骤!!)

Zabbix7设置告警
Zabbix7设置告警

5、添加动作

设置触发操作

动作的作用是将触发器与告警配置联系在一起。

告警->动作->触发器动作->创建动作

Zabbix7设置告警
添加动作
Zabbix7设置告警
Zabbix7设置告警

二、设置钉钉告警

创建钉钉群

  • 登录钉钉
  • 创建钉钉群

手机、电脑都可以,这里以电脑举例

Zabbix7设置告警

这里可以自己随便选择,我选择的是内部群

Zabbix7设置告警

邀请好友,起一个群名称就可以了;

Zabbix7设置告警

创建完成。

添加机器人–>设置关键词

创建完成之后点击群设置

Zabbix7设置告警

往下翻找到“机器人”

Zabbix7设置告警

点击添加机器人

Zabbix7设置告警

添加”机器人“–>“自定义”

Zabbix7设置告警

点击添加

Zabbix7设置告警

Zabbix7设置告警

生成webhook(请保管好webhook的值;后面需要用到。)

请保管好webhook的值;后面需要用到。

Zabbix7设置告警

Zabbix7设置告警

服务器上操作

  • 配置钉钉脚本
#将脚本写在/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 requestsimport jsonimport sysimport osimport datetimewebhook = \"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

手机号写的正确的话就可以直接@他,如果随便写的就不会输出,如下图的上(正确手机号)、下(错误手机号)

Zabbix7设置告警

成功接收到信息,完成!

web页面操作

  • 告警–>媒介–>创建报警媒介类型

Zabbix7设置告警
添加完之后要进行测试,测试成功在进行下一步
Zabbix7设置告警

{ALERT.SUBJECT}{ALERT.MESSAGE}{ALERT.SENDTO}

用户 –> 用户 –> 报警媒介
Zabbix7设置告警
创建触发器

Zabbix7设置告警

创建触发器动作

Zabbix7设置告警
操作:

Zabbix7设置告警

#告警操作内容:##标题:服务器:{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}

验证:
Zabbix7设置告警

# 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.logsudo chown zabbix:zabbix /var/log/zabbix/dingding.logsudo chmod 644 /var/log/zabbix/dingding.log# 3. 验证SELinux上下文sudo chcon -t zabbix_log_t /var/log/zabbix/dingding.log