読者です 読者をやめる 読者になる 読者になる

ksaitoの日記

日々試したことの覚え書き

zabbix_get_jmx

zabbixでjmxを監視する場合、疎通確認をするための簡単な方法がありませんでした。

http://zabbix.org/wiki/Docs/howto/zabbix_get_jmx:zabbix_get_jmxで公開されているスクリプトを使って簡単に疎通確認する手順です。

スクリプトのインストール

任意の場所にzabbix_get_jmxを保存して実行権限を付けます。 ZBXGETにzabbix_getのフルパスを設定すれば準備完了です。

[root@5d0b757ade36 bin]# pwd
/usr/local/bin
[root@5d0b757ade36 bin]# ls -l
total 704
-rwxr-xr-x 1 root root 321010 Jan 23 00:38 zabbix_get
-rwxr-xr-x 1 root root    307 Jan 23 13:23 zabbix_get_jmx
-rwxr-xr-x 1 root root 390502 Jan 23 00:38 zabbix_sender
[root@5d0b757ade36 bin]# cat zabbix_get_jmx 
#!/usr/bin/env bash

ZBXGET="/usr/local/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"
[root@5d0b757ade36 bin]# 

疎通確認

下記のように、引数に、zabbix_java_gatewayのサーバとポート、監視対象のjmxのサーバとポート、jmxのキーを指定すると結果が返ってきます。

[root@5d0b757ade36 bin]# ./zabbix_get_jmx localhost 10052 localhost 12345 'jmx[\"java.lang:type=Threading\",ThreadCount]'
{"data":[{"value":"19"}],"response":"success"}
[root@5d0b757ade36 bin]#