Tomcat 5.5 Мониторинг с JDK 1.4 в Windows
Согласно этой документации http://tomcat.apache.org/tomcat-5.5-doc/monitoring.html должна быть возможность удаленного мониторинга сервера Tomcat 5.5, работающего на JDK 1.4, но после поиска по всей сети и попытки Несколько ОС я до сих пор не дальше, чем в первый день. Мои результаты пока таковы. Установите Tomcat со стандартом
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=%my.jmx.port%
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=localhost
будет работать без проблем на JDK 1.5 и выше. Отладка в Tomcat дает мне доступ к MBeanServer, но я не могу подключиться к нему извне. Согласно информации из Википедии http://en.wikipedia.org/wiki/Java_Management_Extensions мне просто нужен работающий соединитель, и я понятия не имею, как это работает.
Попытка настроить HTTP-адаптер в соответствии с
<Connector port="${AJP.PORT}"
handler.list="mx"
mx.enabled="true"
mx.httpHost="${JMX.HOST}"
mx.httpPort="${JMX.PORT}"
protocol="AJP/1.3" />
не имеет никакого эффекта вообще. Когда я отлаживал, казалось, что атрибуты handler.list и mx.* Просто игнорируются. Я знаю, что должен просто использовать JDK 1.5, и мои опасения исчезнут, но у нас есть большая база устаревших версий JDK 1.4, и было бы здорово, если бы мы могли использовать мониторинг JMX. В конце концов я хочу использовать JConsole или JVisualVM для подключения к Tomcat, и, насколько я понимаю, URL-адрес подключения будет выглядеть
service:jmx:rmi:///jndi/rmi://localhost:8888/jmxrmi
были 8888 мой порт JMX. Если у кого-то есть какие-либо советы или идеи о том, как углубиться в корень проблемы, это будет очень полезно.
3 ответа
Поддержка JMX была добавлена в Java с версии 1.5 (JDK5). Чтобы использовать его с JDK 1.4, необходимо загрузить и установить расширение http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/download.jsp. Я не использовал его, но это может послужить отправной точкой (из http://java.sun.com/developer/technicalArticles/J2SE/jmx.html)
Внедрение технологий JMX
Платформа Java 2, Standard Edition 5.0 (J2SE 5.0) поддерживает JMX 1.2 и JMX Remote API 1.0, которая теперь является официальной эталонной реализацией JMX (RI). Для разработчиков, использующих J2SE 1.4, JMX RI также доступен от Sun Microsystems и может быть загружен бесплатно.
Для подключения извне попробуйте убрать линию
-Djava.rmi.server.hostname= локальный
Если вы используете Linux, сделайте так, как сказал @vinothkr для решения проблемы localhost при удаленном соединении JMX (файл /etc/hosts, замените 127.0.0.1 на IP-адрес сервера в строке, где отображается имя хоста сервера). Я думаю, что для Windows применимо то же самое.
Что касается разъема, это разъем вашего удаленного порта jmx в документации, которую вы прочитали. Соединитель, который вы настроили на server.xml по протоколу AJP / 1.3, не связан. Это касается связи между Apache HTTPd (или другим веб-сервером / балансировщиком нагрузки) и Tomcat.
Если вы смогли подключиться к JVM, работающему на компьютерах с Windows. Тогда проблема в вашем hosts.conf
Попробуйте hostname -i, если он сообщает 127.0.0.1, то есть проблема
Проверьте этот FAQ № 5. http://download.oracle.com/javase/1.5.0/docs/guide/management/faq.html
В качестве JMX используется перенаправление портов. Это вызывает проблему
У вас есть удаленный сервер определен?
-Djava.rmi.server.hostname=localhost"