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

是否可以在 Windows 上运行 DataStax OpsCenter?

DataStax OpsCenter 未在 centos dse 集群上启动

使用 DataStax Opscenter 在法兰克福地区创建一个新的 cassandra 集群

红帽 6.4 上的 Datastax Enterprise 5.0.0

无法将集群连接到 opscenter

获取“启动 DynamicEnvironmentComponent 时出错。”在盯着 OpsCenter 6.5 代理.DSE 6.0.1