使用收集的GenericJMX设置SSL连接

时间:2019-01-28 13:46:41

标签: ssl jmx collectd

我正在编写一个配置,用于收集以从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?如果是的话该怎么做?提供证书似乎完全不起作用。

0 个答案:

没有答案