Tôi muốn theo dõi một ứng dụng java (khởi động mùa xuân) chạy từ xa với jvisualvm (hoặc jconsole). Khi chạy cục bộ, tôi có thể thấy các bean được quản lý trong cả jvisualvm và jconsole. Khi chạy từ xa tôi không thể kết nối. Tôi đã thử nó với một số quy trình java khác nhau (ví dụ: với spring xd). Tìm kiếm câu trả lời ở đây trên SO và trên Google không giúp được gì.Giám sát từ xa bằng visualvm và JMX
Đây là những JAVA_OPTS của tôi (trên máy chủ từ xa):
$ echo $JAVA_OPTS
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.59.99
Sau đó, tôi chỉ cần khởi động chương trình như sau (đây là cho xd mùa xuân, nhưng tôi trải nghiệm cùng một vấn đề với các chương trình java khác).
$ bin/xd/xd-singlenode
Quá trình máy chủ dường như nhặt các tùy chọn:
$ ps -ef | grep single
vagrant 22938 19917 99 06:38 pts/2 00:00:03 /usr/lib/jvm/java-8- oracle/jre/bin/java -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.59.99 -Dspring.application.name=admin -Dlogging.config=file:/home/vagrant/spring-xd-1.1.0.RELEASE/xd/config///xd-singlenode-logger.properties -Dxd.home=/home/vagrant/spring-xd-1.1.0.RELEASE/xd -Dspring.config.location=file:/home/vagrant/spring-xd-1.1.0.RELEASE/xd/config// -Dxd.config.home=file:/home/vagrant/spring-xd-1.1.0.RELEASE/xd/config// -Dspring.config.name=servers,application -Dxd.module.config.location=file:/home/vagrant/spring-xd-1.1.0.RELEASE/xd/config//modules/ -Dxd.module.config.name=modules -classpath (...)
Phiên bản java trên máy chủ từ xa (linux vm ubuntu) là:
$ java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
Phiên bản java trên máy cục bộ (Mac OS) hơi khác:
$ java -version
java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b25)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)
Trong jvisualvm tôi thêm các kết nối từ xa như sau (thử cả với kết nối ssl và không có):
Đây là jvisualvm thông báo lỗi mang lại cho tôi:
Tôi có thể kết nối từ máy chủ lưu trữ cục bộ đến máy chủ từ xa với lệnh telnet 192.168.59.99:9010
, khi quá trình từ xa đang chạy - do đó, điều này dường như không phải là vấn đề về tường lửa.
Mọi trợ giúp đều được đánh giá cao.
Ông có thể thử với các tùy chọn Java sau: - "Dcom.sun.management .jmxremote -Dcom.sun.management.jmxremote.port = 9010 -Dcom.sun.management.jmxremote.authenticate = false -Dcom.sun.management.jmxremote.ssl = false -Djava.rmi.server.hostname = 192.168.59.99 "và cũng trong dịch vụ sử dụng Jconsole: jmx: rmi: /// jndi/rmi: //192.168.59.99: 9010/jmxrmi –
Bạn đã lưu ngày của tôi. Những công việc này. Bạn có thể đăng bài này như là một câu trả lời, sau đó tôi sẽ sẵn sàng chấp nhận. – user152468
Vui mừng khi biết rằng nó hoạt động! Được đăng dưới dạng câu trả lời. –