監視により運用を進化させる

完了
システムを可視化し、分析情報を導き出し、データ主導の意思決定を行います。

ワークロードを監視し、Azure Well-Architected フレームワークのすべての柱を考慮することで、品質を継続的に向上させるカルチャを構築します。 必要なデータ、統計、傾向を提供することで、チームと関係者がさまざまな面で短期的、長期的両方の意思決定を行えるようにします。 データから学習し、改善を推進します。

監視を目的として構築された運用は、アプリケーションの予防的なメンテナンス、品質とセキュリティの保証、容量計画、製品管理の鍵になります。

アプリケーション監視の重要な側面は、問題がインシデントとなってカスタマー エクスペリエンスに影響を与える前に予測するために役立つ、正常性モデリングの使用です。 効率的な監視により、インシデント管理に費やされる事後対応サイクルが減ります。

シナリオ例

Contoso は、Contoso Real Estate という社内使用向けのアプリを開発しました。 この Web アプリを使うと、新入社員や転勤する既存の社員が短期間の住居を検索して予約し、転居に役立てることができます。 Contoso の人事部門も、このアプリを使って転居を支援しています。

アプリは運用環境にあり、完全に Azure にデプロイされています。 これは、Azure Container Apps を使ったマイクロサービス上に構築されており、Azure Functions、Azure Database for PostrgreSQL、Azure Blob Storage、Azure Monitor も使います。

テレメトリを通じてワークロードを観察する

アプリケーション コードからテレメトリを出力します。これにより、実行フローの重要なポイントを関連付け、さまざまな細分性レベルでエンドツーエンドのビューを提供します。

重大度レベルに基づいてアクションに優先順位を付け、その詳細からコンテキストを理解します。 この情報はトラブルシューティングを行う上で非常に重要です。

"Contoso の課題"

  • Contoso Real Estate アプリケーションの最近の更新後に、Web アプリの検索ページに空白のページや汎用エラー メッセージが表示されることがあるとユーザーから報告されています。 エラーはランダムに発生するようですが、通常、ユーザーがページを更新するか検索を再送信するだけで、検索機能は機能します。
  • チームは検索マイクロサービスのログを確認して、Azure Database for PostgreSQL への接続のタイムアウトによるエラーの増加に気付きましたが、現在のところ、検索マイクロサービスのログに表示されたエラーが、ユーザーに表示されるエラー ページに対応しているかどうかを判断する方法がありません。

"アプローチと結果の適用"

  • 開発チームは、Web アプリとコア マイクロサービスの両方からログされる情報を拡張して、問題を掘り下げて調査することにしました。 検索シナリオでは、検索用語と共に、時間、クライアント IP、検索に関連付けられたユーザー名など、他の使用できるトランザクション属性を確実に取り込んでいます。 この追加データがあれば、複数の階層にわたるトランザクションを関連付けるのに十分な情報が得られます。
  • この変更を加えたことで、チームは、アプリの最新の更新プログラムでは適切に処理されていなかったデータベース クエリのタイムアウトが、ユーザーが経験していた障害の根本原因であることを確認できました。 根本原因を特定した後、チームは簡単に修正プログラムを実装できました。
  • 現在、チームは OpenTelemetry を使って、すべてのソリューション階層をカバーするより包括的な分散トレース ソリューションを実装する新しいアプローチを設計しています。

ダッシュボードで監視データを視覚化する

ダッシュボードでデータを集計して視覚化して、対象ユーザーに合わせ、ビジネス コンテキストを考慮して監視データを表示します。 状況に応じたダッシュボードを使ってデータを表示し、関係者の意識を高めます。 インシデント対応などのオペレーターのアクティビティにはドリルダウン機能を備えた運用ダッシュボードとブックを使います。 ダッシュボードを頻繁に更新して、詳細なデータを提供します。

視覚化により、傾向を分析し、ビジネス目標に照らして追跡し、インシデントを管理できます。

顧客の関心に合わせて調整されたダッシュボードにより、適切に解釈できるようになり、検出とアクションまでにかかる時間が短縮されます。

"Contoso の課題"

  • ワークロード チームは、すべてのソリューション階層のテレメトリ データを 1 つの Log Analytics ワークスペースに集計します。ここには、運用と開発のチーム、その他のプロジェクト関係者がアクセスできます。 ただし、このデータの操作は難しく複雑であり、対応可能なデータからバックグラウンド ノイズを識別する必要があるチーム メンバーにとってはいら立たしいものです。

"アプローチと結果の適用"

  • チームは、ダッシュボードを使ってデータを集計し、視覚化する取り組みに着手します。 各ダッシュボードは特定の対象ユーザーに合わせて調整されます。
    • ソリューション関係者のダッシュボードはよりビジネス指向になり、ソリューション全体の正常性に関するより大まかな概要と共に、サービスを提供するユーザー数、実行される検索と予約などのビジネス インジケーターが表示されます。
    • 運用ダッシュボードとブックには、運用チーム向けのより詳細で細分性の高いデータが表示されます。 これらのダッシュボードにはドリルダウン機能があり、ユーザーはさまざまな細分性レベルでデータを調べることができます。 ユーザーはこれらのダッシュボードとブックを使って、トラブルシューティングやその他のインシデント対応タスクを実行できます。
  • ユーザーはダッシュボードを使うと、より効果的に傾向を分析し、ビジネス目標を追跡し、インシデントを管理できるようになります。 各ダッシュボードに表示されるデータは、対象ユーザーにとってより関連性が高く、関心やニーズに応じたものになります。

堅牢なアラート戦略を設計する

責任を持つロールに、標準化された説明と重大度レベルを通知することで、アラートにすぐに対応できるようにします。 さまざまなソースから収集した情報を表示し、ビジネス目標からの逸脱を追跡します。

是正措置が必要なインシデントに対してのみアラートをトリガーし、機能低下状態が障害になる前に対応を始められるプロアクティブで示唆に富むアラートを目指します。 是正措置と重大度を特定し、明確さと目的を推進するのに十分なデータを提供するのが優れたアラート システムです。 オペレーターは遅滞なく修復を開始できます。

"Contoso の課題"

  • Azure Monitor は、何か問題が発生したときに運用チームにアラートを送信するために使われます。 ただし、現在、無関係、不明確、または冗長なアラートがあまりにも多くチームに送信されています。 これがアラート疲れにつながり、チームの生産性に影響し、一部の重要なアラートが見逃される原因となっています。
  • また、障害を予測してアラートが送信されていれば未然に防ぐ、または最小限に抑えることができたはずの停止の状況もあります。 チームが、停止が発生する前に機能低下をより適切にアラートできていれば、このような状況は避けられた可能性があります。 たとえば、データベース クエリの処理時間が遅くなり、停止が発生する場合があります。 チームは、停止をトラブルシューティングする際に、クエリ処理のパフォーマンスが時間の経過と共に徐々に低下し、ついには本格的な停止が発生することに気付きました。

"アプローチと結果の適用"

  • 運用チームは、アラート疲れの原因となる低優先度のアラートを一掃するイニシアティブを始めます。 アクティブな状態を維持できるのは、重要かつ対応可能なアラートのみにします。 また、チームはアクティブなままのアラートを確認し (また必要に応じて強化し)、必要な是正措置を講じることができる十分なコンテキストがアラートに含まれていることを確認します。
  • また、障害が発生する前に是正措置を講じられるプロアクティブで対応可能な新しいアラートを定義することもできます。 たとえば、データベース クエリのパフォーマンスに一貫した低下が見られるとすぐに、新しいアラートを生成して DBA に通知します。
  • 次のステップとして、チームはデータベース クエリのパフォーマンスの状況など、一般的なアラートへの応答を自動化することを検討しています。

自分の知識をチェックする

1.

Contoso は、一部のユーザーが経験した空白のページや汎用エラーに関する問題の根本原因をどのように特定できましたか?

2.

監視ダッシュボードを設計するには、どの方法が推奨されますか?

3.

正誤問題: アラートは情報提供を主にする必要があります。