zabbix监控之短信报警
编写短信报警脚本:
在zabbix安装目录这个文件夹里(alertscripts),创建sendSMS.sh脚本
cat sendSMS.sh
#!/bin/bash
#
# Filename: sendSMS.sh
# Revision: 1.0
# Date: 2017/11/21
# Author: LiuGuangShun
# Email:
# Website: http://zabbix
# Description: zabbix短信告警脚本
# Notes: 短信网关使用了创蓝短信
#
# 脚本的日志文件
LOGFILE="/tmp/SMS.log"
:>"$LOGFILE"
exec 1>"$LOGFILE"
exec 2>&1
MOBILE_NUMBER=$1 # 手机号码
MESSAGE_UTF8=$3 # 短信内容
XXD="/usr/bin/xxd"
CURL="/usr/bin/curl"
TIMEOUT=5
# 短信内容要经过URL编码处理,除了下面这种方法,也可以用curl的--data-urlencode选项实现。
MESSAGE_ENCODE=$(echo "$MESSAGE_UTF8" | ${XXD} -ps | sed 's/\(..\)/%\1/g' | tr -d '\n')
# Uid和Key的值需要自行修改
# Uid 网站用户名
# Key 接口秘钥
Uid="*******"
Key="******"
# SMS API
URL="http://sapi.253.com/msg/HttpBatchSendSM?account=${Uid}&pswd=${Key}&mobile=${MOBILE_NUMBER}&msg=${MESSAGE_ENCODE}&needstatus=false"
# Send it
set -x
${CURL} -s --connect-timeout ${TIMEOUT} "${URL}"
脚本移动到zabbix脚本目录并增加执行权限:
mv sendSMS.sh /usr/local/zabbix/share/zabbix/alertscripts/
cd /usr/local/zabbix/share/zabbix/alertscripts/
chmod +x sendSMS.sh
修改zabbix.conf:
grep alertscripts /usr/local/zabbix/etc/zabbix_server.conf
lertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
更改短信日志文件所属者
chown zabbix:zabbix /tmp/SMS.log
测试短时是否可达:
./sendSMS.sh 13********* "" "尊敬的客户,您的订单已出库发货,正在配送中,请您耐心等待。"
可以看到短信已经收到:
在zabbix的操作界面操作
1、添加报警媒介:
2、对指定的用户添加该报警方式,通知指定接受短信的手机号码:
3、在动作中添加何时触发发送短信:
测试
通过关闭一个zabbix_agentd客户端,然后触发报警:
/etc/init.d/zabbix_agentd stop
收到报警短信: