作为初学者,要想取得进步,成为高手,首先应该了解自己的不足之处.
全部博文(117)
分类: 系统运维
2011-05-12 18:28:59
1. 软件简介
(移动用户必须开通飞信业务;如果发给谁,一定是此人的飞信好友!!飞信机器人)
将飞信下载到nagios的目录下
pwd
/usr/local/nagios
tar zxvf fetion20091117-linux.tar.gz
cd fx
测试:
LD_LIBRARY_PATH=. ./fetion --mobile=源手机号 --pwd=源飞信密码 --to=目的手机号 --msg-utf8=test
发送成功后可进行整合。发送不成功请关注网站的说明
2. 编辑命令文件
cd /usr/local/nagios/etc/objects
vim commands.cfg
增加host-notify-by-fetion和service-notify-by-fetion命令的定义,根据实际情况修改中文部分。(直接copy到Linux中配置。)
#############################################################################################
# feixin #
#############################################################################################
define command{
command_name host-notify-by-fetion
command_line LD_LIBRARY_PATH=/usr/local/nagios/fx /usr/local/nagios/fx/fetion --mobile=源手机号 --pwd=源飞信密码 --to=目的手机号 --msg-utf8="Host $HOSTSTATE$ alert for $HOSTNAME$! on '$LONGDATETIME$'" $CONTACTPAGER$
}?
define command{
command_name service-notify-by-fetion
command_line LD_LIBRARY_PATH=/usr/local/nagios/fx /usr/local/nagios/fx/fetion --mobile=源手机号 --pwd=源飞信密码 --to=目的手机号 --msg-utf8="$HOSTADDRESS$ $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ on $LONGDATETIME$" $CONTACTPAGER$
}?
另一例
define command{
command_name notify-host-by-sms
command_line LD_LIBRARY_PATH=/usr/local/fx/ /usr/local/fx/fetion --mobile=源手机号 --pwd=密码 --to=$CONTACTPAGER$ --msg-utf8="$HOSTSTATE$!$NO
TIFICATIONTYPE$ FROM $HOSTADDRESS$($HOSTNAME$)\nMore Detail:$HOSTOUTPUT$"
}
#注意这个函数,指定到联系人组
define command{
command_name notify-service-by-sms
command_line LD_LIBRARY_PATH=/usr/local/fx/ /usr/local/fx/fetion --mobile= --pwd= --to=$CONTACTPAGER$ --msg-utf8="$SERVICESTATE$!
$NOTIFICATIONTYPE$ FROM $SERVICEDESC$ in $HOSTADDRESS$($HOSTNAME$)\nMore Detail:$SERVICEOUTPUT$"
}
3. 配置联系人
编辑contact.cfg,添加短信通知
vim contacts.cfg
######################feixinbaojing######################
define contact{
contact_name ninglianjie
use generic-contact
alias Nagios Admin
email
service_notification_commands notify-service-by-email,service-notify-by-fetion
host_notification_commands notify-host-by-email,host-notify-by-fetion
}
再修改###CONTACT GROUPS###组的信息,添加新创建的联系人。
define contactgroup{
contactgroup_name admins
alias Nagios Administrators
members nagiosadmin,ninglianjie
}
4. 主机监控
如果监控主机意外down掉,则报警,如果是正常关闭,则不会报警。
提醒任务首先要查看hosts.cfg,在这个文件中有如下几个参数关系到提醒,要注意这个参数可能在templates.cfg模板文件中已经配置。
notifications_enabled
是否开启提醒功能。1为开启,0为禁用。
contact_groups
定义接受提醒的联系人组,如果hosts.cfg文件中所有的条件都符合,那么提醒任务将会继续检查contacts.cfg文件,以及contactgroup(联系人组)的定义。
notification_interval
重复发送提醒信息的最短间隔时间。默认间隔时间是60分钟。如果这个值设置为0,将不会发送重复提醒。
notification_period
发送提醒的时间段。非常重要的主机(服务)定义为7×24。如果不在定义的时间段内,无论什么问题发生,都不会发送提醒。
notification_options
定义了发送提醒包括的情况:d=状态为DOWN,u=状态为UNREACHABLE,r=状态恢复为OK,f=flapping,n=不发送提醒。
配置顺序:
如果要提醒信息顺利通过hosts.cfg文件,并且发出提醒的话,要满足:
1) notifications_enabled值为1(这个值可能在模板中已经定义)
2) contact_groups的组已经定义正确(contacts.cfg配置文件)
3) notification_period定义的时间段包括出问题的时间(查看模板中,use的时间段定义——timeperiods.cfg)
4) notification_options定义的包括需要提醒的状态改变
5. 服务监控
注意:模板文件中的register
register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
意思是设定非注册。此项register为0值的时候Nagios会理解到该定义段是主机类而为实体主机的定义段。因此,在自定义主机类段的时候,记得也要加入这一个属性,用来向Nagios表明该段为主机类段。
vim services.cfg(新编译的软件,没有这个;测试的话,可以在localhost.cfg中定义)
利用模板local-service
define service {
use local-service
host_name localhost
service_description check_tcp 80
check_command check_tcp!80
}