zabbix 2.2.1にてjmx-monitoringが応答しません。
いつもお世話になっております。
zabbixの初心者なのですが、zabbixを使ってのTomcatモニターリングがどうしてもできません。
zabbixはCentOS-6.4のYUMからzabbix22を使っております。サーバーモニターリングのためなので、サーバーにはエーゼントもインストールしています。
zabbix2.2の文書からjava gatewayを使う方法に従ってjava pollerは2つを、ポートは10053を利用しています。jmx-agentのポートは12345を利用しています。zabbix serverのポートはエーゼントと一緒に使おうとしたら、ポートが既に使われていると出たので、10052を使っています。アイテムはTemplate JMX Generic, Template JMX Tomcat, こちらから見つけたTemplate JMX Tomcat7を使ってみました。
Tomcat
のCatalina_OPTSから-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=***.***.***.***は追加していますし、jconsoleを使ってのモニターリングには成功しました。でもウェブUIからは"サーバーネーム is not rechable."の警告がついたままで、なんのデータも読めていません。
よろしくお願いします。
TNK - 投稿数: 4769
CentOS標準のyumリポジトリには、Zabbixは登録されていません。
zabbix22というパッケージ名から推測するに、epelのyumリポジト
リを利用されていませんか?
epelに登録されているzabbix22パッケージだけでは、JMXを利用し
た監視はできません。
というのも、epelに登録されているzabbix22のパッケージは、JMX
用のオプションを有効にしてコンパイルされていませんし、JMXを
利用した監視に必要な、Zabbix Java Gatewayと呼ばれるデーモン
がパッケージとして提供されていません。
Zabbixの機能を利用してJMXの監視を行われたいのであれば、epel
のパッケージではなく、Zabbix SIAが提供しているyumリポジトリ
を利用してzabbixをインストールしてください。
Zabbix SIAのyumリポジトリを利用してインストールする方法は、
マニュアルをご参照ください。
追加として、Zabbix Java Gatewayを利用するのであれば、
zabbix-java-gateway
というパッケージもインストールしてください。
そうすると、zabbix-serverと同様に、
zabbix-java-gateway
という起動スクリプトも用意されますので、それを利用してZabbix
Java Gatewayも起動するように設定してください。
zabbix_server.confのJava関連の、
JavaGateway
JavaGatewayPort
StartJavaPollers
の設定が起動したJava Gatewayに合っているかも確認しておいてく
ださい。
Zabbixサーバと同じホスト上でJava Gatewayを起動されたのであれ
ば、Java Gatewayの設定を変更していなければ、
JavaGateway=127.0.0.1
JavaGatewayPort=10052
でアクセスできたと思います。
一応、/var/log/zabbix/zabbix_server.logなど、ログファイルに
エラーや警告が出力されていないかもご確認ください。
ご参考:
マニュアル: 3 パッケージからのインストール
https://www.zabbix.com/documentation/2.2/jp/manual/installation/install_...
マニュアル: 14 JMX監視
https://www.zabbix.com/documentation/2.2/jp/manual/config/items/itemtype...
デーモンの設定: 1 Zabbixサーバ
https://www.zabbix.com/documentation/2.2/jp/manual/appendix/config/zabbi...
KAZ - 投稿数: 1085
unclokさん
念の為、補足です。
以下のように通信して監視します。
Zabbixサーバのjava poller <-> Zabbix java Gateway <-> 監視対象のjvmのJMX
なので、TNKさんも書かれていますがZabbix java Gateway無いと監視できません。
後、zabbix_server.confのJavaGatewayPortはzabbix_java_gateway.confのLISTEN_PORTと同じにしてください。
※:デフォルト10052です。
JavaGatewayPortを10053にしたら、zabbix_java_gateway.confのLISTEN_PORTも10053にしてください。
ホストの設定画面のJMXインターフェースのポートはjmx-agent?のポート(12345)を指定してください。
で、yumでZabbix java Gateway入れると下記のファイルができます。
/usr/sbin/zabbix_java/lib/logback.xml
そのファイルでxxxxxxのところにdebugと設定すればログレベルがデバッグになります。
traceと設定すればログレベルがトレースになります。
<root level="xxxxxx">
ログは <file>タグで指定されているところに出力されます。
デフォルトは/var/log/zabbix/zabbix_java_gateway.logに出力されます。
上手く取れない時はこちらのログも見てください。
unclok - 投稿数: 3
はい、私もそれで設定ファイルでzabbix java gateway portを設定したわけでしたが、そもそもビルド自体がjava gatewayがなかったとは思いもしませんでした(汗)
ローグでずっとjava gatewayと通信ができないと出ていたので、何か問題があるとは思いましたが、まさかそれが問題だったとは…
教えてくださったローグ方法は使わせて頂きます。
色々教えていただき、ありがとうございます!
unclok - 投稿数: 3
お答えありがとうございます!
はい、そうでした。CentOSじゃなくてepelレポジタリーを使っています。混乱させてしまい申し訳ありません。
そうでしたか。ビルドからにして存在していなかったわけですね。それじゃ働かなくて当然です(汗)。
教えて頂いたzabbix repositoryを利用してみます。
どうもありがとうございました!