将 Ganglia 与 Cumulus Linux 结合使用
Ganglia 是一个 BSD 许可的开源项目,是一个可扩展的分布式监控系统,适用于高性能计算系统,如集群和网格。根据 Ganglia 官方网站,该实现非常稳健,与广泛的操作系统和处理器架构兼容,目前在全球数千个集群中使用。您可以使用 Ganglia 连接大学校园和世界各地的集群,并且可以扩展以处理具有 2000 个节点的集群。
由于 Cumulus Linux 是 Linux,Ganglia 也非常适合监控交换机和服务器。本文提供了在 Cumulus Linux 上使用 Ganglia 的设置说明。
要求
- 一台 Cumulus Linux 交换机
- 同一网络上运行 apache 的主机。此示例使用 Debian wheezy。
- 从主机和交换机所在的网络访问 Cumulus Linux 仓库。
设置主机
主机(Web 前端将驻留在此处进行收集)必须安装三个部分
ganglia-monitor
,也称为gmond
(Ganglia 监控守护进程)gmetad
,代表 Ganglia 元守护进程ganglia-webfrontend
,其中包含基于 PHP 的实时动态网页
您可以在 Wikipedia 和 Ganglia 文档 中了解有关这些部分的更多信息。
在主机上安装这些组件
user@webserver$ sudo apt-get install ganglia-monitor gmetad ganglia-webfrontend
如果您不熟悉
apache
,则主机需要将/etc/ganglia-webfrontend/apache.conf
复制到/etc/apache2/sites-enabled/
以启用 Ganglia Web 前端,默认地址为 http://<the-host-ip>/ganglia,其中 <the-host-ip> 是所用主机的 IP,例如 http://10.0.1.1/ganglia。配置数据源。在本例中,您正在配置 Cumulus Linux 交换机和本地主机(Web 服务器)。在 Debian wheezy 上,您可以在
/etc/ganglia/gmetad.conf
中找到此文件。data_source "server" localhost server.lab.test 10.0.1.1 data_source "sw1" sw1.lab.test 10.0.1.11
Cumulus Linux 支持 Ganglia 的组播和单播流量。您将配置单播而不是默认的组播,因为许多环境不希望使用组播。这是一种个人偏好,与 Ganglia 提供的输出无关。首先,编辑
/etc/ganglia/gmond.conf
并设置send_metadata_interval
。此示例使用 30 秒。globals { daemonize = yes setuid = yes user = ganglia debug_level = 0 max_udp_msg_len = 1472 mute = no deaf = no host_dmax = 0 /*secs */ cleanup_threshold = 300 /*secs */ gexec = no send_metadata_interval = 30 }
设置集群。此信息必须在主机及其监听的节点之间匹配。以下示例使用 RDU,代表罗利和达勒姆(北卡罗来纳州中部的两个城市)。继续编辑
/etc/ganglia/gmond.conf
。cluster { name = "RDU" owner = "RDU" latlong = "unspecified" url = "unspecified" }
使用
udp
设置接收和发送通道(再次配置/etc/ganglia/gmond.conf
)。使它们与以下内容匹配udp_send_channel { host = server.lab.test port = 8649 } udp_recv_channel { port = 8649 }
重启
gmond
和gmetad
。cumulus@switch$ sudo service ganglia-monitor restart cumulus@switch$ sudo service gmetad restart
此时,您应该开始在 Ganglia 中看到服务器统计信息,方法是在 http://<the-host-ip>/ganglia 中查看它们。它只是在查看自己的数据。此示例有时会互换 DNS 和 IP,确保 DNS 已设置或仅使用可访问的 IP。
设置交换机
您要监控流量的交换机或节点必须仅安装一个软件包
ganglia-monitor
,也称为gmond
(Ganglia 监控守护进程)
在
gmond
添加到 Cumulus Linux 仓库后,通过运行以下命令安装ganglia-monitor
cumulus@switch$ sudo apt-get install ganglia-monitor
与主机(Web 服务器)一样,您正在为此示例配置单播。首先,通过编辑
/etc/ganglia/gmond.conf
设置send_metadata_interval
。此示例使用 30 秒。globals { daemonize = yes setuid = yes user = ganglia debug_level = 0 max_udp_msg_len = 1472 mute = no deaf = no host_dmax = 0 /*secs */ cleanup_threshold = 300 /*secs */ gexec = no send_metadata_interval = 30 }
设置集群;编辑
/etc/ganglia/gmond.conf
。此信息必须在交换机和上面配置的主机之间匹配。此示例使用 RDU。cluster { name = "RDU" owner = "RDU" latlong = "unspecified" url = "unspecified" }
通过如下配置
/etc/ganglia/gmond.conf
,使用udp
设置单播发送通道udp_send_channel { host = server.lab.test port = 8649 }
重启
gmond
进程cumulus@switch$ sudo service ganglia-monitor restart
一分钟后,主机(服务器)上的 PHP 前端开始获取足够的数据以在图表中查看。它们看起来像下面这样
首先选择 sw1 并选择一个指标,如 CPU 速度。
它会打开以下内容
现在,您可以像在服务器上一样使用任何 Ganglia 功能。
多接口模块
Ganglia 最初是为主机(服务器)设计的,因此最初大多数应用程序仅使用 1-2 个接口。但是,对于 Cumulus Linux,多个前面板端口显示为 swp1->swpMAX,其中 MAX 是最后一个前面板端口。某些用户可能不想查看交换机的聚合数据包计数,而是每个接口的数据包计数以监视利用率。为此,您可以向 Ganglia 添加一个名为 multi\_interface 的开源模块。
cumulus@switch$ sudo wget https://raw.githubusercontent.com/ganglia/gmond_python_modules/master/network/multi_interface/python_modules/multi_interface.py .
将
multi_interface.py
放入/usr/lib/ganglia/python_modules/
。cumulus@switch$ sudo mkdir -p /usr/lib/ganglia/python_modules/; mv multi_interface.py /usr/lib/ganglia/python_modules/
cumulus@switch$ sudo wget https://github.com/ganglia/gmond_python_modules/tree/master/network/iface/conf.d .
将以下行添加到
/etc/ganglia/gmond.conf
配置文件中的模块部分cumulus@switch$ sudo vi /etc/ganglia/gmond.conf module { name = "python_module" path = "/usr/lib/ganglia/modpython.so" params = "/usr/lib/ganglia/python_modules/" }
还在
/etc/ganglia/gmond.conf
的末尾添加以下行include ('/etc/ganglia/conf.d/*.pyconf')
将
multi_interface.pyconf
放入/etc/ganglia/conf.d/
。cumulus@switch$ sudo mkdir -p /etc/ganglia/conf.d/; mv multi_interface.pyconf /etc/ganglia/conf.d/
重启
gmond
。cumulus@switch$ sudo service ganglia-monitor restart
现在,显示器为每个 swp 以及 eth0 的管理接口绘制了多个接口的图形
您还可以看到,虽然 swp10-13 没有流量通过,但 swp45 则有流量通过。Ganglia 还允许您使用其 Web 界面放大以获取更多统计信息。
