Event Hubsは、Azureが提供するビッグデータストリーミングPaaS機能です。Azure環境で生成されるデータやテレメトリを処理することができ、Azureの貴重なデータをSplunkに取り込める拡張性の高い方法も備えています。
Splunkは、Azure環境のあらゆるデータソースに接続してデータを取り込むことができるSplunk Add-on for Microsoft Cloud Services、Microsoft 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 (追加)]を選択します
3.新しい名前空間を作成します
注意:名前空間は、Event Hubsトピックの範囲を決めるコンテナで、一意のFQDNを持ちます。名前空間は複数のEvent Hubsトピックを収容できるアプリケーションコンテナとして機能します。価格レベルとスループットユニットについて詳しくは、こちらのFAQを参照してください
4.名前空間にEvent Hubsを追加します
5.Event Hubsに名前を付けます(たとえば、送信するログの種類を名前に使います - AADログ、テナントログ、サブスクリプションログなど)
注意:Event Hubs内のパーティションの数は、同時に実行できるリーダーの数に直接関係します。
6.[Shared access policies (共有アクセスポリシー)]を選択します
7.[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の詳細を入力します
- 保存します
Azureリソースログ
Azureリソース内で実行された操作(データプレーン)に関するインサイトを得ることができます(たとえば、キーコンテナーからのシークレットの取得や、データベースへのリクエストの実行など)。リソースログの内容は、Azureサービスとリソースタイプによって異なります。
1.サブスクリプション内で[Resource (リソース)]を選択します(この例では、作成したEvent Hubsを使用します)
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]の順に選択します
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
このブログはこちらの英語ブログの翻訳、庄司 大助によるレビューです。