标签:设置 短信发送 生成 web 方便 sub l命令 添加 控制面板
要使用短信报警最好是自己的公司有短信的接口,你在向公司开发要短信接口公司没有短信接口可以去短信报警借助于第三方平台,与邮件报警指定第三方的邮件服务器类似,我们需要指定短信发送服务器,这里我们以中国网建SMS短信通为例,其官网地址如下:
http://sms.webchinese.com.cn/api.shtml
网站介绍了如何申请注册用户,设定登录密钥,以及相关api和返回码的使用说明,通过这个教程可以很方便的学会如何使用脚本发送报警信息。
我介绍是公司自己有短信接口,如何实现zabbix短信报警
要用短信来接收zabbix的报警思路过程:
1、创建一个可以发送短信的脚本
2、要让zabbix来调用这个脚本,和传参方式
3、设置用户和定义报警级别来传参用户数据
4、设置动作有报警就把指定的报警信息传输给用户
查看zabbix脚本默认路径
vim /etc/zabbix/zabbix_server.conf
可以在配置文件中设置脚本位置(注意在脚本文件上一个目录必须叫alertscripts)
vim sendSMS.sh
#!/bin/bash
#version 1.1
#2018/7/24
CAT="/bin/cat"
CURL="/usr/bin/curl"
MOBILE_NUMBER=$1 # 手机号码
MESSAGE_UTF8=$3 # 短信内容
MESSAGE(){
${CAT} <<EOF
{
"bizType": 0,
"smsContent": "$MESSAGE_UTF8",
"userMobile": "$MOBILE_NUMBER"
}
EOF
}
# Send it
${CURL} -i --header ‘Content-Type: application/json‘ --header ‘Accept: application/json‘ -X POST -d "$(MESSAGE)" "你们开发提供的短信接口地址"
这里要注意的是传参的问题,在你的开发给你接口一般是用curl命令来调用的,在curl的-d参数中是不能直接用$1的方式来调用位置函数或函数的,首先,编写一个生成脚本后期数据的函数。 这样可以避免出现与shell引用相关的各种麻烦,并且可以更轻松地读取维护脚本,而不是像在尝试中那样在curl的调用行上提供post数据例:
generate_post_data()
{
cat <<EOF
{
"account": {
"email": "$email",
"screenName": "$screenName",
"type": "$theType",
"passwordSettings": {
"password": "$password",
"passwordConfirm": "$password"
}
},
"firstName": "$firstName",
"lastName": "$lastName",
"middleName": "$middleName",
"locale": "$locale"
}
EOF
}
然后在调用curl时很容易使用该函数:
curl -i -H "Accept: application/json" -H "Content-Type:application/json" -X POST --data "$(generate_post_data)" "https://xxx:xxxxx@xxxx-www.xxxxx.com/xxxxx/xxxx/xxxx"
加上执行权限
chmod +x sendSMS.sh
更改拥有人,组
chown zabbix.zabiix sendSMS.sh
./sendSMS.sh 手机号码11位 "" "短信内容:测试"
成功会收到短信
没有短信,先看开发给的短信接口是不是可以正常发短信,可以就用sh -x 来调试脚本哪里有问题
都成功了就可以配置zabbix的控制面板了
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
创建收件人这里定义的就是发送到脚本的$1的内容,点击add添加用户
可以选择报警的严重性来发给不同的人,或者同一严重性发个多个人(中间用,号隔开)
kill掉一个agent
出现这种下图这种问题就是你的脚本执行有问题,单独执行看是否成功。
出现sent表示zabbix发送成功,可还是没有收到短信,可以在脚本里面加上个touch一个文件,看zabbix是否有调用到脚本。在查看一下配置文件中alterscriptspath路径和你脚本路径是不是一样的,脚本的上一级目录名字是不是alterscripts,脚本的有没有x权限,是不是属于zabbix用的。
标签:设置 短信发送 生成 web 方便 sub l命令 添加 控制面板
原文地址:http://blog.51cto.com/12915075/2150569