温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

nagios配置文件详解

发布时间:2020-06-28 08:22:19 来源:网络 阅读:12683 作者:单人旅行 栏目:移动开发

 Nagios的配置文件 

一、Nagios的主配置文件时nagios.cfg 

 

nagios配置文件详解

 

参数的设置格式为<parameter>=<value> 有些值是可以重复出现的 其中常用的参数的说明如下:

 

  1. Log_file:设置nagios的日志文件  
  2. cfg_file: Nagios对象定义的相关文件,此参数可重复使用多次以指定多个文件; 
  3. cfg_dir:  设定Nagios对象定义的相关文件所在的目录,此目录中的所有文件都会被作为对象
  4. 定义的文件;此参数可重复使用多次以指定多个目录; 
  5. resource_file: 设定Nagios附加的宏定义的相关文件; 
  6. status_file: 设定Nagios存储所有主机和服务当前状态信息的文件; 
  7. status_update_interval: 设定status_file指定的文件中状态信息的更新频率; 
  8. service_check_timeout: 设定服务检测的超时时间,默认为60秒; 
  9. host_check_timeout: 设定主机检测的超时时间,默认为30秒; 
  10. notification_timeout: 设定通知信息发送尝试的超时时间,默认为30秒; 

二、resource_file 变量存储文件  rescource.cfg 

在主配置文件中,参数resource_file用于定义所有用户变量(即“宏”)的存储文件,它用于存储对象定义中的可以访问的额外信息,此文件中可以定义的宏可多达32个,它们分别为$USER1$,$USER2$...$USER32,这些宏一般在check命令中引用。通常情况下$USER1$用于引用Nagios插件所在目录这个路径信息,因此,一般不建议修改其值。

$USER1$=/usr/local/nagios/libexec

Nagios 中事先定义了一些宏,它的值依赖于安全上下文,例如:

 

  1. HOSTNAME: 用于引用host_name指定所定义的主机的主机名; 
  2. HOSTADDRESS: 用于引用host对象中的address指令的值,它通常可以为IP地址或主机名; 
  3. HOSTDISPLAYNAME: 用于引用host对象中alias指令的值,用以描述当前主机,
  4. 即主机的显示名称; 
  5. HOSTSTATE:某主机的当前状态,为UP,DOWN,UNREACHABLE三者之一; 
  6. HOSTGROUPNAMES: 用于引用某主机所属的所有主机组的简名,主机组名称之间以逗号分隔; 
  7. LASTHOSTCHECK:用于引用某主机上次检测的时间和日期,Unix时间戳格式; 
  8. LASTHOSTSTATE:用于引用某主机前一次检测时的状态,为UP,DOWN或UNREACHABLE三者之一; 
  9. SERVICEDESC: 用于引用对应service对象中的desccription指令的值; 
  10. SERVICESTATE: 用于引用某服务的当前状态,为OK,WARNING,UNKOWN或CRITICAL 
  11. SERVICEGROUPNAMES: 用于引用某服务所属的所有服务组的简名,服务组名称之间以逗号分隔; 
  12. CONTACTNAME: 用于引用某contact对象中contact_name指令的值; 
  13. CONTACTALIAS: 用于引用某contact对象中alias指令的值; 
  14. CONTACTEMAIL: 用于引用某contact对象中email指令的值; 
  15. CONTACTGROUPNAMES: 用于引用某contact所属的所有contact组的简名,contact组名称
  16. 之间以逗号分隔; 

三、 templates.cfg 定义一些通用的模板,被其他对象引用 

 

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

定义一个主机

 

  1. define host{  #定义一个主机       定义基本信息 被其他主机引用  
  2.         name                         generic-host    ; #主机名称 
  3.         notifications_enabled           1        ; Host notifications are enabled 
  4.         event_handler_enabled           1       ; Host event handler is enabled  
  5.         flap_detection_enabled          1       ; Flap detection is enabled 不稳定检测 
  6.         failure_prediction_enabled      1       ; Failure prediction is enabled 启用故障预测  
  7.         process_perf_data               1    ; Process performance data 进程性能数据 
  8.         retain_status_information       1        ; Retain status information across program restarts  保持状态信息到程序重新启动  
  9.         retain_nonstatus_information    1           ; Retain non-status information across program restarts  
  10. notification_period  24x7   ; Send host notifications at any time 发送通知的时段 
  11.         register                        0           ;  模板         

定义主机  引用上面的主机属性 

 

  1. define host{ 
  2. name     linux-server   ; The name of this host template 
  3. use  generic-host   ;  引用前面定义的主机 继承它的属性值    
  4. check_period     24x7    ; 检测周期  
  5. check_interval   5   ; 检测频率 
  6. retry_interval   1   ; 重试频率  
  7. max_check_attempts   10  ; 最大确认次数  
  8.     check_command       check-host-alive ; 检测命令  
  9. notification_period  workhours  ;  故障通知时间段  
  10. notification_interval    0   ; 发送故障通知的频率,0表示只发送一次   
  11. notification_options     d,u,r   ;主机处于什么状态下发送通知  
  12. contact_groups   admins  ;   通知人组  
  13. register     0   ;  

其中的notification_options用于指定当主机处于什么状态时应该发送通知。其各状态及其表示符如下:

—— DOWN

—— UNREACHABLE

—— UP(host recovery)

—— flapping

—— 调试宕机时间开始或结束

define hostgroup {       #定义主机组

hostgroup_name         webservers       #主机组名

alias                 Linux web servers   #主机组别名 

members                webserver1      #主机组成员 也可以包含其他主机组

}

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

定义一个服务 

 

  1. define service{ 
  2.         name                     generic-service    ;          
  3.         active_checks_enabled           1       ;
  4.       passive_checks_enabled       1     ; 
  5.         parallelize_check          1  ;    并行检查启动 提高性能  
  6.         failure_prediction_enabled      1     ;  启用故障预测 
  7.         process_perf_data               1    ;  过程性能数据 
  8.         check_period                    24x7     ;    检测时段  
  9.         max_check_attempts              3    ; 检测3次确定状态   
  10.         normal_check_interval           10   ; 正常检测周期  
  11.         retry_check_interval            2    ; 重试检测周期  
  12.         contact_groups                  admins   ; 通知组 
  13.         notification_options     w,u,c,r     ;通知状态  
  14.         notification_interval           0    ;发送通知的周期  
  15.         notification_period             24x7     ; 发送通知的时间段  
  16.          register                        0        ;  
  17.         } 

其中的notification_options用于指定当服务处于什么状态时应该发送通知。其各状态及其表示符如下:

—— WARNING

—— UNKNOWN

—— CRITICAL

—— OK(recovery)

—— flapping

—— 调试宕机时间开始或结束 

 

  1. define service 
  2. host_name     webserver1 主机名称 可以给多台主机定义同一服务 
  3. service_description     www 
  4. check_command    check_http 检测命令  
  5. check_interval     10        检测周期  
  6. check_period     24x7       检测时间段   
  7. retry_interval      3         重试周期  
  8. max_check_attempts 3       重试检测次数  
  9. notification_interval 30       通知周期  
  10. notification_period 24x7       通知时间段   
  11. notification_options w,c,u,r        通知状态     
  12. contact_groups linux-admins      通知人组  
  13. }  

#定义服务组 

 

  1. define servicegroup{      #定义服务组  
  2. servicegroup_name webservices       
  3. alias All services related to web 
  4. members   webserver1,www,webserver2,www  

一个服务组的成员通常是某主机上的某服务,其指定时使用<host>,<service>的格式,多个服务也使用逗号分隔。

Webwervices 服务组的成员有两个 主机webserver1上的www服务 和主机webserver2上的www服务

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

定义命令对象

 

  1. define command{  
  2. command_name    check_local_swap   命令名字  
  3. command_line    $USER1$/check_swap -w $ARG1$ -c $ARG2$ 命令行 } 

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

  

定义时段对象 

 

  1. define timeperiod 
  2. timeperiod_name     workinghours    名字      
  3. alias      Working Hours, from Monday to Friday  描述名   
  4. monday 09:00-17:00              多个时间跨度  
  5. tuesday 09:00-17:00 
  6. wednesday 09:00-17:00 
  7. thursday 09:00-17:00 
  8. friday 09:00-17:00 

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

    

定义联系人对象

   

 

  1. define contact  { 
  2. contact_name    zhanghui          #名称 
  3. alias           Mage Education     #描述名  
  4. email          linuxedu@magedu.com   邮箱地址  
  5. host_notification_period  workinghours    主机通知时段     
  6. service_notification_period  workinghours   服务通知时段  
  7. host_notification_options  d,u,r            主机通知状态  
  8. service_notification_options  w,u,c,r         服务通知状态  
  9. host_notification_commands     host-notify-by-email  主机通知命令  
  10. service_notification_commands   notify-by-email    服务通知命令  

notify-service-by-email notify-host-by-email  都是命令对象 在命令文件里会定义

定义联系人祖对象 

 

  1. define contactgroup 
  2. contactgroup_name   linux-admins 
  3. alias                    Linux Administrators 
  4. members            zhanghui,zhang  

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI