Added ssl: true to jmx_httpserver_config.yml file and it is working now. 
Sorry for my post. Solved

On Tuesday, 24 August 2021 at 09:55:58 UTC+2 Matúš Cuper wrote:

> Hi everyone,
>
> I am trying connect JMX exporter 
> https://github.com/prometheus/jmx_exporter httpserver to my Kafka connect 
> docker instance https://hub.docker.com/r/confluentinc/cp-kafka-connect. 
> SSL with authentication must be enabled on JMX port due to company policies.
>
> All JMX kafka connect options:
> KAFKA_JMX_PORT=5555
> KAFKA_JMX_OPTS=-Dcom.sun.management.jmxremote=true 
> -Dcom.sun.management.jmxremote.registry.ssl=true 
> -Dcom.sun.management.jmxremote.authenticate=true 
> -Dcom.sun.management.jmxremote.ssl=true 
> -Djava.net.preferIPv4Stack=true 
> -Djava.rmi.server.hostname=kafka-connect-01.triviadata.local
> -Dcom.sun.management.jmxremote.password.file=/tmp/kafka_connect/jmxremote.password
>  
>
> -Dcom.sun.management.jmxremote.access.file=/tmp/kafka_connect/jmxremote.access
>  
>
> -Djavax.net.ssl.trustStore=/root/pki/jssecacerts 
> -Djavax.net.ssl.trustStoreType=jks 
> -Djavax.net.ssl.trustStorePassword=trust_pass
> -Djavax.net.ssl.keyStore=/root/pki/host.jks
> -Djavax.net.ssl.keyStoreType=jks
> -Djavax.net.ssl.keyStorePassword=key_pass
>
> Execution of exporter httpserver:
> java -Dcom.sun.management.jmxremote.ssl=false 
> -Dcom.sun.management.jmxremote.authenticate=false
> -Djavax.net.ssl.trustStore=/root/pki/jssecacerts 
> -Djavax.net.ssl.trustStoreType=jks 
> -Djavax.net.ssl.trustStorePassword=trust_pass
> -Djavax.net.ssl.keyStore=/root/pki/host.jks
> -Djavax.net.ssl.keyStoreType=jks
> -Djavax.net.ssl.keyStorePassword=key_pass
> -jar 
> /opt/jmx_exporter/jmx_prometheus_httpserver-0.16.1-jar-with-dependencies.jar 
> kafka-connect-01.triviadata.local:9555 
> /opt/jmx_exporter/jmx_httpserver_config.yml
>
> Content of jmx_httpserver_config.yml:
> ---
> username: monitorRole
> password: monitor_pass
> jmxUrl: 
> service:jmx:rmi:///jndi/rmi://kafka-connect-01.triviadata.local:5555/jmxrmi
>
> rules:
> - pattern: ".*"
>
> Error message:
> Aug 24, 2021 1:29:29 PM io.prometheus.jmx.JmxCollector collect
> SEVERE: JMX scrape failed: java.io.IOException: Failed to retrieve 
> RMIServer stub: javax.naming.CommunicationException [Root exception is 
> java.rmi.ConnectIOException: non-JRMP server at remote endpoint]
>         at 
> javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:369)
>         at 
> javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:270)
>         at io.prometheus.jmx.JmxScraper.doScrape(JmxScraper.java:95)
>         at io.prometheus.jmx.JmxCollector.collect(JmxCollector.java:547)
>         at 
> io.prometheus.client.CollectorRegistry$MetricFamilySamplesEnumeration.findNextElement(CollectorRegistry.java:207)
>         at 
> io.prometheus.client.CollectorRegistry$MetricFamilySamplesEnumeration.nextElement(CollectorRegistry.java:240)
>         at 
> io.prometheus.client.CollectorRegistry$MetricFamilySamplesEnumeration.nextElement(CollectorRegistry.java:161)
>         at 
> io.prometheus.client.exporter.common.TextFormat.writeOpenMetrics100(TextFormat.java:202)
>         at 
> io.prometheus.client.exporter.common.TextFormat.writeFormat(TextFormat.java:57)
>         at 
> io.prometheus.client.exporter.HTTPServer$HTTPMetricHandler.handle(HTTPServer.java:83)
>         at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:79)
>         at sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:83)
>         at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:82)
>         at 
> sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:675)
>         at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:79)
>         at sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:647)
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>         at java.lang.Thread.run(Thread.java:748)
> Caused by: javax.naming.CommunicationException [Root exception is 
> java.rmi.ConnectIOException: non-JRMP server at remote endpoint]
>         at 
> com.sun.jndi.rmi.registry.RegistryContext.lookup(RegistryContext.java:136)
>         at 
> com.sun.jndi.toolkit.url.GenericURLContext.lookup(GenericURLContext.java:205)
>         at javax.naming.InitialContext.lookup(InitialContext.java:417)
>         at 
> javax.management.remote.rmi.RMIConnector.findRMIServerJNDI(RMIConnector.java:1955)
>         at 
> javax.management.remote.rmi.RMIConnector.findRMIServer(RMIConnector.java:1922)
>         at 
> javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:287)
>         ... 18 more
> Caused by: java.rmi.ConnectIOException: non-JRMP server at remote endpoint
>         at 
> sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:248)
>         at 
> sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
>         at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:343)
>         at 
> sun.rmi.registry.RegistryImpl_Stub.lookup(RegistryImpl_Stub.java:116)
>         at 
> com.sun.jndi.rmi.registry.RegistryContext.lookup(RegistryContext.java:132)
>         ... 23 more
>
>
> When I disable SSL for kafka connect JMX port by setting 
> -Dcom.sun.management.jmxremote.registry.ssl=false and 
> -Dcom.sun.management.jmxremote.ssl=false, JMX exporter httpserver is 
> running and I am able to get metrics from 
> kafka-connect-01.triviadata.local:9555/metrics
>
> Can someone help me how to connect JMX exporter httpserver to SSL secured 
> JMX?
>

-- 
You received this message because you are subscribed to the Google Groups 
"Prometheus Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/prometheus-users/95a2fa5e-6eb2-4ab1-be59-6c013820e177n%40googlegroups.com.

Reply via email to