程序员开发实例大全宝库

网站首页 > 编程文章 正文

zabbix5通过gnokii调用短信猫发送中文短信告警

zazugpt 2024-08-17 02:11:18 编程文章 23 ℃ 0 评论

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。

觉得有帮助的,请点个关注哦,谢谢。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表