Ad Widget

Collapse

Zorka: advanced java monitoring agent with native zabbix integration

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • rlewczuk
    Junior Member
    • Jan 2014
    • 5

    #1

    Zorka: advanced java monitoring agent with native zabbix integration

    I'm proud to announce Zorka - java monitoring agent I was [slowly] implementing over the last year and a half. Zorka offers a bunch of features over then standard java gateway as present in Zabbix. It can be useful for application administrators who need to go beyond what is immediately visible via JMX. Zorka agent embeds itself in monitored JVM (via -javaagent:... option) and communicates with Zabbix server using native Zabbix protocols, so in that regard it is somewhat similiar to how Zapcat used to work, except it works on JVM level, not as manually deployed (or coded) integration.

    Quick feature list:
    • extended JMX access/traversal functionalities - as agent works inside monitored JVM, it can quickly access any object reachable from JMX, including non-serializable objects (which is often a problem for remote tools using RMI);
    • low level discovery with sophiscated filtering and in-depth traversal (eg. in order to monitor EJB methods in JBoss, one needs to find all object names matching some mask, then descend into 'stats' attribute, then list method names, then find 'count' and 'time' attribute of each listed method etc.);
    • bytecode instrumentation - allows for measuring performance for arbitrary methods of arbitrary classes, classifying (eg. SQL calls per database name) and aggregating statistics, presenting aggregated stats via JMX to Zabbix or sending traps to zabbix;
    • bean shell integration - agent can be extended with Bean Shell functions that can be directly visible to Zabbix; bytecode instrumentation engine is also fully programmable via Bean Shell, so agent can access arbitrary data from running application (limited by knowledge of application internals);
    • advanced tracing/profiling capabilities - this one goes a beyond Zabbix and requires dedicated data collector as Zabbix is not capable of handling this kind of data: it allows for recording and viewing method call trees from requests handled by application (eg. HTTP); this is useful for application administrators and developers to spot problems (bugs, performance problems etc.); I'm not aware of any open source agent capable of this - Zorka is propably the first one;
    • many monitoring system integrations - it also talks Nagios (NRPE), syslog and SNMP protocols, yet Zabbix integration is by far most advanced, most frequently used, thus most thoroughly tested;



    Zorka comes with a bunch of ready to use zabbix templates for Tomcat, JBoss 4/5/6, JBoss 7, Mule ESB, Websphere (PMI), Jetty. There are also common EJB, HTTP, LDAP and SQL templates that use aggregates generated by agent's bytecode instrumentation engine. As for SQL, support for the following JDBC drivers comes out of the box: MSSQL, MySQL, PostgreSQL, Oracle , H2 and DB2. Adding support additional JDBC drivers is as easy as creating additional configuration script that instruments JDBC driver.


    Zorka has been in development for more than a year, yet I was refraining from public announcements up to this point (in order to be free to change its APIs, feature sets etc.). As of today, agent has been battle-tested in quite a few production scenarios (trace collector to a lesser degree but it still has been deemed useful by fellow admins where I've installed and configured it). Advanced configuration (especially scripting) can pose problems there were not many people doing more than standard installation and playing with out-of-the-box features, yet I'm ready to help anyone adventurous enough to try scripting zorka agent and I'm waiting for feedback (what is difficult, what is buggy, what is missing etc.).

    You can find binaries and documentation on: http://zorka.io

    Source code is available via GitHub repository

    There are also mailing lists: Zorka Users, Zorka Developers. Lists have been dormant up until now, this is the first time I'm announcing their existence, feel free to post questions there.


    Regards,
    rle
    Last edited by rlewczuk; 16-01-2014, 09:33. Reason: Move supported platforms section.
  • rlewczuk
    Junior Member
    • Jan 2014
    • 5

    #2
    Zorka 0.9.16 released

    New version provides a bunch of bugfixes plus additional functionalities and ready to use Zabbix templates for JMS monitoring.

    It also provides functionality of submitting slow/error HTTP/EJB/SQL/JMS requests/calls/queries directly to Zabbix using trapper protocol - this works for all currently supported application servers: JBoss, Websphere, Tomcat, Jetty WLS and all currently supported (out of the box) JDBC drivers.

    Comment

    • lcondado
      Member
      • May 2006
      • 37

      #3
      Excellent tool, THANKS.

      This is the basic WebSphere monitoring with Zorka.
      .
      Attached Files

      Comment

      • Yello
        Senior Member
        • Apr 2011
        • 309

        #4
        Hi,
        What's the performance footprint of this tool like? What can my development teams expect if it's added to their JVMs?


        Regards,
        David

        Comment

        • Virtul
          Junior Member
          • Jun 2011
          • 7

          #5
          rlewczuk, your work is outstanding! Thanks for sharing it with the community. I've asked our developers to review it, hope we'll integrate it to our software in future

          Comment

          • rlewczuk
            Junior Member
            • Jan 2014
            • 5

            #6
            Zorka performance footprint

            Hi,

            Performance footprint of zorka agent depends on features enabled and on number of zabbix queries issued.

            When only zabbix integration is in use (plus instrumentation of single methods), footprint is neligible. When large number of queries is issued (it can happen when zabbix autodiscovers lots of objects - eg. EJB beans), it can be visible. For example on older xeon system (Core2 architecture) and SunJDK6, when zabbix was querying ~20 items per second (= ~1200 items per minute as it discovered several hundreds of EJB beans), agent was consuming around 30% CPU (30% of single core). Modern xeons (SandyBridge) should see less than a half of that amount.

            When full application profiling is enabled (that is, instrumenting and tracing all classes and all methods), agent needs to be tuned and tested on some non-production environment first. Properly tuned agent should incur overhead of less than 2% - this is standard in all tools featuring bytecode instrumentation and transaction tracing. But beware: badly configured, not tested tracer can incur 100% or even more ! So when tracer is enabled, it has to be tested thoroughly (I'm planning some form of automatic tuning where agent tries to reach predefined target, say 2% but it will take some time).

            I assume that folks on this forum will first try just zabbix integration, so it is safe to assume that agent will not incur noticeable (measurable) overhead.

            Comment

            • rlewczuk
              Junior Member
              • Jan 2014
              • 5

              #7
              Zorka 1.0.3 is out.

              Hi everyone,

              First, thank you for warm reception in previous posts


              I'm proud to introduce Zorka 1.0.3.

              It is third officialy stable release of Zorka agent. All features (as described in previous posts) are now more refined and matured. Zorka is now capable of monitoring Java8 applications and some newest application servers (eg. Wildfly 8.0 with its new web container - Undertow).

              Some 50 ready to use zabbix templates are now distributed with agent - covering popular application servers and java frameworks.

              Regards,
              rle

              Comment

              • PaulBanks
                Junior Member
                • Jul 2014
                • 1

                #8
                Hi There,

                We have integrated Zorka in to some of our application servers and are using the HTTP monitoring to collect request time's and number of requests on a given server.

                We have been seeing strange behaviour on some of our servers however.

                Since running Zorka, our servers have been getting 'blockages' when trying to hit application to application webservice calls. this is causing the following error :

                java.lang.Error: IP Helper Library GetAdaptersAddresses function failed

                All the machines are running on windows server 2008 and websphere 7. We have it running also on a windows 2003 server which has so far not exhibited this error.

                any pointers would be most appreciated.

                Paul

                Comment

                • rlewczuk
                  Junior Member
                  • Jan 2014
                  • 5

                  #9
                  @PaulBanks

                  Paul,

                  This is strange. Are you using only zabbix-related functionality or full tracer functionality ?

                  Can you send me zorka.properties file (without WAS account/password properties of couse): [email protected] ?

                  Comment

                  • mkumar
                    Junior Member
                    • Jul 2015
                    • 1

                    #10
                    New to Zorka Agent

                    Hi,

                    I'm new to zorka, can anyone explain me how i can configure zorka to monitor my existing java application deployed in tomcat 7 in linux machine.

                    I was following zorka web page but un fortunetellu there is no luck.
                    as i was following below steps after that also i could not able to see any log file uncer zorka\log directory.

                    1. install the tomcat in Linux machine
                    2. copy the zorka agent under tomcat home directory
                    3. edit the zorka.property file with below details:
                    # Example: Apache Tomcat configuration with CAS server
                    scripts = jvm.bsh, zabbix.bsh, /home/ec2-user/bin/tomcat8/zorka/scripts/apache/tomcat.bsh, apps/cas.bsh
                    zorka.spy.compute.frames = yes
                    tracer = yes
                    4.copy the tomcat.bsh file into zorka/script/apache folder
                    5. added CATALINA_OPTS="$CATALINA_OPTS -javaagent:/home/ec2-user/bin/tomcat8/zorka/zorka.jar=/home/ec2-user/bin/tomcat8/zorka" into tomcat\bin\catalina.sh file(in the end of file).
                    on zorka site, its showing to add this line into <server-home>/bin/Catalina.conf but unfortunately catalina.conf is not available anywhere in tomcat directory.
                    7. deployed existing web project into tomcat webapps folder
                    6. started the tomcat with startup.sh command
                    7. tomcat started


                    not able to see any activity logged in zorka\log directory.

                    early answer will be appreciated from my end.

                    Comment

                    • Tec_Technician
                      Member
                      • Dec 2015
                      • 39

                      #11
                      Question about not supported

                      Hi!

                      First congratulations for your good job on Zorka.

                      I just need help to monitor one wildfly installation.

                      Follow the instructions in Zorca website http://zorka.io/install/jboss7.html and using the parameters here http://zorka.io/install/zabbix.html.

                      Zorca version : Last version on website
                      Zabbix Agent and server version : 2.0.4.

                      -Import the templates.
                      -Configure to the host checking ports (10056)

                      But when 60 seconds pass all the items from the Zorca templates became Not supported.
                      In lastes data all the items looks like get 0 in all kind of values.

                      I tried to check the zorca log to find answers but...the folder log is empty...

                      please, could someone tell me what i should check to fix my problem??

                      Thank you for your time
                      Last edited by Tec_Technician; 31-03-2016, 19:31. Reason: Forget to add important info.

                      Comment

                      • abovebeyond
                        Member
                        • Dec 2015
                        • 32

                        #12
                        Hi rlewczuk, qurt

                        We running Windows 2008 r2 with Quartz Scheduler on in, is it possible to install Zorka agent on windows and monitoring quartz jobs ?


                        Thanks !

                        Comment

                        • Tec_Technician
                          Member
                          • Dec 2015
                          • 39

                          #13
                          All working.

                          Originally posted by Tec_Technician
                          Hi!

                          First congratulations for your good job on Zorka.

                          I just need help to monitor one wildfly installation.

                          Follow the instructions in Zorca website http://zorka.io/install/jboss7.html and using the parameters here http://zorka.io/install/zabbix.html.

                          Zorca version : Last version on website
                          Zabbix Agent and server version : 2.0.4.

                          -Import the templates.
                          -Configure to the host checking ports (10056)

                          But when 60 seconds pass all the items from the Zorca templates became Not supported.
                          In lastes data all the items looks like get 0 in all kind of values.

                          I tried to check the zorca log to find answers but...the folder log is empty...

                          please, could someone tell me what i should check to fix my problem??

                          Thank you for your time
                          Sorry for the trouble, now all is working.
                          I erased all the config and files and start again from 0 and now all is working.
                          It is Important to remember that the Zorka Agent and the Zabbix Agent must have diferent ports asigned.

                          Comment

                          • Tec_Technician
                            Member
                            • Dec 2015
                            • 39

                            #14
                            Confirm and question

                            Hi!!
                            Have anyone confirm if Zorka works on Zabbix last version 3.0.0 ??

                            I exported a template from Zabbix 2.0.2 to 3.0.0 and check all the settings but the items get not supported.

                            In the test environment it works fine zorka last version and zabbix 2.0.2, but in the real environment with zabbix 3.0.0 is not working well.

                            Any suggestions?

                            Thanks for your time ;-)

                            Comment

                            • andris
                              Zabbix developer
                              • Feb 2012
                              • 228

                              #15
                              Maybe it is a good idea to describe Zorka in
                              Join the friendly and open Zabbix community on our forums and social media platforms.

                              and
                              The Zabbix Team has collected all official Zabbix monitoring templates and integrations.


                              Then more users will know about it.

                              Comment

                              Working...