然后针对要监测的目标主机建立主机定义,主机定义的项目和内容有很多,所以定义的项目如下:
host_name host_name # 简短的主机名 alias alias # 别名,可以更详细的说明主机 address address # ip地址,当然如果DNS服务可用也可以写名称。如果你不定义该值,nagios 将会用host_name去寻找主机。 parents host_names # 上一节点的名称,也就是指从nagios服务器到被监测主机之间经过的节点, 可以是路由器、交换机、主机等等。这个节点也要定义并且要被nagios监测。 hostgroups # 简短的主机组名称 check_command # 检查命令的简短名称,如果此项留空,nagios将不会去判断该主机是否alive。 max_check_attempts # 当检查命令的返回值不是“OK”时,重试的次数 check_interval # 循环检查的间隔时间。 active_checks_enabled # 是否启用“active_checks” passive_checks_enabled # 是否启用“passive_checks”,及“被动检查” check_period # 检测时间段简短名称,此处只是名称,具体的时间段要写在其他的配置文件 obsess_over_host # 是否启用主机操作系统探测。 check_freshness # 是否启用freshness测试。freshness测试是对于启用被动测试模式的主机而言 的,其作用是定期检查该主机报告的状态信息,如果该状态信息已经过期, freshness将会强制作主机检查。 freshness_threshold # fressness的临界值,单位为秒。 如果定义为0,则为自动定义。 event_handler # 当主机发生状态改变时,采用的处理命令的简短的名字 (可以在commands.cfg中对其定义) event_handler_enabled # 是否启用event_handler low_flap_threshold # 抖动的下限值。所谓抖动,主要定义了这样一种现象:在一段时间内,主机 (或服务)的状态值频繁发生变化,类似一个问题风暴或者一个网络问题。 high_flap_threshold # 抖动的上限值 flap_detection_enabled # 是否启用抖动检测 process_perf_data # 是否启用processing of performance data retain_status_information # 程序重启时,是否保持主机状态相关的信息 retain_nonstatus_information # 程序重启时,是否保持主机状态无关的信息 contact_groups # 联系人组(这个组会在contactgroup.cfg文件中定义),在此组中的联系人都 会受到该主机的告警提醒信息。 notification_interval # 告警临界值。达到此次数之后,才会发送该机的报警提醒信息。 notification_period # 告警时间段 notification_options # 告警包括的状态变化结果 notifications_enabled # 是否启用告警提醒功能 stalking_options [o,d,u] # 持续状态检测参数,o = 持续的UP状态, d = 持续的DOWN状态,and u = 持续的UNREACHABLE状态.当然在企业的监测环境中很多项目可能都不一定能够用上,这里我只是通过一个简单的例子说明其用法就好了。所以修改/usr/local/nagios/etc/objects/localhost.cfg文件,于该文件的“HOST DEFINITION”部分,在原来的基础上增加自己的主机定义内容:
define host{ use linux-box ; Inherit default values from a template host_name localhost ; The name we're giving to this server alias RHEL5u2 ; A longer name for the server address 192.168.1.220 ; IP address of the server }同时在“HOST GROUP DEFINITION”部分,将192.168.1.220这台主机加入到linux-servers这个hostgroup中。如果有多台主机都属于这个hostgroup,可以用逗号将其隔开。以下是我添加的内容:
define hostgroup{ hostgroup_name linux-servers ; The name of the hostgroup alias Linux Servers ; Long name of the group members 192.168.1.220 ; Comma separated list of hosts that belong to this group }而在最后的“SERVICE DEFINITION”部分,所有未注释的部分实际上是关于对localhost也就是本机所要监测的内容。其格式和语法就是我在提到Nagios监测原理方面举例说明的内容。对于localhost来说不需要修改了,但是可以把他的内容复制到自定义的cfg档中并照葫芦画瓢修改成对192.168.1.220这台 主机的命令定义。我们下面就来做这样的操作:
在/usr/local/nagios/etc/objects目录下针对监测的服务建立服务定义,建立一个新的文件remotehosts.cfg,加入下面内容:
下面是自定义的:
define service{ use generic-service host_name localhost service_description CPU Load check_command check_nrpe!check_load }表示监测远程主机的CPU负载。
如果要监测当前在远程主机的磁盘空间,则加入:
define service{ use generic-service host_name localhost service_description /dev/sda3 Free Space check_command check_nrpe!check_disk /dev/sda3 }如果要监测当前远程主机的僵死进程数,则加入:
define service{ use generic-service host_name localhost service_description Zombie Processes check_command check_nrpe!check_zombie_procs }