Zabbix Java Gatewayを使ってJMX経由で何かしらの値を監視するときに、値の型がjava.lang.Doubleだとエラーになってしまい、監視できない。
そこで、エラーにならないように修正する。
元ネタは下記のフォーラムのコメント。
Zabbix 2.0.4のときに作ったけど、たぶん2.0.5でも動くはず。
パッチは下記の通りです。
パッチの当て方
- Zabbixのソースをダウンロード
http://www.zabbix.com/download.php
- 解凍
tar zxvf zabbix-2.0.4.tar.gz
cd zabbix-2.0.4/src/zabbix_java/
- パッチを当てる
patch src/com/zabbix/gateway/JMXItemChecker.java zabbix2.0.4_jmx_double_type.patch
- コンパイル
mkdir -p class/src
mkdir -p class/tests
javac -d class/src -classpath lib/org-json-2010-12-28.jar:lib/logback-core-0.9.27.jar:lib/logback-classic-0.9.27.jar:lib/slf4j-api-1.6.1.jar src/com/zabbix/gateway/*.java
jar cf bin/zabbix-java-gateway-2.0.4.jar -C class/src .
- インストールされているZabbix Java Gatewayと置き換える(RPMでインストールしてる場合)
cp -p bin/zabbix-java-gateway-2.0.4.jar /usr/sbin/zabbix_java/bin/
これでCassandraのLoadとか監視できます。
追記 Zabbixの寺島さんに言われてサポートサイトに投稿しました。
https://support.zabbix.com/browse/ZBX-6404
今度からZabbix使っていてバグなどを見つけたらここに報告しよう。