Tomcatのプロセス監視
お世話になっております。
Zabbix 2.0.6を使用しているのですが、Tomcatのプロセスの監視設定を行いましたが上手くいきません。
設定値は以下の通りです。
■アイテム
[名前]:Tomcat Service is running
[タイプ]:Zabbixエージェント
[キー]:proc.num[tomcat]
[データ型]:数値(整数)
[データの形式]:10進数
■トリガー
[名前]:tomcat service is down on {HOSTNAME}
[条件式]:{Template App Server:proc.num[tomcat].last(0)}=0
最新データにて値を確認しても「0」となってしまいます。こちらはどの様にすれば
Tomcatのプロセス数を取得できるのでしょうか。
Tomcatのポート番号は 80と8009です。
以上です。よろしくお願い致します。
TNK - 投稿数: 4760
psコマンドで確認して頂けば、tomcatというプロセスは無い
と思います。
proc.num[]は、psコマンドで出力されるプロセスの名前を
指定してプロセスが起動しているかを確認するものですの
で、tomcatを実行しているプロセスを、psコマンドなどで
確認して、proc.num[]の引数に指定してみてください。
具体的な文字列に関しては、どのようにしてTomcatの環境を
構築されたかや、OSのディストリビューションやバージョン、
Javaの選択(OpenJDK or Oracle JDK)にも依存しますの
で、利用されている環境の情報を詳細にご提示ください。
KAZ - 投稿数: 1085
ararararaさん
TNKさんの指摘通り、tomcatという名前のプロセスは普通にインストールしたらできません。
普通はjavaプロセスが作られます。
で、1インスタンスのtomcatのプロセス数は1です。
もし、javaプロセスが2ついたら監視しようとしているtomcat以外のjavaアプリです。
ちなみに監視したいのはプロセスではなくてスレッドではないですか?
スレッド数監視したいなら、jmx監視が良いと思いますよ。
↓ここ参考にしてください
http://www.checksite.jp/zabbix-2-0-jmx-tomcat7-javagateway/
fripper - 投稿数: 495
私の場合、ですが、Tomcat に対する監視は、以下の2つを組み合わせています
KAZ さんの仰るとおり、JMX による監視を行えば、それ相応に詳細な監視ができるので
そちらのほうがオススメです
1.プロセスが動いているかどうか、だけを見るアイテム
proc.num[java,tomcat,,/opt/tomcat]
・プロセス名 java
・実行ユーザアカウント名 tomcat
・コマンドラインに含まれる文字列 $CATALINA_HOME / $CATALINA_BASE 環境変数に設定しているベースのディレクトリパス
私の使い方では、tomcat って、1インストールで1インスタンスしか起動しないので、
プロセス名が java で、実行ユーザが tomcat プロセスを起動しているべきユーザで、
なおかつコマンドラインに $CATALINA_HOME に示されるようなパスを含むプロセスは
必ず1つしか存在しておらず、なおかつ、必ず1つ存在していなければ、サービスが落ちていると
判断できるため、という理由で、上記のようなアイテム内容にしています
1.ポートが待ち受けをしているかどうか、だけを見るアイテム
net.tcp.listen[80]
LISTEN しているべきポート (http) がちゃんと LISTEN しているかだけを簡易的にみています
#後者のほうについては、「net.tcp.service[http,,80] 」としても良いかもしれません
#単に LISTEN しているか、という観点だけではなく、http サーバ的なレスポンスが
#正しいか、まで監視可能ですので。
arararara - 投稿数: 2
皆様ご回答の程、ありがとうございます。
TNKさんがおっしゃられる通り、プロセス名が間違っておりました。
プロセス名はlsof -i:8009にて確認しましたところ、[jsvc]となっておりましたので
こちらをproc.num[]にて設定し、問題なく値が取れました。
こちらの質問ですが、これで解決とさせて頂きます。
皆様方、本当にありがとうございました。