Azure Blob Storage
Azure と Sumo のパイプラインを設定するための段階的な手順については、「Azure Blob Storage からログを収集する」を参照してください。
Azure に関する情報リソース
Azure サービスから Azure Blob Storage へのモニタリング データのエクスポートの詳細については、Azure ヘルプの次のトピックを参照してください。
Azure-Sumo のパイプライン
下の図は、Azure Blob Storage から Azure ログを収集するための Azure-Sumo パイプラインを示しています。「モニタリング データ フロー」では、Azure Blob Storage から Sumo Logic へのログのフローを説明します。 「パイプライン コンポーネント」では、フローに関わるコンポーネントについて説明します。
モニタリング データ フロー
さまざまなコンポーネントがパイプライン内でどのように組み合わされているかを簡単に説明します。
- Azure サービスはモニタリング データ (ログおよびメトリクス) をストレージ アカウントの Azure Blob コンテナに送信します。汎用 v2 (GPv2) および Blob ストレージ アカウントがサポートされています。
- イベント サブスクリプションは、Azure Blob コンテナをパブリッシャとして、Event Hub をサブスクライバとして設定されています。続いて、Event Grid がすべての作成ブロック イベントを Event Hub にルーティングします。
- Event Grid からのデータを受信し次第、イベント ハブは TaskProducer という名前の Azure 関数をトリガしてタスクを作成します。(これは、ブロック Blob の開始バイトと終了バイトを含む JSON オブジェクトです)。続いて、これらのタスクが Azure Service Bus キューに転送されます。
- TaskConsumer という名前のもう 1 つの関数が Azure Service Bus キューの新しいタスクに対応してトリガされます。この関数は、指定された範囲 (開始バイトから終了バイトまで) のデータを読み取り、データを変換して Sumo の Hosted Collector の HTTP Source に送信します。これら 3 つの Azure 関数は、それぞれそのログを Azure Resource Template (ARM) によって作成されるストレージ アカウント (名前は sumobrlogs<unique_prefix>) に送信します。
- TaskConsumer 関数がメッセージを処理または送信できない場合 (MaxDeliveryCount のしきい値である 10 件に達したときの調整またはエラーが原因)、デッドレター キュー (DLQ) と呼ばれるセカンダリ サブキューにメッセージを送信します。DLQTaskConsumer という名前のもう 1 つの Azure 関数が、メッセージの送信を再試行するためにタイマー トリガによって 5 分ごとにトリガされます。
パイプラインのコンポーネント
下のテーブルで、Azure-Sumo パイプラインの主要なコンポーネントについて説明します。
コンポーネントの説明 | 説明 |
Azure Event Grid | 公開とサブスクライブのモデルを使用して均一なイベント消費を実現する十分に管理の行き届いたインテリジェント イベント ルーティング サービスです。サブスクライブする Azure リソースを選択して、イベントを送信するイベント ハンドラまたは WebHook エンドポイントを指定します。 |
Azure Event Hubs | 1 秒あたり数百万件のイベントを受信、保存、処理できるデータ ストリーミング プラットフォームおよびイベント取り込みサービス。Event Grid は「ブロック Blob の作成」イベントをイベント ハブにルーティングし、このイベント ハブが Sumo 提供の Azure 関数をトリガします。 |
Sumo 提供の Azure 関数 | モニタリング データを Sumo HTTP Source に送信するために Event Hub によって小規模なコードがトリガされます。それぞれの関数は、関数デバッグ情報用に独自のログも保持しています。 |
Sumo HTTP Source | Hosted Collector 上の Sumo HTTP Source が TaskConsumer Azure 関数からモニタリング データを受信します。 |
Azure Blob Storage | テキストやバイナリ データなど、大量の非構造化データの保存に最適化されたクラウド用の Microsoft のオブジェクト ストレージ ソリューション。 |
Azure Service Bus キュー | 場所に関係なくリソース (アプリケーション、サービス、デバイス) を接続するための汎用でクラウドベースの一方向メッセージング システム。それぞれのキューは、送信されたメッセージを受信されるまで保存する仲介者 (ブローカーと呼ばれることもある) の役目を果たします。各メッセージは 1 人の受信者によって受信されます。 |
設定プロセスの概要
Sumo では、パイプラインのコンポーネントの大半を作成するための Azure Resource Management (ARM) テンプレートを用意しています。このテンプレートでは、次のものが作成されます。
- Azure Event Grid がブロック Blob イベントをルーティングするイベント ハブ。
- タスクを保存するための Service Bus。
- モニタリング データを Sumo に送信する役目を果たす 3 つの Azure 関数 (TaskProducer、TaskConsumer、DLQTaskConsumer)。
- Azure 関数が成功および失敗した転送に関するログ メッセージを書き込むストレージ アカウント。
Sumo 提供の ARM テンプレートをダウンロードし、テンプレートを Azure ポータルにアップロードして、Sumo HTTP Source の URL および Azure ストレージ アカウント (Azure サービスがログをエクスポートする) の接続文字列を識別するパラメータを設定して、テンプレートをデプロイします。デプロイ後に、Azure ストレージ アカウントをパブリッシャとして、ARM テンプレートによって作成されたイベント ハブをサブスクライバとして Event Grid を作成します。接頭辞/接尾辞のフィルタを指定して、イベント ベースのコンテナ名および Blob 名を絞り込むこともできます。詳細については、Azure ヘルプの「Filtering events (イベントの絞り込み)」を参照してください。その後、Azure サービスから Azure Blob Storage へのモニタリング データのエクスポートを開始できます。
手順については、「Azure Blob Storage からログを収集する」を参照してください。