翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
App Mesh のトラブルシューティングのベストプラクティス
このトピックのベストプラクティスに従って、App Mesh を使用する際の問題をトラブルシューティングするようお勧めします。
Envoy プロキシ管理インターフェイスを有効にする
Envoy プロキシには、設定と統計の検出、および Connection Draining などのその他の管理機能を実行するために使用できる管理インターフェイスが付属しています。詳細については、Envoy ドキュメント「管理インターフェイス
マネージド Envoy イメージ を使用する場合、管理エンドポイントは、デフォルトでポート 9901 が有効化されています。App Mesh 設定のトラブルシューティング の例では、管理エンドポイント URL は、http://my-app.default.svc.cluster.local:9901/
のように表示されます。
注記
管理エンドポイントは、パブリックインターネットに公開されることはありません。さらに、ENVOY_ADMIN_ACCESS_LOG_FILE
環境変数によって、デフォルトで /tmp/envoy_admin_access.log
に設定されている管理エンドポイントログをモニタリングするようお勧めします
メトリクスオフロードの Envoy DogStatsD 統合を有効にする
Envoy プロキシは、OSI レイヤー 4 およびレイヤー 7 のトラフィックおよび内部プロセスのヘルスの統計情報をオフロードするように設定できます。このトピックでは、メトリクスや Prometheus などのシンクに CloudWatch メトリクスをオフロードせずにこれらの統計を使用する方法について説明します。これらの統計をすべてのアプリケーションの一元管理された場所に配置すると、問題の診断や動作の迅速な確認に役立ちます。詳細については、「Amazon CloudWatch メトリクスの使用」および Prometheus ドキュメント
DogStatsD メトリクスを設定するには、 で定義されているパラメータを設定しますDogStatsD 変数。 DogStatsD の詳細については、DogStatsD
アクセスログの有効化
仮想ノード と 仮想ゲートウェイ でアクセスログを有効にして、アプリケーション間のトラフィックの推移の詳細を確認するようお勧めします。詳細については、Envoy ドキュメントに記載の「アクセスログ
parse @message "[*] \"* * *\" * * * * * * * * * * *" as StartTime, Method, Path, Protocol, ResponseCode, ResponseFlags, BytesReceived, BytesSent, DurationMillis, UpstreamServiceTimeMillis, ForwardedFor, UserAgent, RequestId, Authority, UpstreamHost
本番稼働前の環境で、Envoy デバッグログを有効にする
本番稼働前の環境では、Envoy プロキシのログレベルを debug
に設定するようお勧めします。デバッグログは、関連する App Mesh 設定を本番稼働環境に移行する前に、問題を特定する役に立ちます。
Envoy イメージ使用している場合、ログレベルを ENVOY_LOG_LEVEL
環境変数で debug
に設定できます。
注記
本番稼働環境での debug
レベルの使用はお勧めしていません。レベルを に設定すると、ログdebug
が増加し、CloudWatch ログ などのソリューションにオフロードされるログのパフォーマンスと全体のコストに影響する可能性があります。
Envoy のデフォルト形式を使用すると、次の解析ステートメントを使用して CloudWatch Logs Insights でプロセスログを分析できます。
parse @message "[*][*][*][*] [*] *" as Time, Thread, Level, Name, Source, Message
App Mesh コントロールプレーンで Envoy プロキシ接続を監視する
Envoy メトリクス control_plane.connected_state
を監視し、Envoy プロキシが App Mesh コントロールプレーンと通信して動的設定リソースを取得しているかを確認することをお勧めします。詳細については、「Management Server