Ad Widget

Collapse

настройка мониторинга jmx

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Atonin
    Junior Member
    • Mar 2018
    • 8

    #1

    настройка мониторинга jmx

    Доброго времени суток!
    Прошу указать решение проблемы. В web-интерфейсе для узла сети настраиваю мониторинг JMX.
    Индикатор «JMX» горит красным и в длинном описании проблемы: … «В соединении отказано».
    Выполнил следующие действия:
    1. На Zabbix сервере (IP 192.168.77.1) настроил Java Gateway:
    ./configure --enable-java
    make && make install

    2. Создались директории, в том числе со скриптами запуска, останова и настроек.
    3. В этом файле setting.sh раскомментировал параметры и указал значения:
    listen_IP = 192.168.77.1
    listen_port = 10052
    start_pollers = 5
    timeout = 3

    4. В файле конфигурации Zabbix сервера раскомментировал параметры и указал значения:
    JavaGateway=192.168.77.1
    JavaGatewayPort=10052
    StartJavaPollers=4

    5. Перезапустил Zabbix сервер и запустил Zabbix Java Gateway -> startup.sh
    6. В web-интерфейсе для узла сети в поле «Интерфейс JMX»
    указал IP этого узла (192.168.77.2) и порт 12345.

    7. Присоединил стандартные шаблоны для мониторинга счетчиков JMX и перезапустил агента.

    Не понимаю как Java Gateway будет мониторить узел, если привязки никакой нет.
    Или в интерфейсе JMX для узла нужно указывать IP Java Gateway?
    Из мануала я понял, что сервер цепляет java шлюз, шлюз опрашивает все узлы
    с настроенным интерфейсом JMX. Или опрос проводит сервер через агентов?
    Правильно ли указываю IP адреса для привязки?
    С помощью шаблонов для операционной системы сервер получает от агента данные,
    т.е. агент работает правильно.
    Last edited by vitalijs.m; 21-03-2018, 10:53.
  • Atonin
    Junior Member
    • Mar 2018
    • 8

    #2
    Установил в интерфейсе JMX для узла IP, соответствующий запущенному на сервере Java Gateway (т.е. в моем случае 192.168.77.1)
    Теперь пишет следующее: java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.CommunicationException [Root exception is java.rmi.ConnectIOException: non-JRMP server at remote endpoint]
    Кто нибудь подскажет куда дальше обратить внимание?
    Last edited by Atonin; 19-03-2018, 13:47.

    Comment

    • Atonin
      Junior Member
      • Mar 2018
      • 8

      #3
      Сервер Zabbix установлен на виртуалке с ОС Linux (Debian). После экспериментов web-сервис стал недоступен. При попытке входа на сервер отображалось сообщение: "База данных недоступна". В чем причина этой ошибки не разобрался, в гугле ответа не нашел.
      Откатился на виртуалке к последней точке с рабочими параметрами. Теперь для всех узлов пишет: " cannot connect to [[192.168.77.1]:10052]: [113] No route to host".
      Удалил пару узлов сети и создал их снова. Результат отрицательный.
      Хост и сервер доступны друг для друга по ping. Никаких файерволов нет. Ошибок в логах не наблюдаю. Неоднократно перезапускал сервисы сервера, агента, JavaGateway.
      Last edited by Atonin; 21-03-2018, 10:11.

      Comment

      • Atonin
        Junior Member
        • Mar 2018
        • 8

        #4
        Спасибо огромное, форумчанам, администрации и всем-всем за активное участие в решении моего вопроса)))
        Называется: "Сам спросил, сам ответил".

        Итак:
        1. По первой записи #1 этого поста по настройке сервера, шлюза и хоста пункты 1-7 верны. Сервер цепляет java шлюз, шлюз опрашивает все узлы с настроенным интерфейсом JMX. Данные от java приложения получает агент и отдает в шлюз.
        2. Данные от java приложения агент получает благодаря запуску этого приложения со следующими минимальными параметрами:
        -Dcom.sun.management.jmxremote
        -Dcom.sun.management.jmxremote.port=12345
        -Dcom.sun.management.jmxremote.authenticate=false
        -Dcom.sun.management.jmxremote.ssl=false
        *Порт должен совпадать с тем, который указан в "Интерфейсе JMX" конкретного хоста.

        3. Пример батника: java -jar -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false
        -Dcom.sun.management.jmxremote.ssl=false <имя вашего файла (без угловых скобок)>.jar

        4. Эти данные можно указать в конфигурационных файлах тех приложений, которые вы собираетесь мониторить. Например если tomcat устанавливался как сервис через apt-get install – найти и отредактировать файл tomcat.conf, и добавить в него опции для поддержки JMX.
        JAVA_OPTS="${JAVA_OPTS} -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false
        -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.77.2"

        -Djava.rmi.server.hostname - IP узла сети

        5. Если переживаете за безопасность и всё такое... смотрите https://www.zabbix.com/documentation...jmx_monitoring

        6. По второй записи #2 данного поста: указанное сообщение об ошибке связано с неверным указанием IP узла сети или порта в "Интерфейсе JMX", но не с тем, что неправильно задан JMX endpoint.

        7. Сообщение об ошибке: java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: 192.168.54.12; nested exception is: java.net.ConnectException: Connection refused (Connection refused)]
        висит до тех пор, пока вы не запустите приложение с параметрами.

        8. По ошибке cannot connect to [[192.168.77.1]:10052]: [113] No route to host ничего не могу пояснить. Психанул и поставил zabbix сервер на реальной машине с Linux-ом.

        З.Ы. Кроме этого, настроил мониторинг HDD SMART LLD, PostgreSQL, температуры и скорости вентилятора процессора. Кому интересно, пишите в личку.
        Всем удачи в освоении перспективных технологий!

        Comment

        • Viks
          Junior Member
          • Mar 2018
          • 24

          #5
          Чтобы не было ошибок из серий:
          Failed to retrieve RMIServer
          No route to host
          Connection refused

          Необходимо в своём /etc/hosts прописать самого себя:
          <real IP> <full-hostname> <short-hostname>
          naprimer:
          192.168.xxx.yyy myservername.domain.com myservername

          Its Java,
          Welcome to Java world.

          Comment

          • Atonin
            Junior Member
            • Mar 2018
            • 8

            #6
            Продолжаем эксплуатировать мониторинг jmx!!!
            И теперь прошу прояснить вопрос, связанный с безопасностью: какие должны быть сделаны дополнения в параметры запуска java-приложения, чтобы данные от него не были доступны удаленно?
            Мне нужно чтобы данные счетчиков JMX были доступны только локально на той машине, где крутится моё приложение. Мне представляется, что агент Zabbix должен получать данные (в том числе, полученные по интерфейсу JMX) локально на той машине, где установлен и отправлять всё на сервер. Просмотрел и официальную документацию и другие источники, но как оформить своё решение не сообразил. Аутентификацию и SSL сейчас не рассматриваю.

            1. Подобрал следующие параметры:
            -Dcom.sun.management.jmxremote
            -Dcom.sun.management.jmxremote.port=12345
            -Djava.rmi.server.hostname=localhost
            -Dcom.sun.management.jmxremote.authenticate=false
            -Dcom.sun.management.jmxremote.ssl=false

            Если использовать эту комбинацию, в jconsole на локальной машине можно посмотреть данные по конкретному приложению, на удаленной машине в jconsole подключение по запросу 192.168.77.1:12345 недоступно.
            В web-интерфейсе Zabbix индикатор JMX красный - сигнализирует об отсутствии подключения к мониторингу моего приложения.

            2. Добавил -Dcom.sun.management.jmxremote.local.only=true, заменил -Djava.rmi.server.hostname=localhost на -Djava.rmi.server.hostname=192.168.77.1
            Результат: в jconsole на локальной машине можно посмотреть данные по конкретному приложению, на удаленной машине в jconsole также доступны данные мониторинга.
            В web-интерфейсе Zabbix индикатор JMX зеленый - сигнализирует о наличии подключения к мониторингу моего приложения, в пункте "Последние данные" присутствуют показатели счетчиков JMX.

            Спецы нужна помощь!!!
            Last edited by Atonin; 08-06-2018, 08:53.

            Comment

            Working...