五分钟实现Zabbix电话、短信、邮件、钉钉、飞书、企业微信等机器人报警

Zabbix是现在企业用的比较多的开源监控系统,Zabbix电话短信报警更是运维不可缺少的报警渠道,假如半夜正在睡觉服务器异常了,这时候电话报警就非常必要。

Spug推送助手针对常见的报警系统,内置好了很多报警模版,可以让用户简单快捷的配置常见的报警通知,下面以Zabbix为例,看一下如何快速配置电话、短信、邮件、钉钉、飞书、企业微信等报警通知。

1、打开推送助手官网push.spug.cc,选择Zabbix模板

推送助手官网push.spug.cc / 模板市场 / Zabbix模板 / 使用模版 / 配置模板对象

2、拷贝保存模板编码

配置完成推送对象后,拷贝模板ID

3、Zabbix添加报警媒介

  • Zabbix / 报警媒介类型 / 添加
  名称:推送助手报警
  类型:脚本
  脚本名称:spug_push_alert.sh
  脚本参数1:abPampgaabc   //粘贴上面拷贝的推助手模版编码
  脚本参数2:{ALERT.MESSAGE}
  • 配置 Message templates,添加报警发送内容
  • 将下面的消息内容拷贝到你的zabbix templates消息里面,主题可以自己随便定义

  • Message type: 问题
status={TRIGGER.STATUS}&name={EVENT.NAME}&severity={EVENT.SEVERITY}&date={EVENT.DATE}&time={EVENT.TIME}&age={EVENT.AGE}&ip={HOST.IP}&hostname={HOST.NAME}&key={TRIGGER.KEY1}&value={ITEM.LASTVALUE}
  • 添加报警恢复内容
  • 将下面的消息内容拷贝到你的zabbix templates消息里面,主题可以自己随便定义
  • Message type:Problem recovery
status={TRIGGER.STATUS}&name={EVENT.NAME}&severity={EVENT.SEVERITY}&date={EVENT.DATE}&time={EVENT.TIME}&age={EVENT.AGE}&ip={HOST.IP}&hostname={HOST.NAME}&key={TRIGGER.KEY1}&value={ITEM.LASTVALUE}&recovery_date={EVENT.RECOVERY.DATE}&recovery_time={EVENT.RECOVERY.TIME}

点击更新保存媒介

4、添加zabbix报警报警脚本

登录zabbix-server服务器,添加zabbix执行的报警媒介脚本

$ vim /usr/lib/zabbix/alertscripts/spug_push.sh

#!/bin/bash
/usr/bin/curl -X POST -d "$2" https://push.spug.cc/send/$1


# 添加脚本执行权限
$ chmod +x  /usr/lib/zabbix/alertscripts/spug_push.sh

5、添加Zabbix报警用户

Zabbix / 管理 / 用户 / 关联推送助手报警媒介


6、添加Zabbix触发器

Zabbix / 配置 / 动作 / Trigger Action / 创建动作 / 配置报警发送用户和恢复信息发送用户



7、验证电话、短信、机器人报警

  • 可以手动触发一下报警,测试一下报警发送。
  • 推送助手平台 / 推送日志 也可以看到发送的历史消息。

8、关于Spug推送助手:

推送助手是一个集成了电话、短信、邮件、飞书、钉钉、微信、企业微信等多通道的消息推送平台。
用户只需要调用一个简单的URL,就可以完成多通道的消息推送。链接:push.spug.cc


更多资讯、视频、欢迎关注公众号: Spug社区

### Zabbix集成企业微信 为了实现Zabbix企业微信集成,可以利用Zabbix的通知功能来发送告警信息至企业微信。具体操作如下: 安装`curl`命令行工具用于发起HTTP请求[^2]。 #### 创建Media Type 进入Zabbix前端界面,在“Administration”->“Media types”,点击创建媒体类型按钮。“Type of media”选择脚本(script),名称可自定义为企业微信通知。在Script content部分编写调用企业微信API接口的Shell脚本或Python代码片段。对于Shell版本来说,可能像这样: ```bash #!/bin/bash # $1 is the subject, $2 is the message body. corpid='your_corp_id' corpsecret='your_secret_key' agentid='app_agent_id' token_url="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$corpid&corpsecret=$corpsecret" msg_url="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" json="{\"touser\":\"@all\",\"toparty\":\"\",\"totag\":\"\",\"msgtype\":\"text\",\"agentid\":$agentid,\"text\":{\"content\":\"$1\n$2\"},\"safe\":0}" access_token=$(curl -c "import sys,json;print json.load(sys.stdin)['access_token']") if [[ ! -z "$access_token" ]]; then curl -s -X POST --data-binary "${json}" ${msg_url}${access_token} fi ``` 上述脚本实现了获取Access Token并发送消息给指定的企业微信号的功能[^4]。 #### 添加Action触发条件 前往Configuration -> Actions页面新增动作(Action), 设置触发条件以及关联之前建立好的Media type作为响应方式之一。当满足特定阈值变化或其他事件发生时就会自动向设定的目标推送报警信息了。 --- ### Zabbix集成钉钉 同样地,通过定制化的Alert Script也可以轻松达成Zabbix同DingTalk之间的对接效果。这里给出一段简单的Python示例程序供参考: ```python import requests import json def send_dingtalk_msg(webhook, msg): headers = {'Content-Type': 'application/json'} data = { "msgtype": "text", "text": {"content": f"{msg}"}, "at": {} } response = requests.post(url=webhook, data=json.dumps(data), headers=headers).json() return response['errcode'] == 0 if __name__ == '__main__': webhook = 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxx' # 替换成自己的机器人WebHook地址 test_message = '测试来自Zabbix的消息提醒!' result = send_dingtalk_msg(webhook, test_message) if not result: print('Failed to post dingtalk.') ``` 这段代码展示了如何构建一个简易函数send_dingtalk_msg()用来接收两个参数——机器人的WebHook URL 和想要传递的信息字符串;接着构造POST请求体并通过requests库提交给目标服务器完成即时通讯应用内的广播发布流程[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值