zabbix-v4.0系列-配置短信告警功能

2020-06-15 06:45:39 浏览数 (1)

在百度上搜索查看了很多文章之后,我终于在本地服务上实现了zabbix短信发送配置。其中有很多小的细节导致了我配置的并不是那么顺利,这篇文章就是解决这个问题的。按照这篇文章相信你一定能快速配置出短信发送的功能。

1. 创建新的通信渠道

默认的通信渠道有EmailJabberSMS。这里的SMS指的明显是一个通信设备,通常情况下我们是没有这个设备的。所以对于我们来说短信发送的实现原理就是:在zabbix问题触发后自动调用我们的短信发送脚本,通过脚本发送http请求来发送告警短信。

所以首先,我们需要指定我们的脚本位置以及脚本入参。

点击按钮创建新的媒体类型

类型选择【script】,【Script name】填写所执行的脚本名称(执行脚本一定要放在AlertScriptsPath目录下-可以在/etc/zabbix/zabbix_server.conf文件中查看,默认为/usr/lib/zabbix/alertscripts )。最后添加3个参数,分别是【收信人】、【问题名称】、【问题描述】。

2. 创建用户组用户

在这个例子中,我们需要监控某个linux服务器,因此我们需要一个运维组和负责运维的同学。(因为Admin的权限过大,所以我们不能用Admin用户去干所有的事情)我们需要创建一个用户组,只让这个组的同学负责linux服务相关的事情。

创建Ops运维组

给Ops添加权限

创建运维同学【看门狗】

添加【看门狗】同学的【手机号】(如果看门狗同学有多个手机号的话,可以用逗号隔开配置多个)、【工作时间】、【负责的问题级别】

3. 在zabbix-server上配置我们的脚本

由于测试环境,我们将推送短信消息的部分替换为在/tmp/SMS-SEND.log打印短信内容。

代码语言:javascript复制
#!/bin/bash

CAT="/bin/cat"
CURL="/usr/bin/curl"
MOBILE_NUMBER=$1    # 手机号码
MESSAGE_SUBJECT=$2  # 短信主题
MESSAGE_UTF8=$3     # 短信内容

MESSAGE(){
  ${CAT} <<EOF
{
   "bizType": 0,
   "smsSubject": "$MESSAGE_SUBJECT",
   "smsContent": "$MESSAGE_UTF8",
   "userMobile": "$MOBILE_NUMBER"
 }
EOF
}

# Send it
#${CURL} -i 
#--header 'Content-Type: application/json' 
#--header 'Accept: application/json' 
#-X POST -d "$(MESSAGE)" "你们开发提供的短信接口地址"
echo "$(MESSAGE) has send! n" >> /tmp/SMS-SEND.log

修改sendSMS.sh脚本权限

代码语言:javascript复制
chown zabbix:zabbix sendSMS.sh
chmod  x sendSMS.sh

4. 创建触发器的动作

选择【triggers】-点击创建动作。

填写自定义名称,如果不配置条件那么这个动作会响应所有触发器。

第一行是在问题发送多久之后推送短信通知,这里是测试环境,我们就设置为60s。

填写推送的用户或用户组。这里推荐使用用户组,以后如果运维团队有新的同学加入,则给新同学创建账号并加入运维组即可。

当问题恢复时,通知跟这个问题有关的所有人

5. 效果验证

好了让我们来停止一个zabbix-agent来看看效果。

代码语言:javascript复制
[root@vm2 ~]# systemctl stop zabbix-agent

等待5分钟后,zabbix发出警告

后台/tmp/SMS-SEND.log文件中打印出如下日志

然后恢复zabbix-agent,发送恢复短信

相关文章

  • zabbix-v4.0系列-自动发现并监控jvm8-简明扼要版
  • zabbix-v4.0系列-zabbix如何监控mongodb-v4.0.13分片集群1
  • zabbix-v4.0系列-zabbix4.0安装部署

0 人点赞