Zabbix: JMX監視について
バージョンによって手順に違いがあったり、公式ドキュメントでも日本語化されていない部分があったりしたので
導入のポイントをメモしておく。
環境
監視サーバ
- zabbix-server 2.2
- Zabbix Java Gateway (後述) を同居
監視対象サーバ
- RedHat Enterprise Linux または Cent OS (もちろんこれ以外でも動作する)
- zabbix-agent
- 適当な JVM アプリケーション
- 適当な JMX ポートを決定し、監視サーバから接続可能にすること
監視対象サーバの設定
JMX ポートの起動
JVM の標準機能である JMX を有効にする。
起動スクリプトなどで JAVA_OPTION を指定すればよい。
設定例 (セキュリティ関連の項目は必要に応じて書き換えること)
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
疎通確認
監視サーバからの疎通確認には、cmdline-jmxclient を使うと便利だった。
実行例 (適当なディレクトリ配下で)
curl -O http://crawler.archive.org/cmdline-jmxclient/cmdline-jmxclient-0.10.4.jar java -jar cmdline-jmxclient-0.10.4.jar - xxx.xxx.xxx.xxx:12345 java -jar cmdline-jmxclient-0.10.4.jar - xxx.xxx.xxx.xxx:12345 java.lang:type=Threading
Exception が発生せず、何らかの情報が表示されればひとまずOK。
補足
ネットワーク関連の問題が発生した場合、JVM の起動オプションで以下のように自分自身のIPアドレスを明記することで解決する場合がある。
監視対象サーバ自身のIPアドレスを書く
-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx
監視サーバの設定
Zabbix Java Gateway のインストール
Zabbix 2.2 の場合(であっても)、zabbix-server を入れただけでは JMX の監視はできない。
ソースをダウンロードしてビルドする方法もあるが、パッケージが公開されているのでそのままインストールしたほうが簡単だ。
実行例 (サービス登録および起動も実施)
# rpm -Uv http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-java-gateway-2.2.0-1.el6.x86_64.rpm # chkconfig zabbix-java-gateway on # service zabbix-java-gateway start
設定ファイルの編集
- /etc/zabbix/zabbix_server.conf の修正 (一部抜粋)
Timeout=30 JavaGateway=127.0.0.1 JavaGatewayPort=10052 StartJavaPollers=5
Java Gateway はデフォルトでは10052ポートで起動する。
Timeout の修正(デフォルト5秒) については、デメリットもあるので問題が起きた場合にのみ書き換えたほうがよいかもしれない。
参考: zabbix_server.confのTimeoutについて | ZABBIX-JP
設定ファイルを保存したら、zabbix-server から再読み込み (または再起動)。
監視設定
ここから先は Zabbix の管理画面(GUI)での操作となる。
ホスト設定
Configuration -> Hosts -> 監視対象サーバ を選択。
JMX interfaces の部分で Add をクリックし、IPアドレスとJMXポートを指定して Save。
テンプレート・アイテム設定
ひとまずは標準の Template JMX Generic を使ってみるのを勧める。
Configuration -> Templates -> Template JMX Generic を選択。
Group または Host の追加を行った後、Save。
ダッシュボード画面で ホストにひもづく JMX のアイコンが緑色になればOKだ。
References
0 件のコメント:
コメントを投稿