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 代理未安装的主要内容,如果未能解决你的问题,请参考以下文章