zabbix利用短信猫发短信(总结)
-
短信猫简介
所谓短信猫,其实是一种用来收发短信的设备,他和我们用的手机一样,需要手机SIM卡的支持,在需要收发短信的时候,在短信猫里面插入一张我们平时用的手机卡,插上电源,通过(USB或者串口、网口)数据线和电脑相连,在电脑的应用管理软件中就可以实现短信收发的功能!
-
安装短信猫
-
首先因为我的服务器是虚拟机,在VMware虚拟化上,这就涉及到物理机的USB口或者串口对虚拟机做映射,把短信猫安装在物理机后的USB口,在VMware客户端对USB口做映射,映射到虚拟机,基本思想
4.虚拟机命令行查看
查看驱动设备
# dmesg | grep ttyUSB 查看驱动设备以及内核记录
# usb 2-2.1: FTDI USB Serial Device converter now attached to ttyUSB0
# ls /dev/ttyUSB*
# /dev/ttyUSB0
5. 通过gnokii调用短信猫来进行短信告警发送
yum install gcc gettext perl-XML-Parser glib* -y
# tar zxf intltool-0.41.1.tar.gz
# cd tar zxf intltool-0.41.1
# make && make install
# tar -zxf gnokii-0.6.31.tar.gz
# cd gnokii-0.6.31
# ./configure
# make && make install
# which gnokii
# /usr/local/bin/gnokii
6. 将源码包里的: Docs/sample目录下的gnokiirc 文件(这个配置文件是gnokii的配 置文件)拷贝到/etc下,我的配置文件如下:
[global]
port = /dev/ttyUSB0 #短信猫所在接口[/color]
model = AT
initlength = default
connection = serial
use_locking = no
serial_baudrate = 115200 #短信猫波特率,金迪短信猫一般默认为115200,坑死我啦,金迪出厂设置就是那个样子的
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
7.测试短信猫
# echo "短信测试" | gnokii --sendsms 159xxxxx
8./usr/local/bin/gnokii --identify 这条也行
9.zabbix通过调用gnokii脚本,执行短信发送,我的脚本如下
#!/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 | /usr/local/bin/gnokii --sendsms $MOBILE_NUMBER ' >> $LOGFILE
echo `` >> $LOGFILE
# Send it
echo 'Sending Process:' >> $LOGFILE
echo "$3" | /usr/local/bin/gnokii --sendsms "$MOBILE_NUMBER" 1>>$LOGFILE 2>&1
#EOF
DT=$(date +%F' '%T)
echo "***************************STOP:$DT************************************" >> $LOGFILE
echo -e '\n' >> $LOGFILE
回到服务器命令行输入
chown -R zabbix:zabbix /usr/local/bin/gnokii
chown -R zabbix:zabbix /dev/ttyUSB0
AlertScriptsPath=/usr/lib/zabbix/alertscripts 脚本的执行目录
命令行输入
把上面脚本贴到sms.sh 脚本 在给执行权限 chmod +x sms.sh
9.在web页面添加脚本参数 zabbix3.0以上默认传递参数有三个
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
明确三个步骤:1.报警类型媒介
2.用户
3.动作
4.故障---恢复配置类似
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障 !!!
告警主机 : {HOSTNAME1}
告警时间 : {EVENT.DATE} {EVENT.TIME}
告警等级 : {TRIGGER.SEVERITY}
告警信息 : {TRIGGER.NAME}
告警项目 : {TRIGGER.KEY1}
问题详情 : {ITEM.NAME}:{ITEM.VALUE}
当前状态 : {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID : {EVENT.ID}
希望我的总结能帮到你,欢迎大家指正
本文出自 “我姓韩却把温暖给了你” 博客,请务必保留此出处http://zabbixmiss.blog.51cto.com/11993283/1947845