读书人

用 Nagios 对您服务器全面监控(Plugis

发布时间: 2012-07-15 20:20:06 作者: rapoo

用 Nagios 对你服务器全面监控(Plugis 和安装和配置)

完成了 Nagios 的基本平台安装,我们现在来说说 Plugis 和安装和配置.

官网插件的最新版本为 nagios-plugins-1.4.12 .sourceforge.net 被封,你照样还得通过其他方法得到这个插件.

就拿 check_ping 这个来举例吧.首先会在 etc/objects/commands.cfg 这个文件这样定义:

#'check-host-alive'command definitiondefine command{        command_name    check-host-alive        command_line    $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5        }

然后我们会在 etc/objects/localhost.cfg 这个文件里发现这样的字眼

check_command check-host-alive

.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; }这样在你 Nagios 的web页面上会看到 localhost 这个主机状态为up.

?

那在 Nagios 里如何调用这些可以独立工作的插件呢?

Nagios.3.X 和 Nagios.2.X 的配置上还是有一点小差别的.在这篇里我将会用例子讲述如何定义 commands,host 和 services.我们通过一个监控 ssh 的服务来具体说明.

我有一台远程主机,开放了 ssh 服务,并且端口改为 33220,现在要监控这个主机的这个服务.

首先我们要先了解 check_ssh 的用法,输入 h 可以查看帮助

./check_ssh -H x.x.x.x -p 33220SSH OK - OpenSSH_4.5p1 FreeBSD-20061110 (protocol 2.0)

.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; }好,我们先来定义 commands

?

vi etc/objects/commands.cfg#'check_ssh'command definitiondefine command{        command_name    check_ssh        command_line    $USER1$/check_ssh -H $   $HOSTADDRESS$ -p $ARG1&        }

在 command_line 的最后面我们添加 -p $ARG1$

接着我们来定义 host .在 Nagios.3.x 里面,etc 目录下将会有 cgi.cfg , nagios.cfg,resource.cfg 几个配置文件和一个 objects 目录.我们要自定义服务器,我们先修改 nagios.cfg 这个文件,把这一样的注释取消

cfg_dir=/usr/local/nagios/etc/servers

这样我们可以在 servers 这个目录下添加我们自定义服务器的配置文件,分类管理,适合大型网络.当然如果你的服务器不多,你就完全可以随便在哪弄一个配置文件然后再 nagios.cfg 里面声明即可 ^0^

# vi etc/servers/myhost.cfgdefine host {use                     linux-serverhost_name myhostalias myhostaddress x.x.x.xcheck_command check-host-alive}define service {use                             local-servicehost_name myhostservice_description           SSHcheck_period 24x7max_check_attempts 2normal_check_interval 3retry_check_interval 2notification_interval 10notification_period 24x7notification_options w,u,c,rcheck_command check_ssh!33220}

完成这样的定义,我们在web上就可以看到这个host的状态的ssh服务的监控了.

现在来说明下 define host 的一些参数

—————

define host{

host_name host_name??? #简短的主机名称

alias alias??? #别名,可以更详细的说明主机

address address??? #ip地址,当然你如果足够信任你的DNS的话,也可以写名称。如果你不定义这个值,nagios将会用host_name去寻找主机。

parents host_names??? #上一节点的名称,也就是指从nagios服务器到被监控主机之间经过的节点,可以是路由交换机、主机等等。当然,这个节点也要定义,并且要被nagios监控。

hostgroups hostgroup_names??? #主机组名称,简短的

check_command command_name??? #检查命令的简短名称,如果此项留空,nagios将不会去判断该主机是否alive。

max_check_attempts 整数??? #当检查命令的返回值不是“OK”时,重试的次数

check_interval 数字??? #循环检查的间隔时间。

active_checks_enabled [0/1]??? #是否启用“active_checks”

passive_checks_enabled [0/1]??? #是否启用“passive_checks”,及“被动检查”

check_period timeperiod_name??? #检测时间段简短名称,注意这个只是个名称,具体的时间段要写在其他的配置文件中哦!

obsess_over_host [0/1]??? #是否启用主机操作系统探测。

check_freshness [0/1]??? #是否启用freshness测试。freshness测试是对于启用被动测试模式的主机而言的,其作用是定期检查该主机报告的状态信息,如果该状态信息已经过期,freshness将会强制作主机检查。

freshness_threshold? 数字???? #fressness的临界值,单位为秒。 如果定义为0,则为自动定义。

event_handler command_name??? #当主机发生状态改变时,采用的处理命令的简短的名字(可以在commands.cfg中对其定义)

event_handler_enabled [0/1]??? #是否启用event_handler

low_flap_threshold? 数字??? #抖动的下限值。这里我简单解释一下抖动的含义,它定义了这样一种现象:在一段时间内,主机(或服务)的状态值频繁的发生变化,类似一个问题风暴或者一个网络问题。

high_flap_threshold 数字?? #抖动的上限值

flap_detection_enabled [0/1]??? #是否启用抖动检测

process_perf_data [0/1]??? #是否启用processing of performance data

retain_status_information [0/1]??? #程序重启时,是否保持主机状态相关的信息

retain_nonstatus_information [0/1]??? #程序重启时,是否保持主机状态无关的信息

contact_groups contact_groups??? #联系人组(这个组会在contactgroup.cfg文件中定义),在此组中的联系人都会受到该主机的告警提醒信息。

notification_interval? 整数??? #告警临界值。达到此次数之后,才会发送该机的报警提醒信息。

notification_period timeperiod_name?? #该机的告警时间段

notification_options [d,u,r,f]??? #该机告警包括的状态变化结果

notifications_enabled [0/1]??? #是否启用告警提醒功能

stalking_options [o,d,u]??? #持续状态检测参数,o = 持续的UP状态, d = 持续的DOWN状态, and u = 持续的UNREACHABLE状态.

}

—————————

总的来说,nagios 配置还是比较简单的,关键是要善于应用插件和合理的调用.

?

来源 : http://hi.chinaunix.net/?uid-18787823-action-viewspace-itemid-23286

读书人网 >操作系统

热点推荐