首页 > 解决方案 > OpsCenter 6.1.16 Datastax 代理创建到 ERROR [async-dispatch-2] 的 stomp 连接时通过 stomp 连接时出错

问题描述

我在使用 SSL 通过 datastax-agent 与 opscenter 建立 HTTP 连接时面临挑战:

Datastax 版本 5.1.7 Opscenter 版本 6.1.16

  INFO [async-dispatch-2] 2018-05-23 20:58:24,549 Creating stomp connection to <opscenter_host_ip>:61620  ERROR [async-dispatch-2] 2018-05-23 20:58:24,549 Error connecting via stomp.  java.io.FileNotFoundException: /etc/dse/opscenter.jks (No such file or directory)
        at java.io.FileInputStream.open0(Native Method)
        at java.io.FileInputStream.open(Unknown Source)
        at java.io.FileInputStream.<init>(Unknown Source)
        at clojure.java.io$fn__9520.invokeStatic(io.clj:229)
        at clojure.java.io$fn__9520.invoke(io.clj:229)
        at clojure.java.io$fn__9433$G__9426__9440.invoke(io.clj:69)
        at clojure.java.io$fn__9532.invokeStatic(io.clj:258)
        at clojure.java.io$fn__9532.invoke(io.clj:254)
        at clojure.java.io$fn__9433$G__9426__9440.invoke(io.clj:69)
        at clojure.java.io$input_stream.invokeStatic(io.clj:136)
        at clojure.java.io$input_stream.doInvoke(io.clj:121)
        at clojure.lang.RestFn.invoke(RestFn.java:410)
        at opsagent.messaging$build_ssl_options.invokeStatic(messaging.clj:25)
        at opsagent.messaging$build_ssl_options.invoke(messaging.clj:23)
        at opsagent.messaging$setup_ssl.invokeStatic(messaging.clj:134)
        at opsagent.messaging$setup_ssl.invoke(messaging.clj:131)
        at opsagent.messaging$setup_conn.invokeStatic(messaging.clj:162)
        at opsagent.messaging$setup_conn.invoke(messaging.clj:157)
        at opsagent.messaging.StompComponent.start(messaging.clj:250)
        at com.stuartsierra.component$fn__2595$G__2589__2597.invoke(component.clj:4)
        at com.stuartsierra.component$fn__2595$G__2588__2600.invoke(component.clj:4)
        at clojure.lang.Var.invoke(Var.java:379)
        at clojure.lang.AFn.applyToHelper(AFn.java:154)
        at clojure.lang.Var.applyTo(Var.java:700)
        at clojure.core$apply.invokeStatic(core.clj:648)
        at clojure.core$apply.invoke(core.clj:641)
        at com.stuartsierra.component$try_action.invokeStatic(component.clj:116)
        at com.stuartsierra.component$try_action.invoke(component.clj:115)
        at clojure.lang.Var.invoke(Var.java:401)
        at opsagent.config_service$update_system$fn__20717.invoke(config_service.clj:218)
        at clojure.lang.ArraySeq.reduce(ArraySeq.java:114)
        at clojure.core$reduce.invokeStatic(core.clj:6544)
        at clojure.core$reduce.invoke(core.clj:6527)
        at opsagent.config_service$update_system.invokeStatic(config_service.clj:212)
        at opsagent.config_service$update_system.doInvoke(config_service.clj:208)
        at clojure.lang.RestFn.invoke(RestFn.java:425)
        at opsagent.config_service$start_system_BANG_.invokeStatic(config_service.clj:238)
        at opsagent.config_service$start_system_BANG_.invoke(config_service.clj:231)
        at opsagent.config_service$fn__20808$fn__20809$state_machine__4880__auto____20810$fn__20812.invoke(config_service.clj:261)
        at opsagent.config_service$fn__20808$fn__20809$state_machine__4880__auto____20810.invoke(config_service.clj:261)
        at clojure.core.async.impl.ioc_macros$run_state_machine.invokeStatic(ioc_macros.clj:1012)
        at clojure.core.async.impl.ioc_macros$run_state_machine.invoke(ioc_macros.clj:1011)
        at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invokeStatic(ioc_macros.clj:1016)
        at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invoke(ioc_macros.clj:1014)
        at clojure.core.async.impl.ioc_macros$take_BANG_$fn__4896.invoke(ioc_macros.clj:1025)
        at clojure.core.async.impl.channels.ManyToManyChannel$fn__698$fn__699.invoke(channels.clj:95)
        at clojure.lang.AFn.run(AFn.java:22)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

我的 opscenter 密钥库在不同位置进行了尝试并得到不同的错误。

在 stomp 接口 ip 上运行的 opscenter 的 Datastax-agent 的 address.yaml 内容:

opscenter_ssl_keystore: /etc/dse/opscenter.jks
opscenter_ssl_keystore_password: <ks pass>
opscenter_ssl_truststore: /etc/dse/truststore.jks
opscenter_ssl_truststore_password: <trst pass>

当我将它们放在 /root/.cassandra/ 中时,它会抛出 Permission denied

错误 [async-dispatch-8] 2018-05-23 20:37:18,304 通过 stomp 连接时出错。java.io.FileNotFoundException: /root/.cassandra/opscenter.jks (Permission denied) at java.io.FileInputStream.open0(Native Method) at java.io.FileInputStream.open(Unknown Source)

当我将它们放在 /etc/dse/ 中时,它会抛出不存在这样的文件或目录

信息 [async-dispatch-2] 2018-05-23 21:03:41,423 创建到:61620 的 stomp 连接 错误 [async-dispatch-2] 2018-05-23 21:03:41,423 通过 stomp 连接时出错。java.io.FileNotFoundException: /etc/dse/opscenter.jks (没有这样的文件或目录)

两者具有相同的权限。

注意:我有服务帐户 cassandra 而不是 opscenter 用于我的 opscenter 安装。

[root@opscntrmon /]# ls -ld /etc
drwxr-xr-x. 108 root root 12288 May 17 17:40 /etc
[root@opscntrmon /]# ls -ld /etc/dse
drwxr-xr-x 9 cassandra cassandra 4096 May 23 20:56 /etc/dse

[root@opscntrmon /]# ls -ld /root
dr-xr-x---. 11 root root 4096 May 23 16:11 /root
[root@opscntrmon /]# ls -ld /root/.cassandra
drwxrwxrwx 2 cassandra cassandra 4096 May 23 13:22 /root/.cassandra

[root@opscntrmon /]# 

请问有什么帮助吗?

标签: httpscassandradatastaxopscenter

解决方案


推荐阅读