zabbix学习笔记:zabbix监控之短信报警

zabbix学习笔记:zabbix监控之短信报警


zabbix的报警方式有多种,除了常见的邮件报警外,特殊情况下还需要设置短信报警和微信报警等额外方式。本篇文章向大家介绍短信报警。


短信报警设置

短信报警的设置和邮件报警的思路是类似的,主要划分为一下几个过程:

1.编写短信报警的脚本;
2.在zabbix的操作界面添加短信报警媒介;
3.对指定的用户添加短信报警方式;
4.设置动作何时进行短信报警;

我们逐个来分解这些过程:


编写短信报警的脚本

短信报警借助于第三方平台,与邮件报警指定第三方的邮件服务器类似,我们需要指定短信发送服务器,这里我们以中国网建SMS短信通为例,其官网地址如下:
http://sms.webchinese.com.cn/api.shtml

网站介绍了如何申请注册用户,设定登录密钥,以及相关api和返回码的使用说明,通过这个教程可以很方便的学会如何使用脚本发送报警信息。

1.在zabbix server所在的服务器上设定好脚本所在目录/usr/local/etc/alertscripts:

mkdir -p /usr/local/etc/alertscripts/
  • 1

编写脚本文件,需要明晰如下几个重要因素:

1.接受方
2.发送内容
3.相关验证信息:Uid 和 Key
4.如何发送
  • 1
  • 2
  • 3
  • 4

在网站的api介绍中可以看到使用说明:
这里写图片描述

以及返回状态码:
这里写图片描述

根据不同的状态码我们可以排查失败时的原因。
接下来就是发送脚本sendSMS.sh的内容:

#!/bin/bash

# 脚本的日志文件
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编码处理
MESSAGE_ENCODE=$(echo "$MESSAGE_UTF8" | ${XXD} -ps | sed 's/\(..\)/%\1/g' | tr -d '\n')

# Uid和Key的值需要自行修改,http://www.smschinese.cn/api.shtml
# Uid 网站用户名
# Key 接口秘钥
Uid="#############"    
Key="#############"   #接口秘钥可以在网站中查询到
# SMS API
URL="http://utf8.sms.webchinese.cn/?Uid=${Uid}&Key=${Key}&smsMob=${MOBILE_NUMBER}&smsText=${MESSAGE_ENCODE}"

# Send it
set -x
${CURL} -s --connect-timeout ${TIMEOUT} "${URL}"

接口秘钥Key的值可以在网站中查询到:
这里写图片描述

接下来做修改目录和文件的所有人、权限:

chmod +x sendSMS.sh 
chown zabbix.zabbix /tmp/SMS.log   #记录日志文件
chown zabbix.zabbix /usr/local/etc/alertscripts/ -R

可以测试下短信发送是否可达:

./sendSMS.sh  1********** "" "尊敬的客户,您的订单已出库发货,正在配送中,请您耐心等待。"

可以看到短信已经收到:
这里写图片描述


在zabbix的操作界面操作

1.添加报警媒介:
这里写图片描述

2.对指定的用户添加该报警方式,通知指定接受短信的手机号码:
这里写图片描述
3.在动作中添加何时触发发送短信:
这里写图片描述

测试

我们可以通过关闭一个zabbix_agentd客户端,然后触发报警:

[root@vs155 sbin]# killall -USR2 zabbix_agentd

可以看到果断时间就收到了短信报警:
这里写图片描述

 

https://blog.csdn.net/linux_player_c/article/details/54971470


短信报警的介绍到这里就结束了,但是个人觉得资费还是太贵。可以作为一种辅助报警方式,如果考虑到成本,可以降低指定动作的报警频率。

posted @ 2021-01-29 15:54  seasonzone  阅读(845)  评论(1编辑  收藏  举报