Hello,
I am trying to setup JMX monitoring with Zabbix 2.0.0 for Jboss 7 and Jboss server responds with message:
After some digging in source files I found that Zabbix Java has a different endpoint hardcoded in JMXItemChecker.java on line 60:
While proper endpoint for Jboss 7 would be (https://community.jboss.org/wiki/Usi...ctToJMXOnAS7):
I have double checked this with dedicated jboss jconsole for both endpoints and the one used in zabbix source results in ERROR message on the server.
Is there a possibility to make this parameter configurable through GUI or configuration files?
EDIT: Changing endpoint and recompilation makes it work with one modification of startup.sh, extra libs from jboss 7 should be imported:
I am trying to setup JMX monitoring with Zabbix 2.0.0 for Jboss 7 and Jboss server responds with message:
12:56:18,478 ERROR [org.jboss.remoting.remote.connection] (Remoting "server:MANAGEMENT" read-1) JBREM000200: Remote connection failed: java.io.IOException: Received an invalid message length of 1246907721
url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://" + conn + ":" + port + "/jmxrmi");
service:jmx:remoting-jmx://{host_name}:{port}
Is there a possibility to make this parameter configurable through GUI or configuration files?
EDIT: Changing endpoint and recompilation makes it work with one modification of startup.sh, extra libs from jboss 7 should be imported:
#!/bin/bash
cd $(dirname $0)
source settings.sh
if [ -n "$PID_FILE" -a -e "$PID_FILE" ]; then
echo "Zabbix Java Gateway is already running"
exit 1
fi
JAVA=${JAVA:-java}
JBOSS_HOME=/opt/jboss
export JBOSS_HOME
JAVA_OPTIONS="-server"
if [ -z "$PID_FILE" ]; then
JAVA_OPTIONS="$JAVA_OPTIONS -Dlogback.configurationFile=logback-console.xml"
fi
CLASSPATH="lib"
for jar in {lib,bin}/*.jar; do
if [[ $jar != *junit* ]]; then
CLASSPATH="$CLASSPATH:$jar"
fi
done
ZABBIX_OPTIONS=""
if [ -n "$PID_FILE" ]; then
ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.pidFile=$PID_FILE"
fi
if [ -n "$LISTEN_IP" ]; then
ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.listenIP=$LISTEN_IP"
fi
if [ -n "$LISTEN_PORT" ]; then
ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.listenPort=$LISTEN_PORT"
fi
if [ -n "$START_POLLERS" ]; then
ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.startPollers=$START_POLLERS"
fi
CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/jconsole.jar
CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar
if [ "x$JBOSS_MODULEPATH" = "x" ]; then
JBOSS_MODULEPATH="$JBOSS_HOME/modules"
fi
MODULES="org/jboss/remoting3/remoting-jmx org/jboss/remoting3 org/jboss/logging org/jboss/xnio org/jboss/xnio/nio org/jboss/sasl org/jboss/marshalling org/jboss/marshalling/river"
for MODULE in $MODULES
do
for JAR in `cd "$JBOSS_MODULEPATH/$MODULE/main/" && ls -1 *.jar`
do
CLASSPATH="$CLASSPATH:$JBOSS_MODULEPATH/$MODULE/main/$JAR"
done
done
COMMAND_LINE="$JAVA $JAVA_OPTIONS -classpath $CLASSPATH $ZABBIX_OPTIONS com.zabbix.gateway.JavaGateway"
if [ -n "$PID_FILE" ]; then
PID=$(/bin/bash -c "$COMMAND_LINE > /dev/null 2>&1 & echo \$!")
if ps -p $PID > /dev/null 2>&1; then
echo $PID > $PID_FILE
else
echo "Zabbix Java Gateway did not start"
exit 1
fi
else
exec $COMMAND_LINE
fi
cd $(dirname $0)
source settings.sh
if [ -n "$PID_FILE" -a -e "$PID_FILE" ]; then
echo "Zabbix Java Gateway is already running"
exit 1
fi
JAVA=${JAVA:-java}
JBOSS_HOME=/opt/jboss
export JBOSS_HOME
JAVA_OPTIONS="-server"
if [ -z "$PID_FILE" ]; then
JAVA_OPTIONS="$JAVA_OPTIONS -Dlogback.configurationFile=logback-console.xml"
fi
CLASSPATH="lib"
for jar in {lib,bin}/*.jar; do
if [[ $jar != *junit* ]]; then
CLASSPATH="$CLASSPATH:$jar"
fi
done
ZABBIX_OPTIONS=""
if [ -n "$PID_FILE" ]; then
ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.pidFile=$PID_FILE"
fi
if [ -n "$LISTEN_IP" ]; then
ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.listenIP=$LISTEN_IP"
fi
if [ -n "$LISTEN_PORT" ]; then
ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.listenPort=$LISTEN_PORT"
fi
if [ -n "$START_POLLERS" ]; then
ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.startPollers=$START_POLLERS"
fi
CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/jconsole.jar
CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar
if [ "x$JBOSS_MODULEPATH" = "x" ]; then
JBOSS_MODULEPATH="$JBOSS_HOME/modules"
fi
MODULES="org/jboss/remoting3/remoting-jmx org/jboss/remoting3 org/jboss/logging org/jboss/xnio org/jboss/xnio/nio org/jboss/sasl org/jboss/marshalling org/jboss/marshalling/river"
for MODULE in $MODULES
do
for JAR in `cd "$JBOSS_MODULEPATH/$MODULE/main/" && ls -1 *.jar`
do
CLASSPATH="$CLASSPATH:$JBOSS_MODULEPATH/$MODULE/main/$JAR"
done
done
COMMAND_LINE="$JAVA $JAVA_OPTIONS -classpath $CLASSPATH $ZABBIX_OPTIONS com.zabbix.gateway.JavaGateway"
if [ -n "$PID_FILE" ]; then
PID=$(/bin/bash -c "$COMMAND_LINE > /dev/null 2>&1 & echo \$!")
if ps -p $PID > /dev/null 2>&1; then
echo $PID > $PID_FILE
else
echo "Zabbix Java Gateway did not start"
exit 1
fi
else
exec $COMMAND_LINE
fi
Comment