对于Nagios配置文件结构的一些想法- [Nagios]:
最近工作着实很忙..已经很久没有来写博客了..今天在一阵风大哥的提醒下我才想起我还有这么一个博客..并且发现自己的文章被转载了..还没注明出处- -|||..言归正传..
Nagios的配置文件定义的灵活度和自由度是非常高的,为什么这么说呢,大家可以做一个测试,就是把nagios/etc/objects/下的所有的配置文件全部整合到一起,例如这样做:
- # 所在目录 /usr/local/nagios/etc/objects
- # cat *.cfg > temp.cfg
然后将nagios的主配置文件 nagios.cfg中的如下配置注释掉:
- #cfg_file=/usr/local/nagios/etc/objects/commands.cfg
- #cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
- #cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
- #cfg_file=/usr/local/nagios/etc/objects/templates.cfg
之后添加如下一行:
- cfg_file=/usr/local/nagios/etc/objects/temp.cfg
保存&退出
检查nagios配置文件的逻辑关系是否有误:
- #/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
返回结果必然是:
- Total Warnings: 0
- Total Errors: 0
为什么会这样呢?
Nagios对于objects目录下的配置文件名称没有明确的命名规定,只要文件中的配置定义语法没有问题就可以了。
那么对于这种非常灵活的定义方式,我们可以更加灵活的去运用它。
最近随着需要监控的服务器越来越多,对于nagios配置文件的修改及维护变得越来越麻烦,原因如下:
按照网上很多"教程"的方法来定义配置文件,所有关于hots的定义全部放到了hosts.cfg中,服务的定义全部放倒services.cfg中。在服务器数量变得越来越多时,这两个配置文件也会变得越来越大,增删主机服务也会变得越来越麻烦。在经过思考和试验后,我修改了我的nagios主机和服务配置文件的定义方式:就是以每主机的方式来定义与这台主机所相关的任何配置。举个例子:
创建一个配置文件:10_0_0_1.cfg (以IP地址命名)
其中的定义如下:
- ################ host #################
- define host{
- host_name Autonomy
- alias Autonomy
- address 10.0.0.1
- check_command check-host-alive
- max_check_attempts 5
- check_period 24x7
- contact_groups admins
- }
- ################ services ################
- define service{
- host_name Autonomy
- service_description Check-alive
- check_command check-host-alive
- max_check_attempts 10
- normal_check_interval 3
- retry_check_interval 2
- check_period 24x7
- notification_period 24x7
- contact_groups admins
- }
- define service{
- host_name Autonomy
- service_description IDOL_ACI_Port_9000
- check_command check_tcp!9000
- max_check_attempts 10
- normal_check_interval 3
- retry_check_interval 2
- check_period 24x7
- notification_period 24x7
- contact_groups admins
- }
- define service{
- host_name Autonomy
- service_description IDOL_Index_Port_9001
- check_command check_tcp!9001
- max_check_attempts 10
- normal_check_interval 3
- retry_check_interval 2
- check_period 24x7
- notification_period 24x7
- contact_groups admins
- }
- define service{
- host_name Autonomy
- service_description IDOL_Service_Port_9002
- check_command check_tcp!9002
- max_check_attempts 10
- normal_check_interval 3
- retry_check_interval 2
- check_period 24x7
- notification_period 24x7
- contact_groups admins
- }
- #定义限制告警数
- define hostescalation{
- host_name Autonomy
- first_notification 4
- last_notification 0
- notification_interval 30
- contact_groups sysadmin
- }
- define serviceescalation{
- host_name Autonomy
- service_description IDOL_ACI_Port_9000,IDOL_Index_Port_9001,IDOL_Service_Port_9002
- first_notification 4
- last_notification 0
- notification_interval 30
- contact_groups sysadmin
- }
保存&退出
然后在nagios.cfg中添加:
- cfg_file=/usr/local/nagios/etc/objects/10_0_0_1.cfg
检查nagios配置文件的逻辑关系是否有误:
- #/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
如果语法没有错误肯定是报错的,再以这种方式将其他主机进行定义后即可。
使用这种方式来配置nagios我个人觉得方便了很多,毕竟有些服务器上面运行的服务是一样的,只要将配置文件cp一份修改IP地址即可。
不能说这种配置一定就比常规的配置方法好用,适合就是***的,希望能够对大家有些帮助。
【编辑推荐】