zabbix本身支持GSM modem短信猫发送短信的,不过测试发现,它只能发送英文的,带中文的就发送失败,也不知道原因在哪里,为此头疼了好多年啊。新版本5.0依旧是这样,查了很多资料,似乎是编码的问题,可是不知道怎么去改,如果有朋友知道怎么弄,请不吝赐教哦。
偶尔在网络上发现了gnokii这个工具,这个可以来发送中文短信,另外还有一个minicon,可以调端口号什么的,也有用处。gnokii挺好用的,写个脚本就能发送短信了,完美啊。
短信猫买得比较早,是那种串口的,现在有USB的了,还只能用移动的手机卡,淘宝上也卖的,似乎现在禁止卖这玩意了吧,估计是被短信轰炸机给吓怕了。
串口的短信猫只能找那种带串口的服务器,有些新服务器已经没这个口子了。你的zabbix可以是虚机哦,在虚机设置里边添加串口就可以了。我也不知道它是哪个串口,反正全部加上就对了。
Centos里边的/dev/ttyS0,每次重启权限就变了,那该怎么办呢?方法如下:
vi /etc/rc.local
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local
chomd 777 /dev/ttyS0
chown zabbix /dev/ttyS0
~
~
[root@zabbix ~]# chmod +x /etc/rc.d/rc.local #这个别忘了,不然不会启用哦
[root@zabbix ~]#
安装gnokii
提前下载好gnokii软件包
# tar -zxf gnokii-0.6.31.tar.gz
# ./configure
# make && make install
# whereis gnokii
# gnokii: /usr/local/bin/gnokii
配置gnokii
将源码包里的: Docs/sample目录下的gnokiirc 文件(这个配置文件是gnokii的配 置文件)拷贝到/etc下,我的配置文件如下:
# cat /etc/gnokiirc | grep -v '#' | grep -v ^$
[global]
port = /dev/ttyS0 #短信猫所在接口[/color]
model = AT
initlength = default
connection = serial
use_locking = no
[color=#FF4000]serial_baudrate = 9600 #短信猫波特率,国内一般默认为9600
smsc_timeout = 10
[flags]
[gnokii]
[xgnokii]
allow_breakage = 0
[gnokiid]
bindir = /usr/local/sbin/ #gnokii路径
[connect_script]
TELEPHONE = 12345678
[disconnect_script]
[logging]
debug = on
rlpdebug = off
xdebug = off
[phone_fake]
port = foobar
model = fake
connection = serial
[fake_driver]
sms_inbox = /tmp/sms
测试短信猫
# echo "中文短信测试" | gnokii --sendsms 189xxxxxxxx
gnokii 脚本
这个脚本是别人写的哦。记得放在alterscript路径下。
/usr/lib/zabbix/alertscripts/sms.sh
#!/bin/bash
#SMS with gnokii
PATH=/bin:/sbin/:/usr/bin:/usr/sbin:/usr/local/bin/
export LANG=en_US.UTF-8
LOGFILE='/tmp/zabbix_sms.log'
DT=$(date +%F' '%T)
echo "***************************START:$DT************************************" >> $LOGFILE
echo 'Recipient='$1'' >> $LOGFILE
echo 'Subject='$2'' >> $LOGFILE
echo 'Message='$3'' >> $LOGFILE
echo `` >> $LOGFILE
MOBILE_NUMBER=`echo "$1"`
# Log it
echo 'Send Command:' >> $LOGFILE
echo 'echo $3 | gnokii --sendsms $MOBILE_NUMBER ' >> $LOGFILE
echo `` >> $LOGFILE
# Send it
echo 'Sending Process:' >> $LOGFILE
echo "$3" | gnokii --sendsms "$MOBILE_NUMBER" 1>>$LOGFILE 2>&1
#EOF
DT=$(date +%F' '%T)
echo "***************************STOP:$DT************************************" >> $LOGFILE
echo -e '\n' >> $LOGFILE
zabbix配置media type
首先在media types中创建,类型为脚本,然后输入脚本名称。
然后去Users中为用户添加media,并设备手机号。
最后去配置一个action,测试OK。
觉得有帮助的,请点个关注哦,谢谢。
本文暂时没有评论,来添加一个吧(●'◡'●)