テクノロジーガイド

Apache Tomcatの監視と管理方法

2 min read 監視 更新されました 19 Sep 2025
Apache Tomcatの監視と管理ガイド
Apache Tomcatの監視と管理ガイド

概要

このドキュメントは、Apache Tomcatをプロダクションで安定稼働させるための監視と管理の基本フローを解説します。対象はTomcatを稼働させるサーバ上にVerax NMSなどの監視システムを導入している運用担当者です。

用語(1行定義):

  • JMX: Java Management Extensions。Tomcatの内部情報を外部から取得する標準的な仕組み。
  • センサー: 監視システムが定期的に問い合わせる監視ポイント。

重要: 本稿ではVerax NMSの画面例を用いて解説しますが、概念は他の監視ツール(Prometheus + JMX Exporter、Datadog、New Relicなど)にも応用できます。

目的と関連キーワード

主目的: Apache Tomcatの可用性・性能を継続監視すること。関連の検索語句例: Tomcat 監視、Tomcat JMX、Tomcat センサー、Tomcat アラート設定。

事前準備

  1. Tomcatサーバーの管理権限を持つこと。JMX接続に必要なポートを開放できること。
  2. Verax NMSなどの監視サーバが対象ホストに接続できるネットワーク経路を確認すること。
  3. TomcatのJMXが有効であること。JMX未設定の場合は後述の起動オプションを参考に設定してください。

注意: 複数インスタンスが同一ホストで稼働する場合、各インスタンスごとに別のJMXポートを割り当てることを推奨します。

インベントリにApache Tomcatを追加する(手順)

この章は、Tomcatインスタンスを監視対象としてVerax NMSに登録する実務手順です。

  1. Verax NMSにログインし、メインメニューから「Home」を選択します。
  2. 左側のアスペクトツリーで、Tomcatを稼働させているデバイス(ホスト)を選びます。

アスペクトツリーの例

  1. Summaryタブで、Actionsセクションから「Manage applications」を選択します。

アプリケーション管理の操作

  1. ポップアップダイアログが表示されます。

追加ダイアログの表示

  1. コンテキストメニューから「Add application」を選び、Goをクリックします。ダイアログが表示されます。

アプリケーションタイプ選択画面

  1. Application typesから「Apache Tomcat」を選択します。

  2. 以下のアプリケーション固有パラメータを入力します(ツールによって若干のフィールド名差異あり)。

    • Instance name: インスタンスを識別する任意名。
    • Host: 多くの場合、インスタンスが稼働するデバイスのIPアドレス。
    • Port: Tomcatの接続ポート(例:HTTPポート、JMXポートなど)。
    • User / Password: Tomcat管理用の認証情報(必要な場合)。
    • JMX Connection: JMX接続URL(例:service:jmx:rmi:///jndi/rmi://:/jmxrmi)。
    • JMX User / JMX Password: JMX接続に認証が必要な場合の資格情報。

注意: 選択したアプリケーションタイプにより入力フィールドが異なります。不要なフィールドは空欄にしてください。

  1. 情報を入力して「Save changes」をクリックします。
  2. デフォルトセンサーとカウンタを追加するか確認されます。手動で設定する場合は「No」を選択します(このガイドでは手動追加を前提とします)。
  3. 正常に追加されると、Managed Applicationsカテゴリのホストノード配下に新しいApache Tomcatエントリが表示されます。

追加されたTomcatのノード

Tomcatインスタンスの監視方法(概要)

Tomcatは以下の方法で監視できます。

  • Show advanced view(概要・詳細ビュー)でオンデマンドの情報確認。
  • JMXベースのパフォーマンスカウンタを使った時系列データ収集。
  • JMXベースの可用性チェック(特定のMBean/属性が応答するか)。
  • HTTPセンサーでWebアプリケーションの可用性やユーザー体験を検証。

JMXによるセンサー追加(手順と例)

Tomcat監視ではJMXが中心です。Tomcat起動オプションでJMXを有効化してください。起動スクリプトに次のようなパラメータを追加します。

set CATALINA_OPTS=-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=%my.jmx.port% \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false

上記は最小限の例です。プロダクションではSSLや認証を有効化し、アクセス制御(ファイアウォール、ネットワークACL)を必ず行ってください。詳しくはTomcatドキュメントを参照してください: http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html

センサーの基本動作:

  • センサーは監視対象サービスに定期的にクエリを投げ、期待する応答があれば「利用可能」と判断します。タイムアウトや期待外の応答は「利用不可」と見なします。

デフォルトで用意されているTomcat用センサータイプ:

  • JMX Operation: 指定したMBeanの操作呼び出しが結果を返すかをチェックします。
  • JMX Attribute: 指定したMBeanの属性から値を取得できるかをチェックします。
  • HTTP: 指定URLに対して期待するHTTPレスポンスコードや、レスポンスボディの正規表現マッチを確認します。

センサー追加の手順(Verax NMS例)

  1. Homeビューのアスペクトツリーで対象デバイスを選択します。
  2. Monitorsタブを選び、右上の「Sensor list」リンクをクリックしてセンサー一覧に切り替えます。
  3. グローバルアクションメニューから「Add」を選び、Goを押してウィザードを起動します。

センサー追加ウィザードのスクリーン

  1. 追加したいセンサーを選択して「Next」をクリックします。

センサー選択画面

  1. 各センサーのパラメータ画面で詳細を入力し、「Finish」を押します。
  2. 追加が完了すると、Monitorsタブのセンサー一覧に表示されます。

センサー設計のヒント(実務上の判断基準)

  • 監視頻度: 可用性チェックは30〜60秒、パフォーマンスカウンタは1〜5分程度が一般的。過度な頻度は監視対象と監視ネットワークに負荷を与えます。
  • 重要度で分離: ビジネスクリティカルなアプリはより細かく、非重要なアプリは軽めに。
  • ベースライン: 初期段階では閾値を広めに設定し、運用データを収集してから閾値を調整してください。

アラームと通知ポリシー設定(要点)

  1. クリティカル、警告、情報のレベルを定義する。
  2. 再通知(repeat)とエスカレーションポリシーを決める。
  3. メンテナンス時間帯を設定し、意図しない通知を抑止する。
  4. 通知先は役割ベース(オンコール、DB管理者、アプリ担当)に分ける。

重要: ノイズが多いと重要なアラートを見落とします。最初の閾値調整は保守的に行い、運用で改善してください。

トラブルシューティングと運用ケース

よくある障害パターンと対応例:

  • JMX接続エラー: ファイアウォール設定、JMXポート、JMX認証情報を確認する。
  • 応答遅延(HTTPタイムアウト): コネクションプール、GC、スレッドプールの状態を確認する。
  • メモリ増大: ヒープ使用率を監視し、必要ならヒープダンプを取得して解析する。

受け入れ基準(簡潔):

  • 監視エージェントがTomcat JMXに対して正常に接続できること。
  • 主要なMBean(コネクション数、スレッド数、ヒープ使用率など)が30日分保存されること。
  • 重要な障害でオンコールに通知が行くこと。

代替アプローチと比較

  • Prometheus + JMX Exporter: 時系列データに強く、Grafanaで可視化する場合に有効。セルフホスティング時に柔軟。
  • APM(Datadog/New Relic): アプリのトレースや分散トレーシングが必要な場合に適する。
  • SNMPベースの監視: システムレベルのメトリクス中心なら検討可。ただしTomcat固有の詳細情報取得は難しい。

短所の例(いつ使わないか):

  • JMXが無効で、かつ変更を加えられない管理対象の場合はJMX監視は使えません。
  • 監視対象が短命(短時間で再作成されるコンテナ)であれば、軽量なHTTPヘルスチェックを優先してください。

役割別チェックリスト

  • 運用(NOC):

    • 主要な可用性センサーが正常に稼働していることを確認。
    • アラートの閾値とエスカレーションルールを監視。
  • SRE / プラットフォームエンジニア:

    • JMXポートとアクセス制御を設定。
    • メトリクスの保存期間と集計ルールを管理。
  • アプリケーションオーナー:

    • ビジネスKPIに基づいたSLA/SLOを定義。
    • 重要なエンドポイントに対するHTTPセンサーの要件を提示。

ミニ手順(セットアップのSOP)

  1. TomcatでJMXを有効化し、ポートと認証を設定する。
  2. 監視サーバからJMX接続を試行し、ネットワーク疎通を確認する。
  3. Verax NMSでアプリケーションインスタンスを追加する。
  4. 重要なJMX属性・操作を選定し、センサーを追加する。
  5. パフォーマンスカウンタを収集してダッシュボードを作成する。
  6. 閾値を設定し、通知ポリシーを構成する。
  7. 運用テスト(フェイルオーバー、再起動)を実施し、アラート動作を検証する。

テストケースと受け入れ基準

  • 正常系: JMXでHeapMemoryUsageが取得できる(Expected: 値が返る)。
  • 障害系: Tomcat停止時にHTTPセンサーがタイムアウトし、アラートが発生する。
  • 回復系: Tomcat起動後、30秒以内にセンサーが復旧すること。

セキュリティと運用上の注意点

  • JMXを公開する際は必ず認証と通信暗号化(SSL/TLS)を設定してください。
  • JMXポートはインターネットに直接公開しないこと。監視サーバからの到達のみ許可するファイアウォールルールを適用します。
  • ログとメトリクスの保持には個人データが含まれていないか確認し、必要なら匿名化や保持期間を短くしてください(GDPR等の規制への配慮)。

トラブル対応のフローチャート

以下は、センサーがDOWNになった場合の簡易決定木です。

flowchart TD
  A[センサーDOWN検知] --> B{センサー種別}
  B -->|HTTP| C[HTTPレスポンス確認]
  B -->|JMX| D[JMX接続確認]
  C --> E{タイムアウトか応答コードか}
  E -->|タイムアウト| F[ネットワーク/プロセス確認]
  E -->|異常コード| G[アプリログ確認]
  D --> H{接続成立?}
  H -->|Yes| I[MBean属性の値確認]
  H -->|No| J[ポート・認証・ファイアウォール確認]

まとめ

  • Tomcatの監視はJMXが中心です。JMXを安全に有効化し、必要なMBean・属性を把握してからセンサーを設定してください。
  • 監視頻度、閾値、通知ポリシーは運用を始めてから最適化します。最初は保守的な設定を推奨します。
  • 代替手段としてPrometheusやAPMの採用も検討できます。運用体制と求める可視化機能に応じて選んでください。

重要: 本ガイドは一般的な手順を示したものです。実環境では組織のセキュリティポリシーと運用ルールに従って調整してください。

共有する: X/Twitter Facebook LinkedIn Telegram
著者
編集

類似の素材

Androidでホーム画面ごとに別の壁紙を設定する方法
カスタマイズ

Androidでホーム画面ごとに別の壁紙を設定する方法

データブローカーから個人情報を削除する方法
プライバシー

データブローカーから個人情報を削除する方法

Androidでホーム画面ごとに壁紙を設定する方法
Android

Androidでホーム画面ごとに壁紙を設定する方法

Apache Tomcatの監視と管理ガイド
監視

Apache Tomcatの監視と管理ガイド

Disney Plusアプリが動かない時の修正ガイド
ストリーミング

Disney Plusアプリが動かない時の修正ガイド

WindowsでPythonスクリプトをタスクスケジューラで自動実行する方法
自動化

WindowsでPythonスクリプトをタスクスケジューラで自動実行する方法