Nagios配置文件的结构
创始人
2024-07-24 00:30:17
0

  对于Nagios配置文件结构的一些想法- [Nagios]:

  最近工作着实很忙..已经很久没有来写博客了..今天在一阵风大哥的提醒下我才想起我还有这么一个博客..并且发现自己的文章被转载了..还没注明出处- -|||..言归正传..

  Nagios的配置文件定义的灵活度和自由度是非常高的,为什么这么说呢,大家可以做一个测试,就是把nagios/etc/objects/下的所有的配置文件全部整合到一起,例如这样做:

  1.   # 所在目录 /usr/local/nagios/etc/objects  
  2.  
  3.   # cat *.cfg > temp.cfg  
  4.  

  然后将nagios的主配置文件 nagios.cfg中的如下配置注释掉:

  1.   #cfg_file=/usr/local/nagios/etc/objects/commands.cfg  
  2.  
  3.   #cfg_file=/usr/local/nagios/etc/objects/contacts.cfg  
  4.  
  5.   #cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg  
  6.  
  7.   #cfg_file=/usr/local/nagios/etc/objects/templates.cfg  
  8.  

  之后添加如下一行:

  1.   cfg_file=/usr/local/nagios/etc/objects/temp.cfg  
  2.  

  保存&退出

  检查nagios配置文件的逻辑关系是否有误:

  1.   #/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg  
  2.  

  返回结果必然是:

  1.   Total Warnings: 0  
  2.  
  3.   Total Errors: 0  
  4.  

  为什么会这样呢?

  Nagios对于objects目录下的配置文件名称没有明确的命名规定,只要文件中的配置定义语法没有问题就可以了。

  那么对于这种非常灵活的定义方式,我们可以更加灵活的去运用它。

  最近随着需要监控的服务器越来越多,对于nagios配置文件的修改及维护变得越来越麻烦,原因如下:

  按照网上很多"教程"的方法来定义配置文件,所有关于hots的定义全部放到了hosts.cfg中,服务的定义全部放倒services.cfg中。在服务器数量变得越来越多时,这两个配置文件也会变得越来越大,增删主机服务也会变得越来越麻烦。在经过思考和试验后,我修改了我的nagios主机和服务配置文件的定义方式:就是以每主机的方式来定义与这台主机所相关的任何配置。举个例子:

  创建一个配置文件:10_0_0_1.cfg (以IP地址命名)

  其中的定义如下:

  1.   ################ host #################  
  2.  
  3.   define host{  
  4.  
  5.   host_name Autonomy  
  6.  
  7.   alias Autonomy  
  8.  
  9.   address 10.0.0.1  
  10.  
  11.   check_command check-host-alive  
  12.  
  13.   max_check_attempts 5  
  14.  
  15.   check_period 24x7  
  16.  
  17.   contact_groups admins  
  18.  
  19.   }  
  20.  
  21.   ################ services ################  
  22.  
  23.   define service{  
  24.  
  25.   host_name Autonomy  
  26.  
  27.   service_description Check-alive  
  28.  
  29.   check_command check-host-alive  
  30.  
  31.   max_check_attempts 10  
  32.  
  33.   normal_check_interval 3  
  34.  
  35.   retry_check_interval 2  
  36.  
  37.   check_period 24x7  
  38.  
  39.   notification_period 24x7  
  40.  
  41.   contact_groups admins  
  42.  
  43.   }  
  44.  
  45.   define service{  
  46.  
  47.   host_name Autonomy  
  48.  
  49.   service_description IDOL_ACI_Port_9000  
  50.  
  51.   check_command check_tcp!9000  
  52.  
  53.   max_check_attempts 10  
  54.  
  55.   normal_check_interval 3  
  56.  
  57.   retry_check_interval 2  
  58.  
  59.   check_period 24x7  
  60.  
  61.   notification_period 24x7  
  62.  
  63.   contact_groups admins  
  64.  
  65.   }  
  66.  
  67.   define service{  
  68.  
  69.   host_name Autonomy  
  70.  
  71.   service_description IDOL_Index_Port_9001  
  72.  
  73.   check_command check_tcp!9001  
  74.  
  75.   max_check_attempts 10  
  76.  
  77.   normal_check_interval 3  
  78.  
  79.   retry_check_interval 2  
  80.  
  81.   check_period 24x7  
  82.  
  83.   notification_period 24x7  
  84.  
  85.   contact_groups admins  
  86.  
  87.   }  
  88.  
  89.   define service{  
  90.  
  91.   host_name Autonomy  
  92.  
  93.   service_description IDOL_Service_Port_9002  
  94.  
  95.   check_command check_tcp!9002  
  96.  
  97.   max_check_attempts 10  
  98.  
  99.   normal_check_interval 3  
  100.  
  101.   retry_check_interval 2  
  102.  
  103.   check_period 24x7  
  104.  
  105.   notification_period 24x7  
  106.  
  107.   contact_groups admins  
  108.  
  109.   }  
  110.  
  111.   #定义限制告警数  
  112.  
  113.   define hostescalation{  
  114.  
  115.   host_name Autonomy  
  116.  
  117.   first_notification 4  
  118.  
  119.   last_notification 0  
  120.  
  121.   notification_interval 30  
  122.  
  123.   contact_groups sysadmin  
  124.  
  125.   }  
  126.  
  127.   define serviceescalation{  
  128.  
  129.   host_name Autonomy  
  130.  
  131.   service_description IDOL_ACI_Port_9000,IDOL_Index_Port_9001,IDOL_Service_Port_9002  
  132.  
  133.   first_notification 4  
  134.  
  135.   last_notification 0  
  136.  
  137.   notification_interval 30  
  138.  
  139.   contact_groups sysadmin  
  140.  
  141.   }  
  142.  

  保存&退出

  然后在nagios.cfg中添加:

  1.   cfg_file=/usr/local/nagios/etc/objects/10_0_0_1.cfg  
  2.  

  检查nagios配置文件的逻辑关系是否有误:

  1.   #/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg  
  2.  

  如果语法没有错误肯定是报错的,再以这种方式将其他主机进行定义后即可。

  使用这种方式来配置nagios我个人觉得方便了很多,毕竟有些服务器上面运行的服务是一样的,只要将配置文件cp一份修改IP地址即可。

  不能说这种配置一定就比常规的配置方法好用,适合就是***的,希望能够对大家有些帮助。

【编辑推荐】

Nagios飞信linux短信报警脚本配置

Nagios安装记录

如何用Nagios监控远程系统

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...