Ganglia 和 Nagios,第 2 部分: 使用 Nagios 监视企业集(4)

假设脚本运行正常并且已经安装了所有内容。那么在脚本成功退出时,您应该能够打开 Web 浏览器并看到 localhost 已经被监视了(如图 1 所示):


图 1. 显示 localhost 被监视的截屏

显示 localhost 被监视的截屏


通过单击 Service Detail,您可以看到我们监视本地机器上的哪些服务(比如 Ping、HTTP、加载、用户等等),这是默认配置的。

让我们看看名为 Root Partition 的服务。该服务在根分区满时发出警告。通过查看安装时生成的配置文件,您可以完全理解该检查的工作方式。

主配置文件

如果使用 naginstall.sh 脚本,则主配置文件是 /usr/local/nagios/etc/nagios.cfg。该脚本展示几个带有其他定义的 cfg_files。其中的行如下:

cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

如果查看该文件,您将看到所有用于 Web 视图中出现的 localhost 的服务。这就是配置默认服务的地方。根分区定义见第 77 行。

根分区检查方式的体系结构见图 2。


图 2. 如何配置根分区检查

如何配置根分区检查


首先要注意 Nagios 对象的继承模式。根分区 的定义使用本地服务定义,本地服务定义则使用通用服务定义。这定义了调用服务的方式、频率以及其他可调试参数等等。

接下来重要的定义部分是使用的检查命令。首先它使用名为 check_local_disk 的命令定义。传递的参数是 !20%!10%!/。表示当 check_local_disk 命令定义报告 20% 时,它将发出警告。当它到达 10% 时,您将得到一个严重错误。/ 表示它检查 "/" 分区。check_local_disk 隐式调用 check_disk 命令,该命令位于 /usr/local/nagios/libexec 目录中。

这是设置这些配置的基本思路。您可以按照该思路创建自己的服务来监视所需的参数。有关更深入的内容,请阅读文档并尝试自己设置一些参数。

注册以收到警告

所有配置完成后,注册以收到警告。我们开始时已经完成了该操作,但是如果希望更改或添加用户,则可以修改 /usr/local/nagios/etc/objects/contacts.cfg 文件。将联系人名称改为您的名字,将电子邮件改为您的电子邮件地址。大部分基本的 Linux 服务器应该已经设置好,可以处理邮件了。

现在配置其他节点。

在 grid/cloud/cluster 中配置其他节点

我在 Dallas 数据中心有一组节点。我将创建一个目录放置所有配置文件:

mkdir -p /usr/local/nagios/etc/dallas

我需要通知 Nagios 我的配置文件将放在哪里。为此我修改 nagios.cfg 文件,添加以下行:

cfg_dir=/usr/local/nagios/etc/dallas

我将在此创建一组文件(很容易让人糊涂)。图 3 显示了这些条目以及它们所属的文件,并展示了对象之间的关系。


图 3. 条目及其文件图

条目及其文件图


根据该图继续进行其他设置和安装。

在 /usr/local/nagios/etc/dallas/nodes.cfg 文件中,我定义所有节点和节点组。我需要监视三种机器:

网络服务器(本例中是运行 Ganglia 的 Linux 服务器) 网络交换机(我的交换机包括高速交换机和 Gigabit Ethernet) 管理设备(比如刀片式管理模块、老 IBM RSA 卡、BMC、可能的智能 PDU 等等)。

我创建三个相应的组,如下所示:

define hostgroup { hostgroup_name dallas-cloud-servers alias Dallas Cloud Servers } define hostgroup hostgroup_name dallas-cloud-network alias Dallas Cloud Network Infrastructure } define hostgroup hostgroup_name dallas-cloud-management alias Dallas Cloud Management Devides }  

接下来我创建三个模板文件,三个节点组的节点共享通用特征:

define host { name dallas-management use linux-server hostgroups dallas-cloud-management # TEMPLATE! register 0 } define host { name dallas-server use linux-server hostgroups dallas-cloud-servers # TEMPLATE! register 0 } define host { name dallas-network use generic-switch hostgroups dallas-cloud-network # TEMPLATE! register 0 }  

现在我的每个节点定义为 dallas-management、dallas-server 或 dallas-network。各自的示例如下:

define host { use dallas-server host_name x336001 address 172.10.11.1 } define host { use dallas-network host_name smc001 address 172.10.0.254 } define host { use dallas-management host_name x346002-rsa address 172.10.11.12 }  

我生成了一个遍历节点列表的脚本,并使用我的 Dallas 实验室中的节点完全填充这个文件。当我重启 Nagios 时,将检查这些节点是否可以到达。但是我还有其他一些服务!

您应该首先重启 Nagios 保证设置完成。如果已经完成,则应该在 HostGroup Overview 视图下看到一些组。如果有错误,则运行:

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

这将验证文件并帮助您发现错误。

现在可以添加一些基本的服务了。根据 localhost 中的模板,较容易完成的是查看 dallas-cloud-servers 组上的 SSH。让我们启动另一个文件:/usr/local/nagios/etc/dallas/host-services.cfg。最简单的是将配置从希望监视的 localhost 中复制出来。我就是这样做的,并添加了一个依赖关系:

define service{ use generic-service hostgroup_name dallas-cloud-servers service_description SSH check_command check_ssh } define service{ use generic-service hostgroup_name dallas-cloud-servers service_description PING check_command check_ping!100.0,20%!500.0,60% } define servicedependency{ hostgroup_name dallas-cloud-servers service_description PING dependent_hostgroup_name dallas-cloud-servers dependent_service_description SSH }  

如果 PING 无法正常工作,我不会考虑测试 SSH。现在开始可以添加各种内容了,但我们再看看其他东西。重启 Nagios 并测试菜单,以确保看到 ping 和 ssh 检查了节点:

service nagios reload

如果一切正常,我们将开始进入有趣的部分 —— 集成 Ganglia。

linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/3621b1c4dc40b343d88d75a2d364ca6f.html