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

集成 Nagios 报告 Ganglia 指标

Nagios Exchange 是另一个获取 Nagios 插件的好地方。但是对于我们的 Ganglia 插件,只要从 Ganglia 和 Nagios,第 1 部分:用 Ganglia 监视企业集群 中下载的源代码中查找。假设您将源代码解压到 /tmp 目录中,剩下的只需要复制 contrib 目录中的 check_ganglia.py 脚本即可:

cp /tmp/ganglia-3.1.1/contrib/check_ganglia.py /usr/local/nagios/libexec/  

check_ganglia 是一个很棒的 Python 脚本,可以运行于 gmetad 运行的服务器上(在我的示例中是 Nagios 运行的管理服务器)。让我们在端口 8649 上查询 localhost。使用这种方法,您可以通过远程命令扩展网络通讯:可以使用 Ganglia 的扩展技术实现!

如果运行 telnet localhost 8649,您将看到从节点收集的数据中生成大量输出(假设按照第 1 部分安装了 Ganglia 并能正常运行)。让我们监视一些 Ganglia 提供的内容。

进入 /var/lib/ganglia/rrds 目录,您可以看到每个主机的度量指标。生成了易于查看的图形,您可以一直分析指标。我们将度量 load_one 和 disk_free,由于在第 1 部分中我们启用了 IPMI 温度度量,我们将同样添加该度量。

创建 /usr/local/nagios/etc/dallas/ganglia-services.cfg 文件并添加服务:

define servicegroup { servicegroup_name ganglia-metrics alias Ganglia Metrics } define command { command_name check_ganglia command_line $USER1$/check_ganglia.py -h $HOSTNAME$ -m $ARG1$ -w $ARG2$ -c $ARG3$ } define service { use generic-service name ganglia-service hostgroup_name dallas-cloud-servers service_groups ganglia-metrics notifications_enabled 0 } define service { use ganglia-service service_description load_one check_command check_ganglia!load_one!4!5 } define service { use ganglia-service service_description ambient_temp check_command check_ganglia!AmbientTemp!20!30 } define service { use ganglia-service service_description disk_free check_command check_ganglia!disk_free!10!5 }  

重启 Nagios 时,现在可以根据 Ganglia 指标发出警告!

提醒:check_ganglia.py 命令仅在阈值过高时发出警告。如果希望在阈值过低时发出警告(在 disk_free 中是这样),则需要修改代码。我更改了文件的最后部分,如下所示:

if critical > warning: if value >= critical: print "CHECKGANGLIA CRITICAL: %s is %.2f" % (metric, value) sys.exit(2) elif value >= warning: print "CHECKGANGLIA WARNING: %s is %.2f" % (metric, value) sys.exit(1) else: print "CHECKGANGLIA OK: %s is %.2f" % (metric, value) sys.exit(0) else: if critical >= value: print "CHECKGANGLIA CRITICAL: %s is %.2f" % (metric, value) sys.exit(2) elif warning >= value: print "CHECKGANGLIA WARNING: %s is %.2f" % (metric, value) sys.exit(1) else: print "CHECKGANGLIA OK: %s is %.2f" % (metric, value) sys.exit(0)  

现在重新加载 Nagios:

service nagios restart

如果一切正常,您应该看到 Ganglia 数据现在已经在 Nagios 的监视之下!


图 4. 受 Nagios 监视的 Ganglia 数据

受 Nagios 监视的 Ganglia 数据


结合使用 Ganglia 和 Nagios,您可以监视任何内容。您可以控制整个云!

linux

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

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