PLATFORM

SplunkをAzureに活用: Event Hubs

Event Hubsは、Azureが提供するビッグデータストリーミングPaaS機能です。Azure環境で生成されるデータやテレメトリを処理することができ、Azureの貴重なデータをSplunkに取り込める拡張性の高い方法も備えています。 

Splunkは、Azure環境のあらゆるデータソースに接続してデータを取り込むことができるSplunk Add-on for Microsoft Cloud ServicesMicrosoft Azure Add-on for SplunkなどのSplunkアドオンを提供しています。ただし、Azure環境の規模が大きい場合、すべてのサブスクリプショングループとリソースグループからデータを収集するには、数十もの入力を構成しなければなりません。

そこで、Event Hubsを活用すれば、AzureのロギングがEvent Hubs経由でSplunk環境にルーティングされるように設定して、構成の負担を減らすことができます。 

このブログでは、AzureのデータをSplunkに取り込む方法としてEvent Hubsを使用するためのステップをすべて紹介します。 

  • Azure Event Hubsの設定
  • Azureのロギング先をEvent Hubsに設定
    • テナント - Azure Active Directoryのログ
    • サブスクリプション- アクティビティログ
    • リソース - リソースログ
  • SplunkでのEvent Hubs入力の設定
     

Azure Event Hubsの設定

1. Azure Portalで、[All Services (すべてのサービス)] > [Event Hubs]の順に選択します

2.[Add (追加)]を選択します

Azure Event Hubsの設定

3.新しい名前空間を作成します

注意:名前空間は、Event Hubsトピックの範囲を決めるコンテナで、一意のFQDNを持ちます。名前空間は複数のEvent Hubsトピックを収容できるアプリケーションコンテナとして機能します。価格レベルとスループットユニットについて詳しくは、こちらのFAQを参照してください

新しい名前空間作成

4.名前空間にEvent Hubsを追加します

名前空間追加

5.Event Hubsに名前を付けます(たとえば、送信するログの種類を名前に使います - AADログ、テナントログ、サブスクリプションログなど)

注意:Event Hubs内のパーティションの数は、同時に実行できるリーダーの数に直接関係します。

Event Hubsに名前

6.[Shared access policies (共有アクセスポリシー)]を選択します

共有アクセスポリシー

7.[RootManageSharedAccessKey]を選択します

RootManageSharedAccessKey

8.[Connection string-primary key (接続文字列-主キー)]をコピーして保存します。これはSplunkへの入力に必要です。

接続文字列

Azureのロギング先をEvent Hubsに設定

Azure Active Directoryのログ

特定のテナントのAzure Active Directory内で実行されたサインインアクティビティの履歴と、変更の監査証跡が含まれています。

1.[All Services (すべてのサービス)] > [Azure Active Directory]の順に選択します

すべてのサービス

2.[Diagnostic settings (診断設定)]を選択します

診断設定

3.[Add diagnostic setting (診断設定の追加)]を選択します

診断設定の追加

4.以下を設定します。

  • 名前
  • 使用するログ
  • Stream to an event hub (Event Hubsにストリーム) - Event Hubsの詳細を入力します
  • 保存します
     

使用するログ

Azureサブスクリプションのアクティビティログ

サービス正常性イベントの更新のほか、サブスクリプション内の各Azureリソースに対して外部から実行された操作(管理プレーン)に関するインサイトを得ることができます。アクティビティログを使用すると、サブスクリプション内のリソースに実行されたすべての書き込み操作(PUT、POST、DELETE)の内容、実行者、時間を確認できます。Azureサブスクリプションごとにアクティビティログが1つあります。

1.[All Services (すべてのサービス)] > [Monitor (モニター)]の順に選択します

モニター

2.[Activity log (アクティビティログ)]を選択します

アクティビティログ

3.[Diagnostic settings (診断設定)]を選択します

診断設定

4.[Add diagnostic setting (診断設定の追加)]を選択します

診断設定の追加

5.以下を設定します。

  • 名前
  • 使用するログ
  • Stream to an event hub (Event Hubsにストリーム) - Event Hubsの詳細を入力します
  • 保存します
     

Event Hubsの詳細を入力

Azureリソースログ

Azureリソース内で実行された操作(データプレーン)に関するインサイトを得ることができます(たとえば、キーコンテナーからのシークレットの取得や、データベースへのリクエストの実行など)。リソースログの内容は、Azureサービスとリソースタイプによって異なります。

1.サブスクリプション内で[Resource (リソース)]を選択します(この例では、作成したEvent Hubsを使用します)

Resource (リソース)選択

2.[Diagnostic settings (診断設定)]を選択します

診断設定

3.[Add diagnostic setting (診断設定の追加)]を選択します

診断設定の追加

4.以下を設定します。

  • 名前
  • 使用するログ
  • Stream to an event hub (Event Hubsにストリーム) - Event Hubsの詳細を入力します
  • 保存します
     

使用するログ

SplunkでのEvent Hubs入力の設定

1.Microsoft Azure Add-on for Splunkをインストールします

2.[Azure Add-on for Splunk] > [Inputs (入力)]の順に選択します

3.[Create New Input (新しい入力の作成)] > [Azure Event Hub]の順に選択します

Azure Event Hub

4.以下を設定します。 

  • 名前
  • 間隔
  • インデックス
  • 接続文字列(Event HubsのRootManageSharedAccessKey)
  • 他の設定はデフォルトのままにします
     

インデックス

注意:転送タイプAMQPは、通信にポート5671と5672を使用します。AMQP over WebSocketはポート80と443を使用します- FAQはこちら

Troubleshooting:  index=_internal  source="/opt/splunk/var/log/splunk/ta_ms_aad_azure_event_hub.log"

Event Hubsを使用することで、Splunk内ではEvent Hubsの比較的小さな入力セットによって、複数のサブスクリプションとリソースグループにまたがる幅広いAzureデータを取得できます。 

Event Hubsの入力を使用すると、すべてのデータがクリーンなJSON形式で取り込まれるため、ソースに関係なくすべてのイベントのフィールドが自動で抽出されるという大きなメリットがあります。

サインインログ

サインインログ

セキュリティアラート

セキュリティアラート

サービスおよびリソースの正常性

サービスおよびリソースの正常性

推奨設定

推奨設定

リソースメトリック

リソースメトリック

Splunkのメリットをどうぞお試しください。
- Ry

このブログはこちらの英語ブログの翻訳、庄司 大助によるレビューです。

Ryan Lait
Posted by

Ryan Lait

TAGS
Show All Tags
Show Less Tags