https - 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 /]#
请问有什么帮助吗?
解决方案
推荐阅读
- android - Prism Xamarin.Forms monoandroid81 添加对“MonoAndroid”的引用
- android - 可选择在应用中使用 Cloud Firestore
- php - php 和 mongodb - 将结果作为公共数组集合获取
- python-3.x - Python 异常导入问题
- php - Laravel 存储链接不适用于生产
- webpack - 即使在生产模式下构建,VueJS 也会显示“开发模式”消息
- graphql - 尝试在 GraphCMS api 上连接时出现 Gatsby Graphql 问题
- varnish - 在默认端口 6081 上清漆
- ruby - kubeclient create_namespace NoMethodError
- html - NVDA 和 JAWS 在 Textarea 中禁用输入