技术开发 频道

各种性能监测在企业中部署和实现方法

  所以按照上面所叙述的原理,我们开始第二步和第三步的配置,为使用check_nrpe插件建立Nagios命令定义以及服务定义:

  修改配置文件/usr/local/nagios/etc/objects/command.cfg并增加下面的内容:

define command{
command_name check_nrpe
command_line $USER1$
/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

  然后针对要监测的目标主机建立主机定义,主机定义的项目和内容有很多,所以定义的项目如下:

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
}
0
相关文章