我正在编写一个配置,用于收集以从SSL / TLS安全的JMX端口读取数据。
我设置了以下类似内容(简化):
list1 = [i*i for i in list1]
但是我得到的是一个常见错误,表明JMX客户端需要纯文本连接:
LoadPlugin java
<Plugin "java">
JVMArg "-Djava.class.path=/opt/stackdriver/collectd/share/collectd/java/collectd-api.jar:/opt/stackdriver/collectd/share/collectd/java/generic-jmx.jar"
JVMArg "-Djavax.net.ssl.trustStore=/path/to/truststore.jks"
JVMArg "-Djavax.net.ssl.trustStorePassword=testpass"
JVMArg "-Djavax.net.ssl.keyStore=/path/to/keystore.jks"
JVMArg "-Djavax.net.ssl.keyStorePassword=testpass"
LoadPlugin "org.collectd.java.GenericJMX"
<Plugin "GenericJMX">
<MBean "cassandra_storageservice-load">
ObjectName "org.apache.cassandra.metrics:type=Storage,name=Load"
<Value>
Type "gauge"
InstancePrefix "storage_service-load"
Table false
Attribute "Count"
</Value>
</MBean>
<Connection>
ServiceURL "service:jmx:rmi:///jndi/rmi://localhost:7199/jmxrmi"
InstancePrefix "cassandra"
User "cassandra"
Password "jmxpass"
Collect "cassandra_storageservice-load"
</Connection>
</Plugin>
</Plugin>
当我禁用SSL / TLS时,我可以轻松地连接到JMX端口并获取数据,但是禁用它不是一种选择。 目标是Cassandra节点的JMX端口,我需要确保它安全,因为连接到Cassandra JMX还可以对群集进行一定程度的控制,并且可以在专用网络中使用。我不要明文飞来飞去。不幸的是,我需要对collected进行处理。
是否有可能强制GenericJMX使用SSL / TLS?如果是的话该怎么做?提供证书似乎完全不起作用。