Настройка SSL-соединения с использованием collectd GenericJMX - PullRequest
0 голосов
/ 28 января 2019

Я пишу конфигурацию для collectd для чтения данных из защищенного порта JMX SSL / TLS.

Я настроил что-то вроде этого (упрощенно):

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>

Но все, что я получаюЭто распространенная ошибка, показывающая, что клиент JMX ожидает подключения в виде открытого текста:

GenericJMXConfConnection: Creating MBean server connection failed: java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.CommunicationException [Root exception is java.rmi.ConnectIOException: non-JRMP server at remote endpoint]

Когда я отключаю SSL / TLS, я могу легко подключиться к порту JMX и получить данные, но отключить его нельзя.Цель - это порт JMX узла Cassandra, и мне нужно обеспечить его безопасность, поскольку подключение к Cassandra JMX также дает некоторый контроль над кластером, и он будет доступен в частной сети.Я не хочу, чтобы тексты летали.К сожалению, мне нужно сделать это с collectd.

Можно ли вообще заставить GenericJMX использовать SSL / TLS?И если да, то как это сделать?Предоставление сертификатов, похоже, ничего не делает.

...