-
Notifications
You must be signed in to change notification settings - Fork 71
Kafka monitoring
Dmytro edited this page Aug 12, 2016
·
2 revisions
yum install -y zabbix-java-gataway
mcedit /etc/zabbix/zabbix_java_gateway.conf
Uncoment and set START_POLLERS=10
mcedit /etc/zabbix/zabbix_server.conf
Uncoment and set to StartJavaPollers=5 Change IP for JavaGateway=IP_address_java_gateway
/etc/init.d/zabbix-java-gataway restart
chkconfig --level 345 zabbix-java-gataway on
/etc/init.d/zabbix-java-gataway start
cd /opt/kafka/bin
mcedit kafka-run-class.sh
change from
# JMX settings
if [ -z "$KAFKA_JMX_OPTS" ]; then
KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false - Dcom.sun.management.jmxremote.ssl=false "
fi
to
# JMX settings
if [ -z "$KAFKA_JMX_OPTS" ]; then
KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 - Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false "
fi
Add to /etc/supervisord.conf that lines
[program:kafka]
command=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
directory=/opt/kafka/
autostart=true
autorestart=true
stopasgroup=true
startsecs=10
startretries=999
log_stdout=true
log_stderr=true
logfile=/var/log/kafka/supervisord-kafka.out
logfile_maxbytes=20MB
logfile_backups=10
/etc/init.d/supervisord restart
#Upload scripts for discovery JMX
git clone https://github.com/helli0n/kafka-monitoring.git
cd zabbix/kafka
cp jmx_discovery /etc/zabbix/externalscripts
cp JMXDiscovery-0.0.1.jar etc/zabbix/externalscripts
##Import template Log in to your zabbix web
Click Configuration->Templates->Import
Download template zbx_kafka_templates.xml and upload to zabbix Then add this template to Kafka and configure JMX interfaces on zabbix
Enter Kafka IP address and JMX port If you see jmx icon, you configured JMX monitoring good!
if you have problems you can check JMX using this script #!/usr/bin/env bash
ZBXGET="/usr/bin/zabbix_get"
if [ $# != 5 ]
then
echo "Usage: $0 <JAVA_GATEWAY_HOST> <JAVA_GATEWAY_PORT> <JMX_SERVER> <JMX_PORT> <KEY>"
exit;
fi
QUERY="{\"request\": \"java gateway jmx\",\"conn\": \"$3\",\"port\": $4,\"keys\": [\"$5\"]}"
$ZBXGET -s $1 -p $2 -k "$QUERY"
eg.: ./zabb_get_java zabbix-java-gateway-ip 10052 server-test-ip 12345 'jmx[java.lang:type=Threading,PeakThreadCount]'