datastax opscenter 代理未安装
Posted
技术标签:
【中文标题】datastax opscenter 代理未安装【英文标题】:datastax opscenter agents not installing 【发布时间】:2016-05-07 05:39:56 【问题描述】:我在 127.0.1.1 上运行我自己的 cassandra 版本。我将rpc_address
和address
更改为127.0.1.1。
当我开始 Opscenter 时,系统会提示我安装 agents
,并通过推荐的 Fix now
选项安装。但是当我尝试安装时,它会询问我一些 Node ssh 凭据。我不知道这是什么意思。
在此处输入的正确凭据是什么?
我尝试在 Linux 上添加一个具有 root 权限的新用户,并尝试使用该用户名,但它不起作用。我也手动尝试运行install_agent.sh
,但它不起作用。
我错过了什么吗?
编辑:
address.yaml
stomp_interface: 127.0.1.1
agent_rpc_interface: "127.0.1.1"
cassandra-conf: /home/$username/Dropbox/Work/ITNow/olderVersions/cassandra2.11/apache-cassandra-2.1.12/conf/cassandra.yaml
stomp_port: 61620
jmx_host: 127.0.1.1
jmx_port: 7199
cassandra.yaml
http://textuploader.com/57ivn
EDIT2:
对于用户名和密码,我使用的是我的 datastax 凭据。
对于私钥,我使用@apesa 提到的/etc/ssh/ssh_host_rsa_key.pub
中的密钥。但它仍然无法安装代理。
我的 address.yaml 文件是否正确?
编辑 3:
如下图所示,当认为 Opscenter 未连接到代理时,我仍然可以看到 cassandra 中的键空间和表。
对于sudo netstat -p | grep 127.0.1.1
,我没有得到任何输出。
xyz@ubuntu$ ps -ef | grep datastax-agent
xyz@ubuntu$ ps -ef | grep cassandra
输出分别是this和this。简而言之,是的,我可以看到 jars,我也猜到了环境变量。
你问我是如何开始使用 cassandra 的?
sudo ./bin/cassandra
来自 cassandra 的文件夹。之后,我使用火花流将数据从 kafka 流式传输到 cassandra。但在这里应该没关系。
Even if it is not connecting to the agent the opscenter should still show the cassandra instance. Do you see your test_Cluster?
是的!我愿意!
最后,nodetool status
给了我这个:
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns Host ID Rack
UN 127.0.1.1 58.94 MB 256 ? 367dd1c6-291d-4e57-a2b6-e04d74154a6f rack1
Note: Non-system keyspaces don't have the same replication settings, effective ownership information is meaningless
我的信念:
我不确定,但也许我的address.yaml
不正确?我已经更新了我上面的address.yaml
,也许我需要改变一些东西?当我运行 ./datastax-agent
时,更改 address.yaml 会给我不同的输出。谢谢。
EDIT4:
尝试了@apesa 建议的所有内容,这是脚本的详细输出。我还是有同样的问题。
版本:
Opscenter: 5.2.4
datastax-agent: 5.2.4
Cassandra: 2.1.12
sudo netstat -p 的输出 | grep :9042
tcp 0 0 localhost:38155 ganguly:9042 ESTABLISHED 15907/python2.7
tcp 0 0 localhost:38154 ganguly:9042 ESTABLISHED 15907/python2.7
tcp 0 0 localhost:38153 ganguly:9042 ESTABLISHED 15907/python2.7
tcp6 0 0 localhost:38176 ganguly:9042 ESTABLISHED 15951/java
tcp6 0 0 localhost:38179 ganguly:9042 ESTABLISHED 15951/java
tcp6 0 0 ganguly:9042 localhost:38154 ESTABLISHED 15720/java
tcp6 0 0 ganguly:9042 localhost:38153 ESTABLISHED 15720/java
tcp6 0 0 ganguly:9042 localhost:38179 ESTABLISHED 15720/java
tcp6 0 0 ganguly:9042 localhost:38176 ESTABLISHED 15720/java
tcp6 0 0 ganguly:9042 localhost:38155 ESTABLISHED 15720/java
sudo netstat -p 的输出 | grep :7199
空白
sudo netstat -p 的输出 | grep :61620
空白
This is the console log 正在运行 sudo ./datastax-agent
。
简而言之,这是错误行:
ERROR [clojure-agent-send-off-pool-0] 2016-02-04 11:33:26,274 Can't \
connect to Cassandra (All host(s) tried for query failed (tried:\
/127.0.0.1:9042 \
(com.datastax.driver.core.TransportException: \
[/127.0.0.1:9042] Cannot connect))), retrying soon.
但我不知道为什么它试图连接到 127.0.0.1 上的 cassandra,因为 cassandra 正在 127.0.1.1 上运行。我在这里做错了什么?
【问题讨论】:
查看您的 cassandra.yaml 后,您应该将种子提供程序更改为 127.0.1.1,使其与监听和 rpc 地址相同。此外,您可能还需要将 address.yaml 中的 stomp 接口更改为 127.0.1.1。您还应该在代理文件夹中查找日志。 现在试过了,还是一样的问题。 :// 您确定 cassandra 正在运行吗?另外,agent.log 和 opscenterd.log 说什么?如果您尝试启动代理,它将记录失败。 @apesa agent.log - textuploader.com/57vle 和 opscenterd.log - textuploader.com/57vcn。是的,我确定 cassandra 正在运行。 在 agent.log 中我可以看到它说Can't connect to Cassandra (All host(s) tried for query failed (tried: /127.0.0.1:9042..
但它应该尝试 127.0.1.1 因为我在 cassandra.yaml 中将我的 rpc_address 更改为这个。如何解决这个问题?
【参考方案1】:
有多种方法可以从 OpsCenter 安装 DataStax 代理。根据您的 IP 地址 127.0.1.1,您必须运行 Debian 版本的 Linux。我知道它说“可选”,但我从来没有能够在没有 ssh 私钥的情况下运行。在这种情况下,您应该使用以下命令安装 OpenSSH-server
xyz@ubuntu$ sudo apt-get install openssh-server
然后按照这些instructions 设置一个 SSH 密钥,然后您将在向“修复代理”对话框提供您的凭据时使用该密钥。 DSE 端的 Datastax 中的用户名/密码是 datastax/datastax,除非您更改它。这就是您应该为用户名/密码输入的内容,然后还将您的新 SSH 密钥复制/粘贴到私钥框中。 ssh 密钥位于
/etc/ssh/ssh_host_rsa_key.pub
一旦您拥有所有凭据,请继续运行安装代理工具。如果仍然无法完成,您应该检查安装 DSE 的 datastax-agent 文件夹并验证是否有代理的 jar 文件。它应该类似于
datastax-agent-5.2.4-standalone.jar
您还应该看到代理的文件夹结构,bin、conf...等目录都应该在那里。如果一切就绪并且您的 cassandra.yaml 文件正确,您应该能够让代理运行。
您也可以手动执行此操作,方法是移动正确的目录和 jar 文件,然后重新启动代理。
编辑:
查看您最新的 agent.log 文件后,我会这样说。 Java 中的管道损坏错误是指不再启动或不可用的连接。 agent.log 中失败的地方是它试图与 opscenter 通信的地方。您的其中一个连接未启动或配置错误。您还有另一个 cassandra 日志,通常位于 /var/log/cassandra 中,具体取决于您安装 cassandra 的方式。梳理一下,确保它在启动过程中没有错误,警告很好,但错误通常指向问题。
从此时起,您将拥有以下日志文件。请注意,文件位置可能与您的不同,具体取决于您安装所有内容的方式。
/var/log/cassandra
/var/log/datastax-agent
/var/log/OpsCenter
并且您有以下命令可以帮助您理清实际运行的内容以及绑定的端口。看看下面,这些命令告诉你什么?
xyz@ubuntu$ sudo netstat -p | grep 127.0.1.1
您应该至少看到以下端口绑定到您的 127.0.1.1 地址:9042、8888、61620 和其他几个。
另外看看这两个命令的输出。如果您没有得到任何回报,请尝试将它们作为 sudo 运行。输出将取决于您如何启动 jars
xyz@ubuntu$ ps -ef | grep datastax-agent
xyz@ubuntu$ ps -ef | grep cassandra
您应该会看到所有加载的 jar 文件以及在启动 cassandra 和/或 datastax-agent 时设置的环境变量。
您可以编辑您的帖子并解释您是如何创建 cassandra 的。即作为服务还是从命令行?
此外,您应该能够从 OpsCenter 中看到位于 127.0.1.1:8888 的 test_cluster。如果提示您修复代理,请退出这些对话框,直到您进入显示数据中心的主屏幕。即使它没有连接到代理,opscenter 仍应显示 cassandra 实例。你看到你的 test_Cluster 了吗?
最后,当你输入这个时你会得到什么
xyz@ubuntu$ nodetool status
编辑 2:
根据您上次的编辑,看起来除了代理之外的所有内容都已启动并正在运行。所以说nodetool,这很好。此外,由于您可以在 OpsCenter 中看到 Keyspaces,因此您肯定已连接到正在运行的 cassandra 实例。
进一步看,您的 datastax-agent 似乎仍未连接。在查看您的 address.yaml 文件时,我可以看到几个可能的问题。这是一个简单的独立 cassandra 集群,具有单个 IP 地址 127.0.1.1。因此 127.0.1.1 地址将用于涉及 IP 地址或主机的所有配置中。我将对您的 address.yaml 文件进行以下更改。
stomp_interface: 127.0.1.1
cassandra-conf: /home/$username/Dropbox/Work/ITNow/olderVersions/cassandra2.11/apache-cassandra-2.1.12/conf/cassandra.yaml
stomp_port: 61620
保留 JMX 详细信息,因为它们不是必需的,一旦连接就会由 opscenterd 发送。本次安装也不需要agent_rpc_interface。
在 cassandra/conf 目录中还有 cassandra-env.sh
脚本。这个脚本在 cassandra 启动时执行。在脚本底部附近查找以下行并取消注释并添加您的主机 IP 127.0.1.1 代替 <public name>
# jmx: metrics and administration interface
#
# add this if you're having trouble connecting:
JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=127.0.1.1"
最后,记录了 cassandra 实用程序 HERE 在初始化时,您可以将几个 cli 参数传递给 cassandra shell。当您想在更改 IP 或主机名后启动/重新启动 cassandra 集群时,下面的这一特定功能很有用。完成这些更改后,您将需要重新启动 cassandra。实际上,您应该按此顺序重新启动所有内容.. Cassandra,datastax-agent,然后是 opscenter。
xyz@ubuntu$ bin/cassandra -Dcassandra.load_ring_state=false
一旦您完成更改并尝试启动代理,但仍然失败,您将需要更多调试细节。由于我们通过管道传输到 grep 实用程序,Netstat 返回 false。尝试以下操作,因为端口可能绑定到您的主机名,因为您使用的是 127.0.1.1。为以下端口运行它:9042、:7199 和:61620。您正在寻找在 cassandra 运行时绑定到所有这些端口的主机名。
xyz@ubuntu$ sudo netstat -p | grep :9042
还请编辑您的问题并添加您正在运行的 OpsCenter 和 Datastax-Agent 版本。这很重要。
【讨论】:
"检查您安装 DSE 的 datastax-agent 文件夹"。我没有与 DSE 合作。我正在运行 apache 版本的 cassandra。我尝试了您提到的所有内容,但仍然无法连接。我需要将datastax-agent-5.2.4-standalone.jar
放在特定的地方吗?现在它在 /usr/share/opscenter/agent/datastax-agent-5.2.4-standalone.jar
我还添加了我的 cassandra.yaml 和 address.yaml 以便更好地跟踪。
请查看我最新的 yaml 代码编辑。谢谢。
嗨!感谢您的评论,请查看我的最新编辑,我已尝试回答您的所有问题。
你知道下一步该做什么吗?【参考方案2】:
您可以尝试编辑 datastax-agent 的 address.yaml 文件。它应该位于 /var/lib/datastax-agent/conf/ 中。 在此文件中,您需要添加以下行: stomp_interface: 还要确保 stomp_port 设置在同一个文件中。
参考:OpsCenter 5.0 User Guide
Sabiha
【讨论】:
请查看我最新的 yaml 代码编辑。修改了我的address.yaml后还是不行。以上是关于datastax opscenter 代理未安装的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 Windows 上运行 DataStax OpsCenter?
DataStax OpsCenter 未在 centos dse 集群上启动
使用 DataStax Opscenter 在法兰克福地区创建一个新的 cassandra 集群
红帽 6.4 上的 Datastax Enterprise 5.0.0
获取“启动 DynamicEnvironmentComponent 时出错。”在盯着 OpsCenter 6.5 代理.DSE 6.0.1