参考自 http://linux.chinaunix.net/bbs/thread-1051835-1-1.html 等
日志 /etc/log/messages
/usr/local/etc/nagios/var/nagios.log
安装minicom rpm 包。运行minicom -s 设置Serial port setup
ttyS0即为串口1。
保存退出。
运行
minicom或直接保存时进入AT命令界面
输入at 显示OK,短信猫已工作。
直接发送短信显示error,修改模式后显示OK,但此时仍无法收到短信,原因未知。
下载gnokii RPM工具包。
安装
配置
#vi /etc/gnokiirc
[global]
port = /dev/ttyS0
model = AT
##注释掉mode = 6510
serial_baudrate = 9600
use_locking = no ;
*****
#gnokii - -identify
测试
gnokii - -sendsms 13636421*** 按提示发送。
或echo -n "test" | /usr/bin/gnokii/ - -sendsms 13636421***。
此时可以收到短信。(测试发现与at指令中设置关系不大)
====================================================
# vi /usr/local/nagios/etc/commands (调试最后阶段发现,有个参数有误导致无法收到短信。)
define command{
command_name host-by-sms ;
command_line /bin/echo -n "$NOTIFICATIONTYPE$ $HOSTNAME$/$HOSTADDRESS$ : host is $HOSTSTATE$ " | /usr/bin/gnokii --sendsms 13636421*** 2>&1 > /dev/null
}
define command{
command_name service-by-sms ;
command_line /bin/echo -n "$NOTIFICATIONTYPE$ $HOSTNAME$/$HOSTADDRESS$ : Service is $SERVICEDESC$ $SERVICESTATE$ " | /usr/bin/gnokii --sendsms 13636421*** 2>&1 > /dev/null
}
定义
contacts或template里的联系方式。
service_notification_commands service-by-sms ;
host_notification_commands host-by-sms ;
调试无误,可选择参数方式定义联系人,可做到针对服务/主机按需联系。命令文档中用$CONTACTPAGER$替换手机号码。
联系方式中定义pager
define contact{
contact_name nagiosadmin ;
use generic-contact ; Inherit
alias Nagios Admin ; Full name
email *** ;
pager 13636421*** ;
}
=====================================================
权限
ll /dev/ttyS0 root uucp 用chown修改为 nagios uucp ,并将nagios 用户添加进uucp组。 (chown -G A,B,C nagios)(调试过程中直接将uucp组改为nagios发现root用户无法用管道发短信,nagios用户无法发送短信。setfacl方式未调试。)
即:
chown �CR nagios:nagios /usr/bin/gnokii
chown �CR nagios:uucp/dev/ttyS1
权限不足的情况下,查看日志看到nagios已经调用service-by-sms无异常却收不到短信。切换nagios用户后使用gnokii发送即报错。
重启nagios服务。运行监控页面的send命令,收到短信。
调试完成。
附件为AT 短信指令集 gnokii rpm包