Якщо розгортання Java вже надає авторизовану кінцеву точку Jolokia, клієнт моніторингу може читати атрибути JMX через звичайний прямий HTTP-проксі. Клієнт спілкується з Jolokia по HTTP, а Jolokia виконує операцію JMX на боці застосунку.

monitor → HTTP proxy → HTTPS Jolokia endpoint → MBean

Цей шлях потребує кінцевої точки керування з підтримкою HTTP. Спрямування незміненого нативного клієнта JMX на веб-проксі її не створює.

Наприклад, читання використання купи JVM можна виразити як POST-запит:

curl --proxy http://proxy.example.net:8080 \
  --header 'Content-Type: application/json' \
  --data '{"type":"read","mbean":"java.lang:type=Memory","attribute":"HeapMemoryUsage","path":"used"}' \
  https://monitor.example.net/jolokia/

Кінцева точка й проксі — це заповнювачі. Тут використовується операція читання; метод HTTP POST передає JSON-запит Jolokia, а не означає запису JMX. Jolokia також підтримує GET-запити для простих операцій, тоді як JSON POST уникає частини екранування URL, потрібного для складних імен MBean.

Для кінцевої точки керування HTTPS прямий проксі має дозволяти відповідний пункт призначення тунелю. TLS усе одно має перевіряти monitor.example.net. Власне ім'я хоста й сертифікат проксі, якщо саме з'єднання з проксі використовує TLS, описують окремий перехід.

Тримайте два рішення автентифікації окремо. Параметри автентифікації проксі в curl задають обліковий запис проксі. Автентифікація кінцевої точки задає ідентичність керування, а політика Jolokia визначає, до яких MBean і операцій є доступ. Дозвіл користуватися прямим проксі не є дозволом адмініструвати JVM.

Відповідь також має два рівні: стан транспорту HTTP і результат JSON-операції Jolokia. Перевіряйте повернені status і value, а не приймайте будь-яке тіло за успішну метрику. Помилки проксі, збої автентифікації кінцевої точки й відсутні MBean потребують різних змін.

Якщо розгортання надає лише нативний конектор JMX, виберіть шлях, сумісний із цим конектором, або організуйте затверджену кінцеву точку керування HTTP. Локальне переспрямування SSH — це інша схема транспорту, але воно залишається з'єднанням із нативним сервісом; воно не змінює його протокол на HTTP API Jolokia.

Схожі статті