我开始注意到我的 Web 界面几个小时都没有更新图表。每次我gmond
在客户端上重新启动该过程时,我都会看到图表确实有效。大约一个小时后我回来时,我的图表是空白的,只是一张白色的图表,什么都没有更新。如果我再次启动它,它就可以正常工作。我不确定它是什么。
我的设置如下。
客户端 -> gmond 收集器 -> gmeta/web 主机
配置文件
data_source "ENG1" 10.199.1.110
data_source "ENG2" 10.199.19.100
data_source "QA" 10.199.10.200
来自 10.199.10.200 的 gmond.conf
globals {
daemonize = yes
setuid = yes
user = nobody
debug_level = 0
max_udp_msg_len = 1472
mute = no
deaf = no
allow_extra_data = yes
host_dmax = 0 /*secs */
cleanup_threshold = 300 /*secs */
gexec = no
send_metadata_interval = 0 /*secs */
}
cluster {
name = "QA"
}
udp_send_channel {
host = 10.199.10.200
port = 8649
ttl = 1
}
udp_recv_channel {
port = 8649
}
**gmond.conf 否 我的客户端文件与上面相同,只是没有udp_recv_channel
定义块。我将状态从客户端转发到收集器(例如 10.199.10.200),然后由 gmeta 服务器(10.199.1.110)提取。此服务器还从一组定义为“ENG1”的服务器收集数据。
答案1
我在 Ubuntu 上安装 Ganglia 时遇到了这个问题。根据文档,听起来好像 gmond 丢失了元数据,不知道如何处理指标数据。由于您正在以单播模式设置 Ganglia,因此您需要指示 gmond 定期发送元数据,方法是更改send_metadata_interval
为非零值:
globals {
daemonize = yes
setuid = yes
user = ganglia
debug_level = 0
max_udp_msg_len = 1472
mute = no
deaf = no
allow_extra_data = yes
host_dmax = 0 /*secs */
cleanup_threshold = 300 /*secs */
gexec = no
send_metadata_interval = 30 /*secs */
}
试一试!
阅读更多:
http://sourceforge.net/apps/trac/ganglia/wiki/ganglia_release_notes
3.1 收集器将请求 gmond 重新发送其度量描述信息(如果需要)并且使用多播,如果您使用单播,则目前无法执行此操作,因此如果您重新启动收集器,则收集器将只剩下部分数据或没有数据,这些数据来自通过它收集的集群,直到重新启动该集群中的所有 gmond。要解决此问题,请将单播设置
send_metadata_interval
为合理的值,以便所有 gmond 定期将其元数据重新发送给收集器,以防丢失。
http://sourceforge.net/apps/trac/ganglia/wiki/FAQ
在 gmond 的最新版本 (3.1.x) 中,添加了一个
gmond.conf
名为 的新全局变量send_metadata_interval
,其默认设置为 0。目的是为了减少网络流量。在 3.1 中,度量数据与元数据分开发送,例如元数据包含详细描述、分组和其他可能的设置。值为零表示 gmond 将在启动时发送元数据,而不会在其他时间发送(这与旧版本的 ganglia 一致)。如果您计划使用单播模式,请将其设置
send_metadata_interval
为 0 以外的值。在大多数情况下,30-60 秒已被证实可以可靠地工作。将此变量设置为非零值将使 gmond 进程定期宣布其指标,并且图表将重新出现在主机视图页面上。
答案2
尝试添加:tcp_accept_channel { port = 8649 }
答案3
我通过配置进行了修改以使用多播并且现在可以正常工作!