使用具有指定IP地址和OpsCenter社区的Cassandra CCM时出现的问题

使用具有指定IP地址和OpsCenter社区的Cassandra CCM时出现的问题,cassandra,datastax,opscenter,Cassandra,Datastax,Opscenter,我可以使用标准的自动配置版本,只需使用环回即可 ccm create local-cluster -v 1.2.10 -n 3 当我尝试使用真实的IP地址以便在虚拟机之外连接到集群时,事情变得不稳定。以下是我的跑步记录: ccm create local-cluster -v 1.2.10 ccm add --itf 192.168.1.20 --jmx-port 7100 -b -s -r 2000 node1 ccm add --itf 192.168.1.21 --jmx-port 72

我可以使用标准的自动配置版本,只需使用环回即可

ccm create local-cluster -v 1.2.10 -n 3
当我尝试使用真实的IP地址以便在虚拟机之外连接到集群时,事情变得不稳定。以下是我的跑步记录:

ccm create local-cluster -v 1.2.10
ccm add --itf 192.168.1.20 --jmx-port 7100 -b -s -r 2000 node1
ccm add --itf 192.168.1.21 --jmx-port 7200 -b -r 2001 node2
ccm add --itf 192.168.1.22 --jmx-port 7300 -b -r 2002 node3
ccm node1 start
ccm node2 start
ccm node3 start
ccm node1 status
问题1)我不能使用“ccm启动”。它超时了。如果我独立启动每个节点,它就会工作 问题2)节点不平衡。21个节点拥有87.6%的股份,而另外两个节点各拥有6.2%的股份。此外,我认为种子不正确,但如果我尝试在添加时查看每个节点,则无法启动群集,因为它抱怨找不到种子节点,因此我只能在第一个节点上使用-s 问题3)尽管“ccm节点1状态”节点2、节点3均显示良好且向上,但OpsCenter在一段时间后显示三个节点中的第一个节点和两个节点不可用 问题4)我可以通过一些修改手动配置OpsCenter代理,但在我输入“local_接口”之前,它们无法工作,因此广播地址有问题。即使在看到所有代理之后,OpsCenter仍然表现出奇怪的行为,抱怨节点关闭,并且没有在所有图形中显示数据。使用ccm压力,我能够看到I/o和cpu负载,但不能看到集群读写,也不能看到延迟。下面是我如何配置代理的:

cd /usr/share/opscenter

mkdir ~/opsagent1
tar -C ~/opsagent1 -xzf agent.tar.gz
mkdir ~/opsagent2
tar -C ~/opsagent2 -xzf agent.tar.gz
mkdir ~/opsagent3
tar -C ~/opsagent3 -xzf agent.tar.gz

cd ~/opsagent1/agent
bin/setup 192.168.1.22
echo '
agent_rpc_interface: 192.168.1.20
jmx_host: 192.168.1.20
jmx_port: 7100
local_interface: 192.168.1.20
' >> conf/address.yaml
bin/opscenter-agent

cd ~/opsagent2/agent
bin/setup 192.168.1.22
echo '
agent_rpc_interface: 192.168.1.21
jmx_host: 192.168.1.21
jmx_port: 7200
local_interface: 192.168.1.21
' >> conf/address.yaml
bin/opscenter-agent

cd ~/opsagent3/agent
bin/setup 192.168.1.22
echo '
agent_rpc_interface: 192.168.1.22
jmx_host: 192.168.1.22
jmx_port: 7300
local_interface: 192.168.1.22
' >> conf/address.yaml
bin/opscenter-agent

还应将以下内容添加到每个代理配置文件中:

stomp_接口:OpsCenter用于stomp的IP

此默认值为127.0.0.1,除非您对其进行了设置,或者除非它能够计算出正确的IP。如果您有多个IP,则可能不会使用您指定的IP。因此,我在opscenterd.conf中通过添加以下部分手动设置它:

[stomp]
port = 61619
interface = 192.168.1.22

此外,如果您要手动添加它们,则希望它们都是种子。当您使用populate时,它会将它们全部设置为种子:。

我已经在127.0.0.x默认ip的CCM使用上轻松地实现了这一切,但具体的问题是如何将其与其他ip地址配合使用。我无法从VM外部连接到环回IP,因此我需要分配真实IP。bin/setup调用设置stomp_接口IP,以便部件正常。根据您的响应和最新编辑,更新上述答案。基本上,您传递给安装脚本的内容需要与OpsCenter认为它的IP相匹配。如果你在一台多IP机器上,你可以帮助它选择它应该拥有的IP。@Peter Halliday试着让你对第三方帖子的编辑更加真实。在您拥有编辑权限之前,您所有的编辑都将通过审查系统,这意味着一些人必须花时间检查编辑,因此进行这样的小更改是不好的。