著名的开源服务监系统nagios拥有强大的功能,可谓服务器监控之神。它的功能之一就是故障告警。一旦出现问题,它可以第一时间通知工作人员。那么如此强大的告警提醒功能如果出现了问题,要如何定位问题?配置文档中的相关参数又表示什么意义呢?下面我会逐个向大家介绍。
问题阐述:无法发送告警提醒信息(email、传真、短信等)
解决方法:顺藤摸瓜,根据告警提醒功能运作的原理,一层一层去检查设置。
<!--[if !supportLineBreakNewLine]-->ps:如果你还没有设置你的告警,也可以顺着我的叙述来设置你的告警 ^-^
(1)所有提醒任务首先要查看hosts.cfg或者services.cfg,在这两个文件中有如下几个参数关系到提醒:
notifications_enabled : 是否开启提醒功能。1为开启,0为禁用。注,一般,这个选项会在主配置文件(nagios.cfg)中定义,效果相同。
contact_groups: 定义接受提醒的联系人组,如果hosts.cfg文件中所有的条件都符合,那么提醒任务将会继续检查contactgroup.cfg文件。
notification_interval: 重复发送提醒信息的最短间隔时间。默认间隔时间是60分钟。如果这个值设置为0,将不会发送重复提醒。
notification_period: 发送提醒的时间段。非常重要的主机(服务)我定义为7×24,一般的主机(服务)就定义为上班时间。如果不在定义的时间段内,无论什么问题发生,都不会发送提醒。
notification_options: 这个参数定义了发送提醒包括的情况:d = 状态为DOWN, u = 状态为UNREACHABLE , r = 状态恢复为OK , f = flapping。,n=不发送提醒。
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->
综上,如果要提醒信息顺利通过hosts.cfg文件,并且发出提醒的话,要满足:
notifications_enabled 值为1
contact_groups 的组已经定义正确。见(3)
notification_period 定义的时间段包括出问题的时间,检查方法如见(2)
notification_options 定义的包括需要提醒的状态改变。
(2)检查timeperiod的配置,一般在主配置文件中,或者在timeperiod.cfg等配置文件中可以找到:
define timeperiod { timeperiod_name 24x7 alias 24 Hours A Day, 7 Days A Week sunday 00:00-24:00 monday 00:00-24:00 tuesday 00:00-24:00 wednesday 00:00-24:00 thursday 00:00-24:00 friday 00:00-24:00 saturday 00:00-24:00 } |
这个配置就是定义了一个名字是"24×7"的时间段,包括从周一到周日中每天的24小时。这个时间段里,系统会将故障告警信息发送给联系人。
(3)检查contactgroup.cfg的配置
define contactgroup{
contactgroup_name novell-admins
alias Novell Administrators
members jdoe,rtobert,tzach
}
|
此配置定义了一个名字叫 novell-admins 的联系人组,包括成员 jdoe,rtobert,tzach 等三个人。你要确定(1)中contact_groups 的值在这里有定义。
(4)要检查各个联系人的配置,就要查看contacts.cfg文件:
define contact{
contact_name jdoe
alias John Doe
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email jdoe@localhost.localdomain
pager 555-5555@pagergateway.localhost.localdomain
address1 xxxxx.xyyy@icq.com
address2 555-555-5555
}
|
这个配置文件例子顶一了一个jdoe的联系方式和另外一些参数。注意这里的参数也可能会造成提醒信息没有发送。email、pager、address分别对应该联系人的email地址、传真地址、其他地址等等。这里解释一下其他相关的参数:
host_notification_period: 主机类提醒发送时间。定义主机类提醒发给该联系人的时间段。在hosts.cfg中已经定义了一个notification_period, 那个定义是是定义所有该主机需要提醒的人接受提醒的时间段。这里的这个时间段则是说明这个人接受提醒信息的时间段,也就是说提醒发送的时间必须同时满足主 机配置文件和此配置文件中的时间段才会正常发送给联系人jdoe。这个参数对于那些24小时3班导的人,或者10点之后起床的老板,是很有用的。
service_notification_period: 这个参数类似于host_notification_period,不多说了。
host_notification_commands: 这个参数说明发送主机提醒信息的命令。呵呵,如果以上的配置都没有问题,但是没有接受到提醒的话,要留意这里!
service_notification_commands: 这个参数说明发送服务提醒信息的命令。
host_notification_options:定义接受提醒的主机状态改变:d = DOWN , u = UNREACHABLE, r=UP or OK, f = flapping,n =什么都不发送。
service_notification_options: 定义接受提醒的服务状态改变。参数意义同host_notification_options。
(5) 小结。根据以上的分析,如果关于服务状态改变、提醒信息发送时间段、联系人的联系地址等都没有问题,那么可能的问题就是发送提醒信息的命令出现问题。查看 这些命令之前,请确定nagios系统的服务器上有mail或sendmail等发送邮件的软件包,且工作正常。如果你有一些,或者用了其他的提醒 脚本,请确定其工作正常。
另外,nagios还包括一个名为 Notification Escalations 的模块,用来扩展已经很强大的提醒体系。
举例说明一下这个模块的功能:你定义一台主机的提醒,首次发现问题不提醒,直到连续三次重复出现问题时,主机管理员A会收到提醒,然后过了一段时间,问题还没有修复,这是又继续发送第4次提醒给A(此时A共收到2次提醒),在第五次提醒的时候,就发给了管理员B,…… ,在第十次提醒的时候就发给了管理员的老板…… 如果你用到这个模块,也需要检查其是否配置正确。
(6)提醒命令
一般的提醒命令名称如 xxx-notify-by-xxx,他只是一个名字,具体是用什么来实现这个提醒的具体工作的,要查看command.cfg文件中,关于此命令的定义,举个例子:
# 'notify-by-email' command definition
define command{
command_name notify-by-email
command_line /usr/bin/printf "%b" "*****Nagios2.9*****/n/nNotification Type: $NOTIFICATIONTYPE$/n/nService: $SERVICEDESC$/nHost: $HOSTALIAS$/nAddress: $HOSTADDRESS$/nState: $SERVICESTATE$/n/nDate/Time: $LONGDATETIME$/n/nAdditional Info:/n/n$SERVICEOUTPUT$" | /bin/mail -s "** $NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$ }
|
上例中,定义了一个名字为"notify-by-email"的命令,这个命令的内容,就是command_line对应的命令行定义的。如果你是用独立的脚本来完成提醒功能,可能会类似下面的情况:
#host-notify-by-sms
define command { command_name host-notify-by-sms
command_line /nagios/sms.sh
}
|
分享到:
相关推荐
CentOS配置Nagios监控平台,监控Linux客户端,Windows客户端详细配置,以及如何设置微信报警
利用微信API,使用python脚本来实现nagios报警时向微信发送报警通知
Nagios+Cacti短息报警+邮件转发
Nagios金笛短信猫报警配置需要的相关包,下载后用rpm命令安装
使用nagios监控服务器,并将告警事件通过邮件发送给管理员
nagios运用飞信实现短信报警监控服务器
Nagios使用SendEmail发送邮件 在Nagios环境下面是用sendmail发送报警邮件方案
nagios监控部署+邮箱报警—出问题报错可以看看不错的教程!
服务器监控利器。欢迎指教!nagios实时报警,很好用哦。
nagios
Nagios监控平台之三:MRTG监控交换机流量
再说报警功能,如果监控系统发现问题不能报警那就没有意义了,所以报警也是nagios很重要的功能之一。但是,同样的,nagios自身也没有报警部分的代码,甚至没有插件,而是交给用户或者其他相关开源项目组去完成。 ...
Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。 Nagios的主要功能特点: - 监视网络服务 (SMTP, POP3, HTTP, NNTP, PING...
报警通知:当出现问题时,Nagios 可以通过电子邮件、短信、电话等方式向管理员发送报警通知。这样,管理员可以在问题发生时及时采取措施,确保系统的稳定性和可用性。 可扩展性:Nagios 可以根据需要进行灵活配置和...
Nagios是调用微信公共平台的api接口发送报警邮件。在正式操作之前,有几个准备工作要做。先安装nagios,可以使用我提供的nagios一键安装脚本。然后是去微信公共平台申请一个企业号,我申请时填的是组织,没有认证也...
目录 一、 Nagios介绍 1 二、 Nagios的工作原理 1 三、 Nagiso的安装及下载 2 ...五、 使用nconf对nagios进行配置 5 5.1 删除主机 5 5.2 添加主机 6 5.3监控主机的基本服务 9 5.4监控本机的对外提供服务...5.5 添加报警 11
-Nagios飞信linux短信报警脚本配置.
linux下nagios安装配置,及用到的插件。
nagios监控linux主机、web等各种服务,并实现飞信自动报警