6

我在 127.0.1.1 上运行我自己的 cassandra 版本。我将rpc_address和更改address为 127.0.1.1。

当我启动Opscenter时,系统会提示我安装agents,并且我是通过推荐的Fix now选项安装的。但是当我尝试安装时,它会询问我一些 Node ssh 凭据。我不知道这是什么意思。

输入随机凭据

安装失败

在此处输入的正确凭据是什么?

我尝试在具有 root 权限的 Linux 上添加一个新用户,并尝试使用该用户名,但它不起作用。我也手动尝试运行,install_agent.sh但它不起作用。

我错过了什么吗?

编辑:

地址.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

编辑2:

对于用户名和密码,我使用的是我的 datastax 凭据。对于私钥,我使用/etc/ssh/ssh_host_rsa_key.pub@apesa 提到的密钥。但它仍然无法安装代理。

我的 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 。简而言之,是的,我可以看到罐子,我也猜到了环境变量。

你问我是怎么开始 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上面,也许我需要改变一些东西?当我运行时,更改 address.yaml 会给我不同的输出./datastax-agent。谢谢。

编辑4:

尝试了@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

空白的

这是控制台登录运行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 上运行。我在这里做错了什么?

4

2 回答 2

1

有几种方法可以从 OpsCenter 安装 DataStax 代理。根据您的 IP 地址 127.0.1.1,您必须运行 Debian 版本的 Linux。我知道它说“可选”,但我从来没有能够在没有 ssh 私钥的情况下运行。在这种情况下,您应该使用以下命令安装 OpenSSH-server

xyz@ubuntu$ sudo apt-get install openssh-server

然后按照这些说明设置 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 实用程序可以在初始化时将几个 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 版本。这很重要。

于 2016-01-29T15:32:48.667 回答
0

您可以尝试编辑 datastax-agent 的 address.yaml 文件。它应该位于 /var/lib/datastax-agent/conf/ 中。在此文件中,您需要添加以下行: stomp_interface:还要确保在同一个文件中设置了 stomp_port。

参考:OpsCenter 5.0 用户指南

萨比哈

于 2016-01-29T19:53:46.457 回答