Ad Widget

Collapse

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

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • dyuha85
    Member
    • Aug 2012
    • 41

    #1

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

    Добрый день!

    Пытаюсь настроить мониторинг Tomcat 6 сервера средствами Zabbix 2.0.3.
    Предыдущий опыт мне не помог , т.к. сейчас настройка происходит на разных серверах и ещё они крутятся на Amazon.

    1. На Амазоне в Security group открыл порт 10052

    2. На сервере Tomcat установил jconsole

    3. На сервере Tomcat в catalina.sh прописал следующее:

    CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.password.file=/usr/share/tomcat6/conf/remote.users -Dcom.sun.management.jmxremote.access.file=/usr/share/tomcat6/conf/remote.acl -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=10052 -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=127.0.0.1"

    4. В zabbix_java прописано

    avaGateway=localhost
    JavaGatewayPort=10052
    StartJavaPollers=3

    5. В интерфейсе Zabbix'a завёл запись хоста с портом 10052.

    В итоге показвает красный значок JMX и пишет ошибку [ ZBX_TCP_READ() failed: [4] Interrupted system call ]


    Подскажите пожалуйста где я ошибся.

    Заранее спасибо.
  • dima_dm
    Senior Member
    • Dec 2009
    • 2697

    #2
    Я думаю, что проблема в ключе
    -Djava.rmi.server.hostname=127.0.0.1
    Т.е. слушает только интерфейс Localhost, а должен бандиться на IP сервера.

    Comment

    • dyuha85
      Member
      • Aug 2012
      • 41

      #3
      Originally posted by dima_dm
      Я думаю, что проблема в ключе
      -Djava.rmi.server.hostname=127.0.0.1
      Т.е. слушает только интерфейс Localhost, а должен бандиться на IP сервера.
      Насколько я вас понял, нужно ставит внешний IP и в случае amazona даже использовал private IP, но ничего не помогало. Также пробовал ставить внешний IP java_gateway (в данный момент тоже localhost), но не поднимался, писал ошибку "Could not bind IP".

      Comment

      • dima_dm
        Senior Member
        • Dec 2009
        • 2697

        #4
        Нужно ставить IP, который реально присутствует на интерфейсе сервера. И проверить настройки NAT, если этот IP частный. В настройках Zаbbix, естественно, нужно указывать публичные IP сервера ( т.е. IP после трансляции).

        Comment

        • dyuha85
          Member
          • Aug 2012
          • 41

          #5
          Originally posted by dima_dm
          Нужно ставить IP, который реально присутствует на интерфейсе сервера. И проверить настройки NAT, если этот IP частный. В настройках Zаbbix, естественно, нужно указывать публичные IP сервера ( т.е. IP после трансляции).
          Дело в том, что если я указываю нешний IP сервера, то zabbix java не может забиндиться с внешним IP, показывает след

          --------------------------------------------------------------------------
          2013-01-22 07:08:57.141 [main] INFO com.zabbix.gateway.JavaGateway - Zabbix Java Gateway 2.0.3 (revision 30485) has started
          2013-01-22 07:08:57.159 [main] ERROR com.zabbix.gateway.JavaGateway - caught fatal exception
          java.net.BindException: Cannot assign requested address
          at java.net.PlainSocketImpl.socketBind(Native Method) ~[na:1.6.0_24]
          at java.net.AbstractPlainSocketImpl.bind(AbstractPlai nSocketImpl.java:353) ~[na:1.6.0_24]
          at java.net.ServerSocket.bind(ServerSocket.java:336) ~[na:1.6.0_24]
          at java.net.ServerSocket.<init>(ServerSocket.java:202 ) ~[na:1.6.0_24]
          at com.zabbix.gateway.JavaGateway.main(JavaGateway.ja va:65) ~[zabbix-java-gateway-2.0.3.jar:na]
          2013-01-22 07:08:57.161 [Thread-0] INFO com.zabbix.gateway.JavaGateway - Zabbix Java Gateway 2.0.3 (revision 30485) has stopped

          -------------------------------------------------------------------------

          Среди Амазоновских серверов есть ещё втнутренние IP, вот он и localhost биндятся, но тут мне кажется не в этом дело.

          Zabbix java показывает след ошибку



          -----------------------------------------------------------------------
          Caused by: java.rmi.ConnectException: Connection refused to host: 10.202.98.17; nested exception is:
          java.net.ConnectException: Connection timed out
          at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEnd point.java:619) ~[na:1.6.0_24]
          at sun.rmi.transport.tcp.TCPChannel.createConnection( TCPChannel.java:216) ~[na:1.6.0_24]
          at sun.rmi.transport.tcp.TCPChannel.newConnection(TCP Channel.java:202) ~[na:1.6.0_24]
          at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:1 28) ~[na:1.6.0_24]
          at javax.management.remote.rmi.RMIServerImpl_Stub.new Client(Unknown Source) ~[na:1.6.0_24]
          at javax.management.remote.rmi.RMIConnector.getConnec tion(RMIConnector.java:2343) ~[na:1.6.0_24]
          at javax.management.remote.rmi.RMIConnector.connect(R MIConnector.java:296) ~[na:1.6.0_24]
          at javax.management.remote.JMXConnectorFactory.connec t(JMXConnectorFactory.java:267) ~[na:1.6.0_24]
          at com.zabbix.gateway.JMXItemChecker.getValues(JMXIte mChecker.java:92) ~[zabbix-java-gateway-2.0.3.jar:na]
          ... 4 common frames omitted
          Caused by: java.net.ConnectException: Connection timed out
          at java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.6.0_24]
          at java.net.AbstractPlainSocketImpl.doConnect(Abstrac tPlainSocketImpl.java:327) ~[na:1.6.0_24]
          at java.net.AbstractPlainSocketImpl.connectToAddress( AbstractPlainSocketImpl.java:193) ~[na:1.6.0_24]
          at java.net.AbstractPlainSocketImpl.connect(AbstractP lainSocketImpl.java:180) ~[na:1.6.0_24]
          at java.net.SocksSocketImpl.connect(SocksSocketImpl.j ava:384) ~[na:1.6.0_24]
          at java.net.Socket.connect(Socket.java:546) ~[na:1.6.0_24]
          at java.net.Socket.connect(Socket.java:495) ~[na:1.6.0_24]
          at java.net.Socket.<init>(Socket.java:392) ~[na:1.6.0_24]
          at java.net.Socket.<init>(Socket.java:206) ~[na:1.6.0_24]
          at sun.rmi.transport.proxy.RMIDirectSocketFactory.cre ateSocket(RMIDirectSocketFactory.java:40) ~[na:1.6.0_24]
          at sun.rmi.transport.proxy.RMIMasterSocketFactory.cre ateSocket(RMIMasterSocketFactory.java:146) ~[na:1.6.0_24]
          at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEnd point.java:613) ~[na:1.6.0_24]
          ... 12 common frames omitted

          ------------------------------------------------------------------------

          10.202.98.17 это внутренний апишник сервака (то есть амазоновские сервера видят друг друга по внутренним IP), как я понял ошибка говорит о том, что порт закрыт фаерволом. Но порт благополучно открыть, проверял телнетом.

          В браузере показывает такую ошибку

          ZBX_TCP_READ() failed: [4] Interrupted system call

          Я уже не знаю куда копать, мысли и деи уже иссякли.


          Буду искренне рад вашей помощи.

          Спаибо

          Comment

          • dima_dm
            Senior Member
            • Dec 2009
            • 2697

            #6
            telnet-oм с Zabbix_server проверяли доступность порта по внешнему IP?

            Comment

            • dyuha85
              Member
              • Aug 2012
              • 41

              #7
              Originally posted by dima_dm
              telnet-oм с Zabbix_server проверяли доступность порта по внешнему IP?
              Коннект идёт с Java машины на Zabbix и наоборот по порту 10052

              Comment

              • dyuha85
                Member
                • Aug 2012
                • 41

                #8
                Originally posted by dyuha85
                Коннект идёт с Java машины на Zabbix и наоборот по порту 10052
                Самое интересное то, что соединение то идёт

                netstat -an | grep 10052
                tcp 0 0 :::10052 :::* LISTEN
                tcp 0 0 ::ffff:xx.xxx.xx.xx:10052 ::ffff:xx.xx.xxx.xx:36004 ESTABLISHED

                Но Zabbix java усиленно показывает connection time out

                Comment

                • Mrshpaks
                  Junior Member
                  • May 2014
                  • 4

                  #9
                  Понимаю что тема уже давно умерла, но все-таки стоит попробовать.
                  Столкнулся с такой же проблемой с поднятием Java Gateway на AWS. Все тожде самое что и у ТСа.
                  ТС отзовись, может решил проблему.
                  Спасибо!

                  Comment

                  • Mrshpaks
                    Junior Member
                    • May 2014
                    • 4

                    #10
                    Оставлю свой след для тех, кто сталкнется с этой же проблемой. Мне помогло вот это

                    Comment

                    Working...