Nagios - 配置

本文不做为手把手配置说明文档,请谨慎参考.

 

一、布局,明白了要怎样布局,理解nagios的配置文档结构,接下来会省去很多时间,并且可以自定义自己的脚本来批量配置一定重复项。

 

 

Nagios配置文件分为几大块:
1: 主配置文件(nagios.cfg)
Nagios服务启动就是读取这个文件,然后根据这个文件加载所有其它的配置文件,并按照一定的格式写成一个缓存文件,以加快程序运行时的访问速度.

2: CGI
如果你想要在WEB上管理一些任务,或者停止等对现行任务有改动的操作,权限就很重要了,而有时候报权限错误,大部份是因为这个文件或者文件夹及文件权限没有赋给正确的权限所致。

3: Object Definition Files
这里面又包括hosts,service,hostgroups,contacts,contactgroups,
commands,etc 即主机,服务,联系,等,可以分成不同的组,不同的服务,很灵活,也很方便,后期主要维护的就是这些配置文件,配置规范了后,可以省很多维护的功夫

4: Resource Files
存储用户自定义的宏命令,存储一些敏感的信息(如password等),这些信息一般不对CGI生效(这个基本上用不到)

好了,最主要谈谈 3: Object Definition files
我一般可分为下面几个配置文件
localstandard.cfg
groups.cfg
hosts.cfg
servies.cfg
commands.cfg
timeperiods.cfg
contacts.cfg

依照字面上意思应该大多都明明,其中nagios配置文件时支持继承,这样定义不同个性的检查属性是非常方便的

localstandard.cfg最主要定义各种不同的检查属性,主机属性,服务属性,即专门定义属性的一个文件,这样配置主机,服务,组的时候即可以定义用哪个属性来检查该项.

定义属性和定义要检查的项不同的一项就是register,如果是属性,或者你也可以把它理解为模板,它的值就为0,默认是1

下面来个示例参考一下:
定义host属性(模板,这里只是一个简单的示例,还有更多的参数或才继承)
define host{
    name                           xxx
    notifications_enabled          1
    event_handler_enabled          1
    flap_detection_enabled         1
    failure_prediction_enabled     1
    process_perf_data              1
    retain_status_information      1
    retain_nonstatus_information   1
    notifictaion_period            24x7
    register                       0
}

要想知道上面这些属性的意思,查看模板配置文件或者文档都有解释,这里就不说了

定义主机
define host{
    use         xxx
    host_name   test1
    alias       do_test1
    address     192.168.0.11
}

注意到没有,在模板中,有name,而在host里面没有,其时在定义主机的时候也可以加name,不过没有必要了,因为它下面没有再下一级了,我们还可以定义一个模块,name为xxx2,然后use 后面跟xxx,下面定义不同的一些属性,这样,不同的主机列用不同的模板,维护起来就非常方便了.

定义组相对简单,如下:
define hostgroup{
    hostgroup_name    T1
    alias             T1-0001
    members           test1,test2,...
}

看到没有,这个没有什么特别的了,当然也可以定义一组属性,然后hostgroup来继承.

接下来是commands.cfg
讲commands.cfg前先要了解一下service,host是定义主机,而sercvie自然是定义哪些主机要检查哪些服务了,好下:
define service{
    use        S1  #这里的'S1'也是一个模板属性,和host的模板属性类似
    host_name  test1,test2,...
    service_description     POP3
    check_command           check_pop!-p 110
    notification_enabled    1
}

要讲的commands.cfg和这里的chech_command有关系了,这里用到的check_pop,或者其它的命令,必须是commands.cfg里定义好的,才可以在这里使用,就像只有定义好属性(模板)后你才可以继承一样,你可以看一下默认的commands.cfg里面有哪些,基本上常用的它都帮你定义好了
==================================

OK,配置文件基本上就是这样的,再去熟悉一下属性里的各个参数的用途,就可以开始配置使用了.那,如果有大批量的添加或者改动,每次改动这些是不是非常麻烦呢,见意你先按照nagios给出的模板先配置几台试试,等掌握了后再开始思考要怎样批量的添加或者修改

批量修改:
前提:
已定义好localstandard.cfg(即各属性模板)
所有检查的命令都有在commands.cfg里都有定义好

那接下来就可以开始工作了:
GROUPTEMPLATE
HOSTTEMPLATE
SERVICETEMPLATE
最主要的,或者说,重复得最多的,无非就是主机,服务,组了,
这三个模块是你首先需要提取出来了,举个例子如下:
GROUPTEMPLATE
###################
define hostgroup{
    hostgroup_name        #GROUPTYPE#-servers
    alias            #GROUPTYPE# Servers
    members            #HOSTLIST#
}
HOSTTEMPLATE
####################
define host{
    use            #HOSTSEVICE#
    host_name        #HOSTNAME#
    alias            #HOSTNAME#
    address            #HOSTIP#
}
SERVICETEMPLATE
####################
define service{
    use            normal-service
    host_name        #HOSTLIST#
    service_description    #SERVICETYPE-DESC#
    check_command        #SERVICETYPE-COM#
    notifications_enabled    #SINGLE#
}

看到上面这些参数了吗,哦,有一个normal-servcie,因为这里大多数主机基本上检查都是一样的,所以我只定义了一个normal-service,如果你有多样性,这里也可以定义一个变量

另,可以定义hostgroup,servicegroup,但我这里只定义了hostgroup,暂时够用了。

把所有的这些变量看一下,很多都是重复的吧,这样你就可以定义list啦,即列表,然后根据列表来写脚本,批量生成这三个文件,然后注意nagios.cfg里要include这三个配置文件,脚本很好写,基本上就是一个sed的替换而已.

后面再复习一下nagios一些重要的参数项,或者有什么新的变化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值