Как ограничить доступ к JMX API ActiveMQ только локальным хостом/интранетом?
Вопрос
Я только начал использовать JMX для мониторинга activemq, я включил удаленный мониторинг.Теперь вопрос: как предоставить доступ к JMX API только локальному хосту?Или есть способ использовать JMX API без включения удаленного мониторинга.
Решение
Потратив несколько часов на поиск решения в Google, я наткнулся на эту статью. https://wiki.internet2.edu/confluence/display/CPD/Monitoring+Tomcat+with+JMX в котором показано, как настроить JMX для Tomcat и как предоставить доступ к JMX через rmi.Опция «-Djava.rmi.server.hostname=test-idc.internet2.edu» указывает имя хоста, на котором запущен Tomcat.Если вы не укажете имя хоста, то при попытке подключения с удаленного компьютера выдается сообщение «Ошибка подключения».
Все, что вам нужно сделать, это установить свойство -Djava.rmi.server.hostname=localhost в вашем сценарии запуска activemq.
if [ -z "$SUNJMX" ] ; then
#SUNJMX="-Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
SUNJMX="-Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=localhost"
fi
Вот и все...перезапустите activemq, и jmx будет доступен только с вашего локального компьютера.