Azure およびオンプレミス環境からのテレメトリ データを収集、分析、処理するために使用する Azure サービス。
こんにちは 89302197,
Microsoft Q&A フォーラムにご連絡いただき、ありがとうございます
Azure VM 上の Tomcat/Java では、Log Analytics エージェントを使用した Azure Monitor により、JVM のメトリクス、プロセスの可用性、カスタムヘルスチェックを追跡できます。AKS では、Prometheus スクレイピング、コンテナ用 Azure Monitor、Application Insights の自動計測を組み合わせることで、アプリケーションレベルでの可視性を確保します。はい、Application Insights(自動計測を通じて)を使用して AKS 上の Java プロセスの状態を監視し、CrashLoopBackOff イベントを通じてコンテナの障害を検出することは可能ですが、これらは目的が異なります
Tomcat(Java)モニタリングの推奨設定
Azure VM 上で
Azure Monitor エージェント (AMA) または Log Analytics エージェント
- JVMのメトリクス(ヒープ使用量、GCの活動、スレッド数)を収集する
- カスタムスクリプトやハートビートチェックを使用して、Tomcatプロセスの可用性を監視します
カスタムヘルスプローブ
- TomcatでHTTPエンドポイント(例:/healthや/status)を設定します
- Azure Monitor または Application Gateway のヘルスプローブを使用して、可用性をテストします
アラートルール
- JavaプロセスのCPU/メモリしきい
- Tomcatサービスの再起動やクラッシュイベントに関するアラート
AKSノード上で
コンテナ向け Azure モニタ
- ポッドレベルのメトリクス、コンテナのログ、ノードのリソース使用状況を収集します。
- JVM/Tomcatのメトリクスに対してPrometheusのメトリクスクレイピングを有効にする。
ライブネス/レディネスプローブ
- Tomcatのエンドポイント用にKubernetesプローブを定義します
- 不健康なポッドを検出して、自動的に再起動をトリガーします
クラッシュループバックオフイベント
- ポッドのライフサイクルイベントを監視して、繰り返し発生する障害を検出します。
- 早期検出のために、CrashLoopBackOff 状態に対して Azure Monitor アラートを使用します
AKSでのJavaプロセスのヘルスモニタリング
Application Insights: AKSでのJava自動計測に対応しています。コンテナイメージにAIエージェント(jar)を追加するか、コードを変更せずにテレメトリを収集するプレビューフィーチャーを有効にします
CrashLoopBackOff: コンテナのクラッシュ検出には有用ですが、JVMレベルのヘルスチェックには不十分です。プローブやAIと組み合わせて使用するのが最適です
リスクと留意点
· __VMとAKSの違い:__VMではOSとプロセスを直接制御できますが、AKSでは監視はコンテナ化されており、Kubernetesネイティブのプローブが必要です。
· オーバーヘッド: Application Insights はテレメトリのオーバーヘッドを追加します。コストの急増を避けるためにサンプリング率のバランスを取ってください
· 誤検知: CrashLoopBackOff は JVM の状態ではなく、設定ミスが原因で発生することがあります。常にログやメトリクスと照らし合わせて確認してください
おすすめ:
JVM/Tomcatの健全性およびリクエストレベルの監視には、Application Insightsの自動計測を使用し、コンテナのライフサイクルの健全性にはCrashLoopBackOffアラート付きでKubernetesのプローブを構成します。これらを組み合わせることで、AKS上のJavaプロセスの健全性を包括的に把握できます
他に質問があれば教えてください
もしこの回答が役に立った場合は、回答を承認し、上向き投票をお願いします。これにより、同じような問題に直面している他のコミュニティメンバーにも役立つ可能性があります。Microsoft Q&A コミュニティへのご協力に心より感謝いたします。