1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

monit経由での Tomcat/httpd 再起動ログ確認メモ

Posted at

こんにちは。

前回は Tomcat と httpd のログ確認入門 をまとめました。
今回は monit 経由で再起動した場合のログ確認 に焦点を当ててみます。

「ログ確認って何から見ればいいの?」という初級者向けです。

この記事が以下のような方の参考になればうれしいです。
・初めて Linux サーバ上の Tomcat / httpd を扱う人
・運用作業を安全に行いたい初心者向け

0. monit とは?

💡 monit は サービスやプロセスを監視・管理するツール です。

  • サービスが落ちていないか監視
  • 異常を検知した場合に自動で再起動や通知を実行
  • 直接プロセスを管理するのではなく、systemdservice コマンドを呼び出して操作する

0. この記事で扱った環境

💡 まずは、この記事で確認したサーバ環境をざっくり整理します。

項目 内容
OS / サービス管理 Linux 系(systemd 管理、CentOS7 以降を想定)
Web サーバ Apache HTTP Server (httpd)
アプリケーションサーバ Tomcat(Spring Framework アプリケーション)
HTTPS 証明書 更新作業後に再起動が必要
サービス監視 monit から systemd 経由で再起動
ログ確認方法 systemd ログ:journalctl -u tomcat / httpd
Tomcat アプリログ:/opt/tomcat/logs/localhost.log(古いログは .gz 圧縮)
補足 Tomcat はアプリ初期化に時間がかかる(Spring Context 読み込みなど)
httpd は軽量で秒単位で再起動可能

環境を意識しながらログ確認の手順や時間感覚を理解すると、より安全に作業できます。


1. 背景

  • サーバ証明書更新やアプリ更新の際、monit から Tomcat や httpd の再起動を実施
  • 「monit から呼ばれた systemd は、どのタイミングで実際にプロセスを停止/起動したのか?」
  • 「アプリはちゃんと停止・起動したのか?」をログで確認したかった

2. monit 経由再起動のイメージ

  1. monit がサービス停止/起動のコマンドを実行

    systemctl stop tomcat
    systemctl start tomcat
    
  2. systemd が実際のプロセス停止・起動を管理

  3. Tomcat 本体が停止 → アプリ停止 → 起動 → アプリ初期化

  4. systemd が終了状態を感知

  5. monit が次のチェックに進む

ポイント:monit 自体はプロセス管理せず、systemd 経由で実際の操作が行われる

3. systemd のログで確認

例えば Tomcat の停止・起動ログ:

sudo journalctl -u tomcat -r | head -n 20

ログ例:

Stopping Apache Tomcat 8...
PID file was not removed
Tomcat did not stop in time
Stopped Apache Tomcat 8
Starting Apache Tomcat 8...
Tomcat started
Server startup in 30 sec

🔹 ポイント

  • Stopping... → monit が stop を呼び出した直後
  • Stopped → systemd がプロセス停止を確認した瞬間
  • Starting... → monit が start を呼び出した直後
  • Server startup → Tomcat がアプリ初期化まで完了した瞬間

4. localhost.log でアプリ停止・起動を確認

Tomcat のアプリ停止・起動は localhost.log に詳細が出ます。

sudo zgrep -H "13:1" /opt/tomcat/logs/localhost.log-2025-11-22.gz

出力例:

13:15:25 Destroying Spring FrameworkServlet 'dispatcherServlet'
13:15:52 Initializing Spring embedded WebApplicationContext
13:16:34 Initializing Spring DispatcherServlet 'dispatcherServlet'

🔹 ポイント

  • 停止開始 → destroy → root context close → 完了
  • 起動開始 → WebApplicationContext 初期化 → DispatcherServlet 初期化 → 完了

5. monit / systemd / Tomcat のタイムライン例

時刻 イベント どのログに出るか
14:00:00 monit stop 実行 monit stdout / systemd journal
14:00:01 systemd stop 実行開始 systemd journal
14:00:06 Tomcat アプリ停止完了 localhost.log
14:00:10 systemd stop 完了 systemd journal
14:00:15 monit start 実行 monit stdout / systemd journal
14:00:20 Tomcat アプリ起動開始 localhost.log
14:00:50 Tomcat アプリ起動完了 localhost.log
14:00:57 systemd start 完了 systemd journal
14:01:00 monit 次のチェックへ monit stdout

6. 初心者向けポイント

  1. monit は直接サービスを停止していない → systemd 経由で操作される
  2. systemd は Tomcat / httpd 本体のプロセスの停止・起動を管理
  3. Tomcat アプリの初期化・終了は localhost.log で確認
  4. httpd は軽量なので秒単位で再起動可能

7. 実務への活かし方

  • 証明書更新やアプリ更新の再起動作業で、正しい順序と時間感覚を把握できる
  • monit と systemd の連携理解 → ログ解析やトラブルシュートが早くなる
  • アプリ停止・起動時間を見積もる → 作業手順書に具体的数字を記載できる

8. 自分の学び

  • monit が呼び出す systemd とアプリログの関係が理解できた
  • 初心者でも、journalctl + zgrep で安全に確認できる
  • 再起動にかかる実時間を把握することで、作業手順の安心感が増す

✅ 次のステップ

  • systemd 側で TimeoutStopSecRestartSec の設定を確認
  • monit のチェック周期を調整して無駄な再起動を防ぐ
  • 複数アプリがある場合のタイムライン整理

ポイント:ログ確認は慣れれば短時間でできる。
monit → systemd → アプリの流れを理解すると、トラブルシュートも怖くない!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?