回答:
なぜgrep ps
、pidが$CATALINA_PID
ファイルに書き込まれたのですか?
cron
Tomcatがダウンしたときに電子メールを送信する'dチェッカースクリプトがあります。
kill -0 `cat $CATALINA_PID` > /dev/null 2>&1
if [ $? -gt 0 ]
then
echo "Check tomcat" | mailx -s "Tomcat not running" support@dom.com
fi
wget
Tomcatの状態を確認するためにも使用できると思います。ユーザーロードなどの診断ページがある場合、定期的にフェッチして解析し、問題がないかどうかを判断できます。
tasklist |find /I "Tomcat" || echo "Tomcat not running"
batファイルでの行に沿って何かをすることができますが、プロセス名が何であるかによっては、Tomcatではなくjavaを見つける必要があるかもしれません。
ps aewwx | grep CATALINA_PID
。他の環境変数の中で、実行中のプロセスの出力にそれが見つかります。Debian 8では、この値は次のとおりです。CATALINA_PID= / var / run / tomcat8.pid
代わりにこれを試してください。ルート権限が必要なため、sudoを使用してください。
sudo service tomcat7 status
tomcat7: unrecognized service
netstat -lnp | grep 8080
Tomcatのリスニングポートを知っている場合は、おそらく最良の方法でしょう。これが機能していることを確認したい場合は、接続を確立してHTTP要求を送信し、応答を取得する必要があります。これはプログラムで、または任意のWebブラウザーを使用して行うことができます。
Tomcatがローカルにインストールされている場合は、ブラウザーウィンドウに次のURLを入力します。{localhost:8080}
これにより、次のメッセージを含むTomcatホームページが表示されます。
これが表示されている場合、Tomcatは正常にインストールされています。おめでとう!
tomcatが別のサーバーにインストールされている場合は、replace localhostを有効なホスト名に置き換えるか、tomcatがインストールされている場所に入力します。
上記は、tomcatがデフォルトのポート8080を使用する標準インストールに適用されます。
Tomcatが起動しているかどうかをチェックするシェルスクリプトを作成し、shのcronを設定して数分ごとにチェックするようにし、停止している場合はTomcatを自動起動します。以下のコードのサンプルスニペット
TOMCAT_PID=$(ps -ef | awk '/[t]omcat/{print $2}')
echo TOMCAT PROCESSID $TOMCAT_PID
if [ -z "$TOMCAT_PID" ]
then
echo "TOMCAT NOT RUNNING"
sudo /opt/tomcat/bin/startup.sh
else
echo "TOMCAT RUNNING"
fi
Tomcatは、実行中のプロセスまたは開いているポートが必ずしも実際に要求を処理していることを意味するわけではないという点で、かなり気難しいと感じました。私は通常、既知のページを取得し、そのコンテンツを事前に計算された期待値と比較しようとします。
警告システムを設定しようとしていますか?単純な「ハートビート」の場合は、TomcatポートにHTTPリクエストを送信します。
より複雑な監視を行うには、JMXやSNMPを設定してJVM統計を表示できます。NagiosをSNMPプラグイン(JMXへのブリッジ)で実行して、Tomcatのメモリ使用量をチェックし、10〜15分ごとにスレッドプールサイズを要求します。
http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html
アップデート(2012):
「monit」を使用してTomcatプロセスをチェックするようにシステムをアップグレードしました。私は本当にそれが好き。非常に少ない構成で、サービスが実行されていることを自動的に確認し、実行されていない場合は自動的に再起動します。(メールアラートを送信する)。/etc/init.dスクリプトと統合したり、プロセス名で確認したりできます。
私のtomcatインスタンスにはtomcat_という名前が付けられています。例えば。tomcat_8086、私は使用します
#
ps aux | grep tomcat
他の方法はncユーティリティを使用しています
nc -l 8086
(ポート番号 )または
ps aux | grep java
基本的にテストしたい
3番目の選択肢はすでに十分に回答されているので、最初の2つの選択肢を評価します。
最も簡単なのは、いくつかの基本的なメトリックを収集するWebApp上のWebページを開発し、結果を読み取ったり、接続の問題を検出したりできるクライアントを用意することです。
そのためには、いくつかの問題があります
これが私の2セントです。
クラスター設定用に複数のTomcatインスタンスを異なるポートで実行しています。次のコマンドを使用して、異なるポートで実行されている各プロセスを確認します。
/sbin/fuser 8080/tcp
必要に応じてポート番号を置き換えます。
そして、プロセスを強制終了するに-k
は、上記のコマンドで使用します。
ps -ef
、コマンドを呼び出しgrep
てその上で別のコマンドを呼び出す方法や他のコマンドよりもはるかに高速です。BSD
オペレーティングシステムでの同等のコマンドは次のとおりです。fstat