концепция: jconsole — это графический инструмент мониторинга и управления, входящий в состав jdk. Его можно использовать для просмотра важной информации, такой как память, потоки, классы и т. д., во время выполнения программы Java. jconsole может напрямую подключаться к локальным Java-программам или удаленно подключаться к запущенным Java-программам.
1. Принцип удаленного подключения JConsole
JConsole использует протокол JMX и протокол RMI для удаленного мониторинга или вызова программ Java. Общая идея заключается в том, что при подключении клиент JConsole подключается к серверу через JMX. После успешного подключения используйте RMI для повторного вызова интерфейса сервера. Это возможно только после двух «рукопожатий» подключения клиента и сервера. В нашем проекте серверная служба Java развертывается на хост-машине через докер-контейнер, что требует некоторых дополнительных корректировок конфигурации запуска докер-контейнера.
2. Конфигурация сервера удаленных подключений JConsole (запуск контейнера использует docker-compose)
1. Монтирование файла данных - /jdk-management:/usr/local/openjdk-17/conf/management Файл паролей для удаленного подключения необходимо настроить при запуске сервера (если не добавлен, при запуске будет сообщено об ошибке)
- конфигурация разрешений доступа jmxremote.access
- настройка пароля доступа jmxremote.password
2.Параметры запуска jvm и сопоставление портов
Поскольку JConsole использует два «рукопожатия» для реализации соединения, реальный IP-адрес, который позволяет клиенту подключаться напрямую, необходимо настроить в процессе соединения.
в
"-Dcom.sun.management.jmxremote""Запустите службу jmx,
«-Djava.rmi.server.hostname» настраивает реальный IP хоста (клиент может подключаться напрямую),
«-Dcom.sun.management.jmxremote.port»
"-Dcom.sun.management.jmxremote.rmi.port "Установлено для открытия того же порта, аутентификация пользователя не включена по умолчанию"
-Dcom.sun.management.jmxremote.authenticate=false» и не открывать SSL-туннель
”-Dcom.sun.management.jmxremote.ssl=false“
3. Для подключения клиента используйте для доступа реальный IP-адрес и порт, настроенные в «-Djava.rmi.server.hostname», и войдите в систему, используя пароль учетной записи, указанный в файле jmxremote.password.
4. Проверьте различные индикаторы
Просмотрите сводную информацию об основной информации в JVM, включая базовую информацию, такую как потоки, сборщик мусора, память и параметры запуска.
Просмотр и управление MBean (управлять Bean)
объект,Для мониторинга управления различными компонентами приложения;
Вы можете просмотреть базовое использование кучи памяти, потоков, классов и процессора.
Просмотрите подробную диаграмму использования оперативной памяти JVM.
Просмотрите подробную диаграмму использования JVM, на которой работает нить, и вы можете просмотреть стек вызовов нити.
Посмотреть линейную диаграмму загрузки классов JVM