标签:
不管是用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命令参考python的fab文档。
###########################
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 #表示没有注册
host的name是 前缀_路径_文件名 组成的
-------------------
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
}
Service的name是文件名,也是前缀_路径_名字 组成
###########################
Incgroups:增加或删除对hosts的检查
App:主要用这个里面的
增加一个service就是增加一个incgroups,然后再hosts和services里面同时调用这个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_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
自定义变量通过下划线_开头,前面有HOST、SERVICE、CONTACT这样的前缀。
通过check_command调用:
check_command command_name\
!$_HOSTNAME1$\
!$_SERVICENAME2$\
!$_SERVICEEXTRA_ARGS$
参数用!分割,
_EXTRA_ARGS直接传插件的选项和参数,多个选项用,分割。
###########################
Hosts:
定义主机
Use决定了使用哪些模板中的基础服务。
Hostgroups决定了这个host特有的服务。
在host的hostgroups里添加services的hostgroup_name就是让host具有这个service。
如果包含的模板中有这个service就不用再添加hostgroups了。
Host中的变量要和service里面调用command的变量一样,去掉HOST就可以了。
###########################
Hostgroups:
主机可以属于任何用户定义的主机组
新建之前需要创建一个hostgroups,然后在templates中调用。
###########################
Services:
定义由主机提供的一个或多个服务
Hostgroup_name中的inc和exc开头的定义在incgroups里面。
Check_command使用!来分隔参数。
hostgroup_name决定了这个服务被哪个组中的host调用。
###########################
Servicegroups:
服务可以属于任何用户定义的分组。
###########################
Contacts:增加nagios的用户
定义具体联系人。
###########################
Contactgroups:
发送通知的对象一般是联系人组,一个联系人可以属于多个组。
###########################
Timeperiods:
定义检查hosts和service的时间
00:00-11:59,12:00-23:59 #使用空格来添加多个时间段.
定义24* 7 表示一直监控。
###########################
Escalations:
升级规则,通过升级规则能使nagios通知另一组联系人。
###########################
denpendency:
依赖关系会基于其它对象的状态过滤某个对象的测试或通知。
###########################
标签:
原文地址:http://blog.csdn.net/wowotouweizi/article/details/46274099