datastax opscenter 代理未安装

Posted

技术标签:

【中文标题】datastax opscenter 代理未安装【英文标题】:datastax opscenter agents not installing 【发布时间】:2016-05-07 05:39:56 【问题描述】:

我在 127.0.1.1 上运行我自己的 cassandra 版本。我将rpc_addressaddress 更改为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 代理未安装的主要内容,如果未能解决你的问题,请参考以下文章