Ad Widget
Collapse
Zorka: advanced java monitoring agent with native zabbix integration
Collapse
X
-
-
Zorka agent
I installed zorka agent to monitor several "server", but only loads the root directory configuration;
directory domain:
host.xml
<jvms>
<jvm name="default">
<heap size="256m" max-size="512m"/>
<permgen size="256m" max-size="256m"/>
<jvm-options>
<option value="-server"/>
<option value="-javaagent:/opt/zorka/zorka.jar=/opt/zorka"/>
</jvm-options>
</jvm>
</jvms>
<server name="appxxx" group="appcluster" auto-start="true">
<system-properties>
<property name="org.apache.coyote.http11.Http11Protocol.COMP RESSION" value="on"/>
<property name="org.apache.coyote.http11.Http11Protocol.COMP RESSION_MIME_TYPES" value="text/javascript,text/css,text/html"/>
<property name="zorka.home.dir" value="/opt/zorka/appxxx" boot-time="true"/>
</system-properties>
<socket-bindings socket-binding-group="full-ha-sockets" port-offset="0"/>
</server>
<server name="appxx1" group="appcluster" auto-start="true">
<system-properties>
<property name="org.apache.coyote.http11.Http11Protocol.COMP RESSION" value="on"/>
<property name="org.apache.coyote.http11.Http11Protocol.COMP RESSION_MIME_TYPES" value="text/javascript,text/css,text/html"/>
<property name="zorka.home.dir" value="/opt/zorka/appxx1" boot-time="true"/>
</system-properties>
<socket-bindings socket-binding-group="full-ha-sockets" port-offset="0"/>
</server>
jbosshome/bin/domain.conf
if [ "x$JBOSS_MODULES_SYSTEM_PKGS" = "x" ]; then
JBOSS_MODULES_SYSTEM_PKGS="org.jboss.byteman,com.j itlogic.zorka.core.spy"
fi
ZORKA="/opt/zorka"
JAVA_OPTS="$JAVA_OPTS -javaagent:$ZORKA/zorka.jar=$ZORKA"
Obs:
In each directory server there is a zorka.properties with different listening port
In /opt/zorka/appxxx
scripts = jvm.bsh, zabbix.bsh, jboss/jboss7.bsh
zabbix.server.addr = 192.168.XX.XX,127.0.0.1
zabbix.listen.port = 10065
zorka.hostname = eaphom1-appxxx
zorka.spy.compute.frames = yes
http.trace.exclude = ~.*.png, ~.*.gif, ~.*.js, ~.*.css, ~.*.jpg, ~.*.jpeg, ~.*favicon.ico
http.slow = yes
http.slow.time = 10000
http.error = yes
ejb.slow = yes
ejb.slow.time = 10000
ejb.error = yes
sql.slow = yes
sql.slow.time = 10000
sql.error = yes
jms.slow = yes
jms.slow.time = 10000
jms.error = yes
soap.slow = yes
soap.slow.time = 10000
soap.error = yes
In /opt/zorka/appxx1Comment
-
Hello,
I was struggling a week to find a solution to implement JBoss 6 and 4 into Zabbix 3.0.2 without no result. Today i found out Zorka, and im trying to implement it in my zabbix server. Here how i did :
- I setup a JBoss 6 for test in debian server
- I downloaded zorka last version adn unzip it into jboss directory, i added in the end of jboss/bin/standalone.conf :
JAVA_OPTS="$JAVA_OPTS -javaagent:/home/tawfik/jboss/jboss-eap-6.1/zorka/zorka.jar=/home/tawfik/jboss/jboss-eap-6.1/zorka"
- Starting jboss server with this commande :
./standalone.sh -Djboss.bind.address=192.168.0.12 -Djboss.bind.address.management=192.168.0.12
- I imported the template Template_Zorka_JBoss.xml to my zabbix for test perpuse.
- Added new host with template with Agent interfaces port 10056
RESULT : item "Not supported"
Here is my zorka.properties :
# Zorka configuration properties file.
# All configuration settings used by agent itself
# and agent extension scripts can be stored here.
# There is a lots of example settings that are commented.
# Consult documentation and uncomment+adjust needed ones.
# Set profile(s) suitable to application server (eg. tomcat, jboss5, jboss7).
# Basic configuration (plain JVM + zabbix) is uncommented with more examples below
# scripts = jvm.bsh, zabbix.bsh
# Example: Apache Tomcat configuration with CAS server
# scripts = jvm.bsh, zabbix.bsh, apache/tomcat.bsh, apps/cas.bsh
# Example: JBoss 4.2 with MySQL and LDAP
# scripts = jvm.bsh, zabbix.bsh, jboss/jboss4.bsh, jdbc/mysql.bsh, ldap.bsh
# Example: JBoss 5.1 with JBoss Portal and PostgreSQL database
# scripts = jvm.bsh, zabbix.bsh, jboss/jboss5.bsh, jboss/jportal.bsh, jdbc/pgsql.bsh
# Example: JBoss 6.1 with Spring application and PostgreSQL dataabase
scripts = jvm.bsh, zabbix.bsh, jboss/jboss6.bsh, spring/spring.bsh, jdbc/pgsql.bsh
# Example: JBoss 7.1
# scripts = jvm.bsh, zabbix.bsh, jboss/jboss7.bsh
# Example: Websphere 8.x with DB2 database (was.user and was.pass are required for PMI)
# scripts = jvm.bsh, zabbix.bsh, jdbc/db2.bsh, ibm/was.bsh
# was.user = zorka
# was.pass = z0RkA_c0nF1d3nt14l
# Example: Weblogic 12c and Oracle database
# scripts = jvm.bsh, zabbix.bsh, oracle/wls.bsh, jdbc/oracle.bsh
# Example: Mule ESB 3.4
# scripts = jvm.bsh, zabbix.bsh, apps/muleesb.bsh
# Example: Jetty web server
# scripts = jvm.bsh, zabbix.bsh, eclipse/jetty.bsh
# Zabbix agent is enabled by default. Uncomment this to disable zabbix integration.
# zabbix = no
# Zabbix Active Agent.
# zabbix.active = yes
# Zabbix Server's Address (IP:Port)
# zabbix.active.server.addr = 192.168.56.10:10051
# Add IP addresses of your zabbix servers here.
# Only servers from this list will be allowed to access agent using zabbix protocol.
zabbix.server.addr = IP
# Default port Zabbix protocol will listen on.
zabbix.listen.port = 10056
# Enter name of your application and host here.
# Should be unique for every monitored application.
zorka.hostname = srv12
# Switch this to setting to enable tracer and uncomment tracer.net or tracer.file to direct tracer data somewhere.
# tracer = yes
# Uncomment this and set proper IP address to send data to ZICO collector
# tracer.net = yes
# tracer.net.addr = 1.2.3.4
# tracer.net.port = 8640
# Uncomment this to save tracer data in local file. Deprecated.
# tracer.file = yes
# Uncomment this and set proper address to send data to Zabbix
# tracer.zabbix = yes
# tracer.zabbix.addr = 192.168.56.1
# tracer.zabbix.port = 8000
# Tuning tracer-zabbix integration
# tracer.zabbix.send.interval = 15
# tracer.zabbix.batch.size = 100
# Interesting tracer tunables
# Minimum execution time for trace to be sent to collector (in milliseconds)
# Not that this is global setting that can be overridden for particular subsystems (eg. HTTP)
# tracer.min.trace.time = 0
# Minimum time traced method has to execute in order to be recorded by tracer in nanoseconds (0.25ms in this example)
# tracer.min.method.time = 250000
# Maximum number of methods recorded per trace; this limit prevents agent
# from overruning host JVM memory when collecting huge trace;
# tracer.max.trace.records = 4096
# Interesting settings for HTTP monitoring
# Disables HTTP tracing (leaving other traced activities enabled)
# There is no reason to use this in most cases, at least unless it causes problems;
# http.trace = no
# This setting will override tracer.min.trace.time for HTTP requests
# http.trace.time = 5000
# URLs that should be excluded (by full URI or by regex)
# This is useful when
http.trace.exclude = ~.*.png, ~.*.gif, ~.*.js, ~.*.css, ~.*.jpg, ~.*.jpeg, ~.*favicon.ico
# Disables HTTP parameters collection by tracer
# http.params = no
# HTTP parameters that should be excluded by tracer
# This might be important for security reasons, (eg. password fields are good candidates for exclusion)
# http.params.exclude = j_password, password, newPassword, newPasswordRepeat
# Disables HTTP cookies collection by tracer
# http.cookies = no
# Cookies that should be excluded by tracer
# This might be important for security reasons (eg. session cookies are good candidates)
# http.cookies.exclude = JSESSIONID, jsessionid
# Disables HTTP headers collection by tracer
# http.headers = no
# This will cause only selected parameters to be collected. Everything else will be dropped.
# All three components (headers, cookies, parameters) have both .include and .exclude settings.
# The latter one is useful when only a handful things have to be dropped, the former one -
# when strict control over collected parameters is needed (eg. due to huge number of recorded data)
# http.headers.include = cache-control, connection, user-agent
# Enables slow HTTP request log (can be useful if we don't want to enable tracer but still want to see slow HTTP requests)
# http.slow = yes
# http.slow.time = 10000
# Enable HTTP error log (logs HTTP errors)
# http.error = yes
# Interesting EJB settings
# Disables EJB tracing
# ejb.trace = no
# Overrides EJB tracer.min.trace.time for EJB calls. Note that if EJB calls happen inside another trace
# (eg. HTTP), their data (arguments, class, method etc.) will be visible in parent trace. In such cases
# EJB traces can be 'promoted' to top level if their execution time exceeds defined threshold or if error occurs.
# ejb.trace.time = 5000
# Disables EJB argument processing. EJB arguments are recorded as attributes named ARG0, ARG1, ...
# ejb.params = no
# EJB inclusions and exclusions are done by data type. It is useful beacuse sometimes calling toString()
# methods of certain application classes might cause troubles due to poor implementation.
# ejb.params.exclude = some.problematic.Clazz, some.other.problematic.Clazz
# Slow EJB calls and error EJB call logs are configured the same way as their HTTP counterparts.
# ejb.slow = yes
# ejb.slow.time = 10000
# ejb.error = yes
# Interesting SQL settings
# Disables SQL tracing (not wise if overall tracer is enabled)
# sql.trace = no
# Minimum execution time for SQL trace to be "promoted" as top level trace.
# sql.trace.time = 1000
# Slow SQL queries or SQL errors are configured in the same way as tiehr HTTP counterparts.
# sql.slow = yes
# sql.slow.time = 10000
# sql.error = yes
# Interesting JMS settings
# Disables JMS tracing (not wise if overall tracer is enabled)
# jms.trace = no
# Minimum execution time for JMS trace to be "promoted" as top level trace.
# jms.trace.time = 1000
# Slow JMS handling or JMS handling errors are configured in the same way as their HTTP counterparts.
# jms.slow = yes
# jms.slow.time = 10000
# jms.error = yes
# Interesting SOAP settings
# Disables SOAP tracing (not wise if overall tracer is enabled)
# soap.trace = no
# Minimum execution time for SOAP trace to be "promoted" as top level trace.
# soap.trace.time = 1000
# Slow SOAP handling or SOAP handling errors are configured in the same way as their HTTP counterparts.
# soap.slow = yes
# soap.slow.time = 10000
# soap.error = yes
Thanks ahead,
Best regardsComment
Comment