nagios 的配置文件

不管是用nagios监控本地还是远程服务器,都需要对nagios进行配置。

nagios这种可插拔的配置非常简单易懂。


Nagios的配置文件结构如下:

nagios的安装包sample-config/有配置的参考

/usr/local/Nagios/etc/

nagios.cfg

cgi.cfg

resource.cfg

object/

############################

nagios.cfg:

指定对象配置文件的位置:

cfg_file=/usr/local/nagios/etc/hosts.cfg

cfg_dir=/usr/local/nagios/etc


check_external_commands=1 #使用外部命令


############################

fabfile:定义fab命令的.

具体怎样写fab命令参考pythonfab文档。


###########################

Templates表示模板,分两种:

Use顺序:

Ohtpl

Bhtpl

Htpl


-----------------

Hosts:

App:主要使用这个文件夹里的模板

创建hostgroups之后创建这个hosts模板在hosts中调用。


define host{

use <template-name1>,\

<template-name2> #use表示在这里嵌套调用其它的更底层的模板。

name bhtpl/htpl_<dir>_<file-name> #templates/hosts/目录下的路径dir来命名。

hostgroups +<hostgroup-name1>,\ #+开头表示添加

<hostgroup-name2> #这些文件定义在hostgroups

alias <file-name-upper> - <alias-name> #将这个文件名大写,然后取个别名

_<name> <value> #这里可以定义某些变量的默认值

register 0 #表示没有注册

hostname是 前缀_路径_文件名 组成的


-------------------

Services

App:主要用这个里面的模板。


defineservice{

use template-name1>,\

<template-name2> #嵌套调用更基础的模板

name <file-name> #和文件名一样,都是用cstpl/stpl开头加路径加名字

check_command <check_XXX>\

!–options $VAR$ \

!-options/- -options $VAR$ \

$ARGS$ #用!分割参数,同时用$表示一个参数

servicegroups +<servicegroups-name1>,\ #+开头表示添加

<servicegroups-name2> #这些服务分组名在servicesgroup定义。

alias <file-name-upper> - <alias-name> #将这个文件名大写,然后取个别名

_<VAR> value #在这里定义变量的默认值

register 0 #注册为0

}

Servicename是文件名,也是前缀_路径_名字 组成


###########################

Incgroups:增加或删除对hosts的检查

App:主要用这个里面的

增加一个service就是增加一个incgroups,然后再hostsservices里面同时调用这个incgroups就可以了。


define hostgroup{

hostgroup_name inc_<dir>_<file-name> #inc为前缀

alias <name> - <alias>

register 0

}


define hostgroup{

hostgroup_name exc_<dir>_<file-name> #exc为前缀

alias <name> - <alias>

register 0

}


############################

Commands:

定义宏与外部程序的映射关系。


#说明命令用法

#

#说明参数有哪些

#

#说明返回值

definecommand{


command_name

command_name


command_line

command_line

   

}

definehost{


host_name

host_name


alias

alias


display_name

display_name


address

address


parents

host_names


hourly_value

#


hostgroups

hostgroup_names


check_command

command_name


initial_state

[o,d,u]


max_check_attempts

#


check_interval

#


retry_interval

#


active_checks_enabled

[0/1]


passive_checks_enabled

[0/1]


check_period

timeperiod_name


obsess_over_host|obsess

[0/1]


check_freshness

[0/1]


freshness_threshold

#


event_handler

command_name


event_handler_enabled

[0/1]


low_flap_threshold

#


high_flap_threshold

#


flap_detection_enabled

[0/1]


flap_detection_options

[o,d,u]


process_perf_data

[0/1]


retain_status_information

[0/1]


retain_nonstatus_information

[0/1]


contacts

contacts


contact_groups

contact_groups


notification_interval


#再次发出通知的时间间隔,分钟。0表示不重新发送。


first_notification_delay

#


notification_period

timeperiod_name#再次发送通知的时间。


notification_options

[d,u,r,f,s]


notifications_enabled

[0/1]


stalking_options

[o,d,u]


notes

note_string


notes_url

url


action_url

url


icon_image

image_file


icon_image_alt

alt_string


vrml_image

image_file


statusmap_image

image_file


2d_coords

x_coord,y_coord


3d_coords

x_coord,y_coord,z_coord

   

}

definehostgroup{


hostgroup_name

hostgroup_name


alias

alias


members

hosts


hostgroup_members

hostgroups


notes

note_string


notes_url

url


action_url

url

   

}


defineservice{


host_name

host_name


hostgroup_name

hostgroup_name


service_description

service_description


display_name

display_name


parents

service_descriptions


hourly_value

#


servicegroups

servicegroup_names


is_volatile

[0/1]


check_command

command_name


initial_state

[o,w,u,c]


max_check_attempts

#


check_interval

#


retry_interval

#


active_checks_enabled

[0/1]


passive_checks_enabled

[0/1]


check_period

timeperiod_name


obsess_over_service|obsess

[0/1]


check_freshness

[0/1]


freshness_threshold

#


event_handler

command_name


event_handler_enabled

[0/1]


low_flap_threshold

#


high_flap_threshold

#


flap_detection_enabled

[0/1]


flap_detection_options

[o,w,c,u]


process_perf_data

[0/1]


retain_status_information

[0/1]


retain_nonstatus_information

[0/1]


notification_interval

#


first_notification_delay

#


notification_period

timeperiod_name


notification_options

[w,u,c,r,f,s]


notifications_enabled

[0/1]


contacts

contacts


contact_groups

contact_groups


stalking_options

[o,w,u,c]


notes

note_string


notes_url

url


action_url

url


icon_image

image_file


icon_image_alt

alt_string

   

}


defineservicegroup{


servicegroup_name

servicegroup_name


alias

alias


members

services


servicegroup_members

servicegroups


notes

note_string


notes_url

url


action_url

url

   

}


definecontact{


contact_name

contact_name


alias

alias


contactgroups

contactgroup_names


minimum_value

#


host_notifications_enabled

[0/1]


service_notifications_enabled

[0/1]


host_notification_period

timeperiod_name主机故障通知联系人的时间


service_notification_period

timeperiod_name服务故障通知联系人的时间


host_notification_options

[d,u,r,f,s,n]


service_notification_options

[w,u,c,r,f,s,n]


host_notification_commands

command_name


service_notification_commands

command_name


email

email_address


pager

pager_numberor pager_email_gateway


addressx

additional_contact_address


can_submit_commands

[0/1]


retain_status_information

[0/1]


retain_nonstatus_information

[0/1]

   

}

definecontactgroup{


contactgroup_name

contactgroup_name


alias

alias


members

contacts


contactgroup_members

contactgroups

   

}

definetimeperiod{


timeperiod_name

timeperiod_name


alias

alias


[weekday]

timeranges


[exception]

timeranges


exclude

[timeperiod1,timeperiod2,...,timeperiodn]

   

}

definehostescalation{


host_name

host_name


hostgroup_name

hostgroup_name


contacts

contacts


contact_groups

contactgroup_name


first_notification

#正常规则的第几次通知开始激活这个升级规则。


last_notification

#0表示升级规则持续到主机正常。


notification_interval

#


escalation_period

timeperiod_name


escalation_options

[d,u,r]

   

}

defineserviceescalation{


host_name

host_name


hostgroup_name

hostgroup_name


service_description

service_description


contacts

contacts


contact_groups

contactgroup_name


first_notification

#


last_notification

#


notification_interval

#


escalation_period

timeperiod_name


escalation_options

[w,u,c,r]

   

}

definehostdependency{


dependent_host_name

host_name


dependent_hostgroup_name

hostgroup_name


host_name

host_name


hostgroup_name

hostgroup_name


inherits_parent

[0/1]


execution_failure_criteria

[o,d,u,p,n]


notification_failure_criteria

[o,d,u,p,n]


dependency_period

timeperiod_name

   

}

defineservicedependency{


dependent_host_name

host_name


dependent_hostgroup_name

hostgroup_name


servicegroup_name

servicegroup_name


dependent_servicegroup_name

servicegroup_name


dependent_service_description

service_description


host_name

host_name


hostgroup_name

hostgroup_name


service_description

service_description


inherits_parent

[0/1]


execution_failure_criteria

[o,w,u,c,p,n]


notification_failure_criteria

[o,w,u,c,p,n]


dependency_period

timeperiod_name

   

}


command_line中使用宏和参数

$USER1$… 变量宏

$ARG1$… 参数宏

这些宏定义在/usr/local/Nagios/etc/resource.cfg

自定义变量通过下划线_开头,前面有HOSTSERVICECONTACT这样的前缀。

通过check_command调用:

check_command command_name\

!$_HOSTNAME1$\

!$_SERVICENAME2$\

!$_SERVICEEXTRA_ARGS$

参数用!分割,

_EXTRA_ARGS直接传插件的选项和参数,多个选项用,分割。


###########################

Hosts:

定义主机


Use决定了使用哪些模板中的基础服务。

Hostgroups决定了这个host特有的服务。


hosthostgroups里添加serviceshostgroup_name就是让host具有这个service

如果包含的模板中有这个service就不用再添加hostgroups了。

Host中的变量要和service里面调用command的变量一样,去掉HOST就可以了。


###########################

Hostgroups:

主机可以属于任何用户定义的主机组

新建之前需要创建一个hostgroups然后在templates中调用。


###########################

Services:

定义由主机提供的一个或多个服务


Hostgroup_name中的incexc开头的定义在incgroups里面。

Check_command使用!来分隔参数。

hostgroup_name决定了这个服务被哪个组中的host调用。


###########################

Servicegroups

服务可以属于任何用户定义的分组。

###########################

Contacts:增加nagios的用户

定义具体联系人。


###########################

Contactgroups:

发送通知的对象一般是联系人组,一个联系人可以属于多个组。


###########################

Timeperiods

定义检查hostsservice的时间


00:00-11:59,12:00-23:59 #使用空格来添加多个时间段.

定义24* 7 表示一直监控。


###########################

Escalations:

升级规则,通过升级规则能使nagios通知另一组联系人。


###########################

denpendency:

依赖关系会基于其它对象的状态过滤某个对象的测试或通知。




###########################


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值