Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

jmx exporter on an old AIX, v6.1. #898

Closed
stratanic opened this issue Dec 8, 2023 · 5 comments
Closed

jmx exporter on an old AIX, v6.1. #898

stratanic opened this issue Dec 8, 2023 · 5 comments

Comments

@stratanic
Copy link

Hello,
I try use the jmx exporter on an old AIX, v6.1, and java 8

It start but nothing to scrape with HTTP version jmx_exporter

Important : I just want Cpu and memory metrics.

config:
JAVA_HOME=/usr/java8_64/jre;export JAVA_HOME
export PATH=/usr/java8_64/jre/bin:$PATH.
export CLASSPATH=/opt/jmx_exporter/jmx_prometheus_httpserver.jar

-----file /opt/jmx_exporter/config.yaml ----
hostPort: localhost:19999
rules:

  • pattern: ".*"

command line:
/usr/java8_64/jre/bin/java
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.port=19998
-jar /opt/jmx_exporter/jmx_prometheus_httpserver.jar 19999 /opt/jmx_exporter/config.yaml

error msg:

(/opt/jmx_exporter)$ /usr/java8_64/jre/bin/java   -Dcom.sun.management.jmxremote.ssl=false   -Dcom.sun.management.jmxremote.authenticate=false   -Dcom.sun.management.jmxremote.port=19998   -jar /opt/jmx_exporter/jmx_prometheus_httpserver.jar 19999 /opt/jmx_exporter/config.yaml
2023-12-08 | 09:30:42.084 | main | INFO | io.prometheus.jmx.WebServer | Running
Dec 08, 2023 9:31:47 AM io.prometheus.jmx.logger.Logger log
SEVERE: JMX scrape failed: java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.CommunicationException [Root exception is java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
        java.net.SocketTimeoutException: Read timed out]
        at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:380)
        at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:281)
        at io.prometheus.jmx.JmxScraper.doScrape(JmxScraper.java:126)
        at io.prometheus.jmx.JmxCollector.collect(JmxCollector.java:771)
        at io.prometheus.client.Collector.collect(Collector.java:45)
        at io.prometheus.client.CollectorRegistry$MetricFamilySamplesEnumeration.findNextElement(CollectorRegistry.java:204)
        at io.prometheus.client.CollectorRegistry$MetricFamilySamplesEnumeration.<init>(CollectorRegistry.java:162)
        at io.prometheus.client.CollectorRegistry$MetricFamilySamplesEnumeration.<init>(CollectorRegistry.java:190)
        at io.prometheus.client.CollectorRegistry.metricFamilySamples(CollectorRegistry.java:129)
        at io.prometheus.client.exporter.HTTPServer$HTTPMetricHandler.handle(HTTPServer.java:100)
        at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:91)
        at sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:95)
        at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:94)
        at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:687)
        at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:91)
        at sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:659)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.lang.Thread.run(Thread.java:818)
Caused by: javax.naming.CommunicationException [Root exception is java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
        java.net.SocketTimeoutException: Read timed out]
        at com.sun.jndi.rmi.registry.RegistryContext.lookup(RegistryContext.java:148)
        at com.sun.jndi.toolkit.url.GenericURLContext.lookup(GenericURLContext.java:217)
        at javax.naming.InitialContext.lookup(InitialContext.java:428)
        at javax.management.remote.rmi.RMIConnector.findRMIServerJNDI(RMIConnector.java:1966)
        at javax.management.remote.rmi.RMIConnector.findRMIServer(RMIConnector.java:1933)
        at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:298)
        ... 18 more
Caused by: java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
        java.net.SocketTimeoutException: Read timed out
        at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:319)
        at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:214)
        at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:351)
        at sun.rmi.registry.RegistryImpl_Stub.lookup(RegistryImpl_Stub.java:112)
        at com.sun.jndi.rmi.registry.RegistryContext.lookup(RegistryContext.java:144)
        ... 23 more
Caused by: java.net.SocketTimeoutException: Read timed out
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.socketRead(SocketInputStream.java:127)
        at java.net.SocketInputStream.read(SocketInputStream.java:182)
        at java.net.SocketInputStream.read(SocketInputStream.java:152)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:257)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:276)
        at java.io.DataInputStream.readByte(DataInputStream.java:276)
        at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:258)
        ... 27 more
@stratanic
Copy link
Author

stratanic commented Dec 8, 2023

metrics : on http://x.xx.x.x:19999

# HELP jmx_scrape_duration_seconds Time this JMX scrape took, in seconds.
# TYPE jmx_scrape_duration_seconds gauge
jmx_scrape_duration_seconds 60.038281106
# HELP jmx_scrape_error Non-zero if this scrape failed.
# TYPE jmx_scrape_error gauge
jmx_scrape_error 1.0
# HELP jmx_scrape_cached_beans Number of beans with their matching rule cached
# TYPE jmx_scrape_cached_beans gauge
jmx_scrape_cached_beans 0.0
# HELP jmx_config_reload_failure_total Number of times configuration have failed to be reloaded.
# TYPE jmx_config_reload_failure_total counter
jmx_config_reload_failure_total 0.0
# HELP jmx_exporter_build_info A metric with a constant '1' value labeled with the version of the JMX exporter.
# TYPE jmx_exporter_build_info gauge
jmx_exporter_build_info{version="0.20.0",name="jmx_prometheus_httpserver",} 1.0
# HELP jmx_config_reload_success_total Number of times configuration have successfully been reloaded.
# TYPE jmx_config_reload_success_total counter
jmx_config_reload_success_total 0.0
# HELP jmx_config_reload_failure_created Number of times configuration have failed to be reloaded.
# TYPE jmx_config_reload_failure_created gauge
jmx_config_reload_failure_created 1.70202424196E9
# HELP jmx_config_reload_success_created Number of times configuration have successfully been reloaded.
# TYPE jmx_config_reload_success_created gauge
jmx_config_reload_success_created 1.702024241959E9

@dhoard dhoard self-assigned this Dec 8, 2023
@dhoard
Copy link
Collaborator

dhoard commented Dec 8, 2023

Your exporter YAML configuration looks incorrect...

hostPort: localhost:19999

hostPort should be the remote applications JMX port.

The standalone JMX Exporter HTTP endpoint listening on port 19999...

-jar /opt/jmx_exporter/jmx_prometheus_httpserver.jar 19999 /opt/jmx_exporter/config.yaml

While the standalone JMX Exporter works, it's discouraged. The standalone JMX Exporter can't get JVM metrics of the remote application.

@stratanic
Copy link
Author

Thanks, it's working after the change 👍 hostPort: localhost:19998
Awesome, its so hard with old Aix to have some metrics...

Another question: the smaller agent is the http agent? any suggestion if I just want operating system metrics?

@dhoard
Copy link
Collaborator

dhoard commented Dec 9, 2023

I would look at node_exporter_aix https://github.com/thorhs/node_exporter_aix

@stratanic
Copy link
Author

stratanic commented Dec 9, 2023

Not compatible with old aix, lower than 7.1.
Already try...I post an issue.

On a old aix you can just make script and scrapt it with ssh

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants