TomcatがUnix環境で動作しているかどうかを人々が通常どのように確認するかを知りたいです。
プロセスが実行中であることを確認する
ps -ef | grep Java
ps -ef | grep logging
またはポート番号がアクティブであることを確認します
netstat -a | grep 8080
tomcatが実行されていることを確認するためのより良い方法はありますか?上記はTomcatが実行されていることを確認するための「ハックな」方法のようです。
Pidがgrep ps
ファイルに書き込まれたのに、なぜ$CATALINA_PID
なのでしょうか。
Tomcatが停止しているときに電子メールを送信するcron
チェッカースクリプトがあります。
kill -0 `cat $CATALINA_PID` > /dev/null 2>&1
if [ $? -gt 0 ]
then
echo "Check Tomcat" | mailx -s "Tomcat not running" [email protected]
fi
あなたのTomcatの健全性をチェックするのにwget
を使うこともできると思います。ユーザ負荷などのある診断ページがある場合は、それを定期的に取得して解析し、問題がないかどうかを判断できます。
私のLinuxシステムでは、startup.shスクリプトを使ってTomcatを起動します。それが実行されているかどうかを知るために、私は使用します
ps -ef | grep Tomcat
出力結果に私のTomcatフォルダへのフルパスが含まれていれば、それは実行中です。
代わりにこれを試してみてください。ルート権限が必要なのでSudo
Sudo service Tomcat7 status
Tomcatのlistenポートを知っていれば、おそらくnetstat -lnp | grep 8080
が最善の方法です。それが機能していることを確認したい場合は、接続を確立し、HTTPリクエストを送信してレスポンスを取得する必要があります。これはプログラム的に、または任意のWebブラウザを使用して実行できます。
Tomcatがローカルにインストールされている場合は、ブラウザウィンドウに次のURLを入力します。{localhost:8080}
これにより、Tomcatのホームページに次のメッセージが表示されます。
これを見ていれば、Tomcatは正常にインストールされています。おめでとうございます。
Tomcatが別のサーバーにインストールされている場合は、replace localhostを有効なホスト名、またはTomcatがインストールされている場所に置き換えます。
上記はTomcatがデフォルトのポート8080を使う標準インストールに適用されます。
以下の方法でTomcatのステータスを確認できます。
ps -ef | grep Tomcat
Tomcatが実行されている場合、これはTomcatのパスを返します
netstat -a | grep 8080
8080はTomcatのポートです。
wget url
またはcurl url
ここで、urlはTomcatサーバーの利用可能なURLです(例:wget http://localhost:8080
)。終了コードが0の場合は、終了コードを確認します。Tomcatが起動しています。
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はかなり扱いにくいと思いました。私はよく知られているページをつかみ、その内容を計算済みの期待値と比較しようとします。
いつもしています
tail -f logs/catalina.out
そこを見ると
INFO: Server startup in 77037 ms
それから私はサーバーが稼働していることを知っています。
あなたは警報システムを設定しようとしていますか?単純な「ハートビート」の場合は、TomcatポートにHTTPリクエストを送信します。
より綿密な監視のために、JVM統計を表示するためにJMXやSNMPを設定することができます。 Tomcatのメモリ使用量をチェックし、10〜15分ごとにスレッドプールサイズを要求するために、SNMPプラグイン(JMXへのブリッジ)を使ってNagiosを実行します。
http://Tomcat.Apache.org/Tomcat-6.0-doc/monitoring.html
更新(2012):
Tomcatプロセスをチェックするために "monit"を使用するようにシステムをアップグレードしました。私は本当にそれが好き。ごくわずかな設定で、サービスが実行されていることを自動的に確認し、実行されていない場合は自動的に再起動します。 (Eメールアラートを送信する) /etc/init.dスクリプトと統合したり、プロセス名で確認したりできます。
私のTomcatインスタンスはTomcat_という名前です。例えば。 Tomcat_8086、私が使っています
#
ps aux | grep Tomcat
他の方法はncユーティリティを使用しています
nc -l 8086
(ポート番号)または
ps aux | grep Java
Tomcat.sh
はあなたがこれを簡単に知るのを助けます。
Tomcat.shの使用方法は次のとおりです。
引数なし:実行中ならTomcatのプロセスIDを表示し、そうでなければ何もしません
だから、あなたのコマンドプロンプトでコマンドを実行し、pidをチェックしてください:
$ Tomcat.sh
このコマンドを試してください
ps -ef | awk '/[t]omcat/{print $2}'
Tomcatが実行中の場合はpidを返します。
$ Sudo netstat -lpn |grep :8080
ポート番号を確認する
$ ps -aef|grep Tomcat
Tomcatがサーバーの下で稼働しているかどうか。
tsssinfotech-K53U infotech # ps -aef|grep Tomcat
root 9586 9567 0 11:35 pts/6 00:00:00 grep - colour = auto Tomcat
これが私の2セントです。
私のクラスタセットアップでは、異なるポートで複数のTomcatインスタンスを実行しています。次のコマンドを使用して、異なるポートで実行されている各プロセスを確認します。
/sbin/fuser 8080/tcp
必要に応じてポート番号を交換してください。
そしてプロセスを強制終了するには、上記のコマンドで-k
を使用します。
ps -ef
の方法や、コマンドを呼び出してその上に別のgrep
を呼び出す他のコマンドよりもはるかに高速です。BSD
オペレーティングシステムでの同等のコマンドはfstat
です。
基本的にテストしたい
最初の2つの選択肢は、3番目の選択肢が既に十分に回答されているので評価します。
最も簡単なのは、いくつかの基本的な測定基準を収集するWebページ上のWebページを作成し、その結果を読んだり接続の問題を検出したりできるクライアントを用意することです。
そうするためには、いくつかの問題があります