设为首页 收藏本站
查看: 1793|回复: 0

nagios配置文件详解

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-23 08:41:17 | 显示全部楼层 |阅读模式

Nagios的配置文件


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




DSC0000.png




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





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


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


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


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


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





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






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






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






定义一个主机





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






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





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


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


d —— DOWN


u —— UNREACHABLE


r —— UP(host recovery)


f —— flapping


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




define hostgroup {       #定义主机组


hostgroup_name         webservers       #主机组名


alias                 Linux web servers   #主机组别名


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


}






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




定义一个服务





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


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


w —— WARNING


u —— UNKNOWN


c —— CRITICAL


r —— OK(recovery)


f —— flapping


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







  • 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      通知人组  
  • }  


#定义服务组





  • define servicegroup{      #定义服务组  
  • servicegroup_name webservices      
  • alias All services related to web
  • members   webserver1,www,webserver2,www  
  • }


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


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




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




定义命令对象





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


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


  


定义时段对象





  • 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
  • }




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


   




定义联系人对象


   





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


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




定义联系人祖对象







  • define contactgroup
  • {
  • contactgroup_name   linux-admins
  • alias                    Linux Administrators
  • members            zhanghui,zhang  
  • }




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


本文出自 “单人旅行” 博客,请务必保留此出处http://5122542.blog.iyunv.com/5112542/999613

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-142360-1-1.html 上篇帖子: nagios+check_logifiles实现日志监控 下篇帖子: 为Nagios编写自己的插件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表