使用的短信平台是云片网,接口请看官网短信接口API文档,有示例
进入server服务器存放脚本的文件夹,默认路径是
[root@test zabbix]# cat zabbix_server.conf |grep -Ev '^$|^#'
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=jason_zhang
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts ####默认路径
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
创建短信脚本 sendsms.sh
#!/bin/bash
export LANG=en_US.UTF-8
mobile=$(echo $1|sed 's/,/",\n"/g')
text=$3
apikey="xxxxxxxxxxx" #####自己的云片网账户apikey
#mobile="$mobile"
#text="$text"
echo "get user info:"
curl --data "apikey=$apikey" "https://sms.yunpian.com/v2/user/get.json"
echo "\nsend sms:"
curl --data "apikey=$apikey&mobile=$mobile&text=$text" \
"https://sms.yunpian.com/v2/sms/single_send.json"
更改sendsms.sh的权限和所属
chmod +x sendsms.sh
chown -R zabbix:zabbix sendsms.sh
登录云片网创建短信的签名和模板
创建符合自己报警短信的模板(报警模板和恢复模板)注意格式不要用回车和空格
报警模板
【C5电竞】故障#TRIGGER_STATUS#告警主机#HOST_NAME#告警时间#EVENT_DATE#告警等级#TRIGGER_SEVERITY#告警信息#TRIGGER_NAME#问题详情#ITEM_NAME##ITEM_VALUE# 恢复模板
【C5电竞】恢复#TRIGGER_STATUS#服务器#HOSTNAME1##TRIGGER_NAME#已恢复!告警主机#HOST_NAME#告警时间#EVENT_DATE##EVENT_RECOVERY_TIME#告警等级#TRIGGER_SEVERITY#告警信息#TRIGGER_NAME#
登录zabbix-server web端创建报警媒介
脚本参数
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
添加短信接收人的电话,多个电话用逗号隔开
创建触发动作
注意格式
报警
默认标题
【C5电竞】故障
消息内容
故障{TRIGGER.STATUS},告警主机:{HOSTNAME1}, 告警时间:{EVENT.DATE} {EVENT.TIME}, 告警等级:{TRIGGER.SEVERITY}, 告警信息: {TRIGGER.NAME},问题详情:{ITEM.NAME}:{ITEM.VALUE}
恢复
默认标题
【C5电竞】恢复
消息内容
恢复{TRIGGER.STATUS},服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!告警主机:{HOST.NAME} ,告警时间:{EVENT.DATE}{EVENT.RECOVERY.TIME},告警等级:{TRIGGER.SEVERITY},告警信息:{TRIGGER.NAME}
测试,关掉一台agent主机,五分钟后
参考
http://blog.51cto.com/qicheng0211/1551105
http://blog.51cto.com/ielts/1913029
https://www.cnblogs.com/kevingrace/p/7400583.html