Zabbix3.4からのJMXDiscovery
Zabbix3.4になりJMXによるLow Level Discovery(以下LDD)がサポートされました。
参考
「Zabbix3.4からの」と書いていますがZabbix3.2以前にJMXDiscoveryを利用していたがZabbix3.4の機能追加タイミングで取得方法を合わせようとしている人向けです
概要
Zabbix3.2以前でのJMXを用いたLDDではJMXDiscovery.jarを利用してLDDを再現していましたが、
Zabbix3.4にて標準でJMXからDiscoveryが生成できるようになりました。
機能的には、ほぼ取り込んだ動きです。
https://www.zabbix.org/wiki/Docs/howto/jmx_discovery
ページではjmx_discoveryの利用方法が記載されています。
目的、前提
Zabbix3.2以前からJMXDiscoveryを利用していて3.4の標準に対応したい
zabbix-java-gatewayはインストール済みでjmx取得が可能である
問題点、解決策
先に問題点
JMXDiscovery.jarで利用する際はコマンドラインから打ち込んで取得できるjson情報が確認できましたが、
Zabbixに内包されzabbix_get等コマンドから利用できない点です。
仕方がないのでアイテムを一つ追加し
・JMXエージェント
jmx.discovery[beans, <pattern>]
インターフェイス:任意のJMXインターフェイス<hostname[:port]>
ユーザー名:<optional username>
パスワード:<optional password>
データ型:テキスト
を利用しjsonデータのマッピング確認を取ることをおすすめします。
方法
Zabbix3.2以前でjmx_discoveryを利用しているものとして
ディスカバリルールの編集を行います。
・外部チェック
jmx_discovery[<pattern>,<hostname[:port]>,<optional username>,<optional password>]
ここをZabbix3.4風に書き換えると
・JMXエージェント
jmx.discovery[beans, <pattern>]
インターフェイス:任意のJMXインターフェイス<hostname[:port]>
ユーザー名:<optional username>
パスワード:<optional password>
とすることができます。
またプロトタイプでディスカバリーマクロを利用している部分が
{#PROPHOGEHOGE}
から
{#JMXHOGEHOGE}
に変わります。
ヒント
説明中には書き換えと記載していますが
実際そのまま書き換えにて動かすことができるため
これまで取得していたヒストリもそのまま継続することができます。
その他
jmxの情報は
jconsoleまたはOracle Java Mission Controlで取得しましょう。