nagios监控部署(一)(5)
时间:2016-09-11 19:44 来源:未知 作者:liangzh 点击:次
define hostgroup
{
hostgroup_name webservers
alias Linux web servers
members webserver1
}
4、定义服务对象
“服务”即某“主机”所提供的功能或资源对象,如HTTP服务、存储空间资源或CPU负载等。服务附属于主机,每一个服务使用服务名来标识,此服务名要求在特定的主机上具有唯一性。每一个服务对象还通常定义一个检测命令及如何进行问题通知等。
define service
{
host_name webserver1
service_description www
check_command check_http
check_interval 10
check_period 24x7
retry_interval 3
max_check_attempts 3
notification_interval 30
notification_period 24x7
notification_options w,c,u,r
contact_groups linux-admins
}
其中的notification_options用于指定当服务处于什么状态时应该发送通知。其各状态及其表示符如下:
w —— WARNING
u —— UNKNOWN
c —— CRITICAL
r —— OK(recovery)
f —— flapping
s —— 调试宕机时间开始或结束
与主机对象有所不同的是,有时个,多个主机可能会提供同样的服务,比如多台服务器同时提供Web等。因此,在定义服务对象时,其host_name可以为逗号隔开的多个主机。
服务可以被划分成组,这些组即服务组。每一个服务组对象一般包含一个全局唯一的简名、一个描述名以及属于这个组的成员。此外,一个服务组的成员通常是某主机上的某服务,其指定时使用<host>,<service>的格式,多个服务也使用逗号分隔。服务组的定义例子如下:
define servicegroup
{
servicegroup_name webservices
alias All services related to web
members webserver1,www,webserver2,www
}
5、定义命令对象
“命令”用于描述如何对主机或服务进行状态检测。服务对象的定义包含两个指令:名字(command_name)和命令行(command_line);名字用于标识此命令对象,命令行则是执行检测时真正要执行的命令。
当命令对象用于检测其它对象时,其通常需要用到额外的参数以标识要检测的某特定对象,此时,命令对象需要以command_name[!arg1][!arg2][...]的语法格式进行引用。因此,命令对象的定义中,命令行指令中通常会用到宏$ARG1$, $ARG2$...,对应用于接收[!arg1][!arg2][...]传递而来的参数。
如下命令对象的定义:
define command
{
command_name check_local_swap
command_line $USER1$/check_swap -w $ARG1$ -c $ARG2$
}
如下的服务中使用上面定义的命令对象来检测服务对象:
define service
{
host_name localhost
service_description Swap Usage
check_command check_local_swap!20!10
}
6、定义“时段”对象
“时段”用于定义某“操作”可以执行或不能执行的日期和时间跨度,如工作日内的每天8:00-18:00等,其可以在多个不同的操作中重复引用。一个时段对象的定义包含一个全局唯一的名称标识及一个或多个时间跨度。例如:
define timeperiod
{
timeperiod_name workinghours
alias Working Hours, from Monday to Friday
monday 09:00-17:00
tuesday 09:00-17:00
wednesday 09:00-17:00
thursday 09:00-17:00
friday 09:00-17:00
}
其中,时间的指定格式有许多方式:
日历时间:格式为YYYY-MM-DD,如2012-04-21;
日期:如 April 21;
每月的某一天:如 day 21,指每月的21号;
每月的第几个周几:如 saturday 1,指每月的第一个星期六; (责任编辑:liangzh) |