假设我有一堆客户端,它们只有一个主主机,主主机上装有gmetad
Web 界面。如果我定义一个集群(即“集群”),它就可以工作,但是假设我想要第二组集群,它该如何工作?我无法将所有客户端节点指向主服务器?看起来我必须创建某种“中间人”服务器来收集每个集群的数据?
答案1
我的服务器带有 Web 前端和 gmetad,其 gmetad.conf 中有一个条目gridname
,另外data_source
每个集群都有一个条目。每个条目data_source
都从集群中的一个或多个系统中提取:
gridname "The Grid"
data_source "Infrastructure" ihost1 ihost2 ...
data_source "Compute Nodes" chost1 chost2 ...
data_source "Workstations" work1 work2 ...
每个主机将自己注册到特定的集群中,并将其自身注册到集群特定的多播地址中gmond.conf
:
cluster {
name = "Infrastructure"
}
udp_send_channel {
mcast_join = 239.2.11.72
port = 8649
}
udp_recv_channel {
mcast_join = 239.2.11.72
port = 8649
bind = 239.2.11.72
}
tcp_accept_channel {
port = 8649
}
答案2
上述配置的一个略微更好的变体是让多个 gmond 通过多播与单个 gmond 通信(针对每个集群)。然后设置 data_source 以与该单个 gmond 通信。这样,每次添加新主机时,您都不必编辑 gmetad.conf。