Updated 2/22/2021: AzureからのSplunkへのデータ取り込み方法は更新されております。 Splunk Add-On for Microsoft Cloud ServicesのSplunkbaseのページで詳細をご確認ください。
Azure Monitorは、Azureリソースデータのルーティングとアクセス提供を行うプラットフォームサービスです。Azure Monitorでは、主に以下の3種類のデータにアクセスできます。
Azure MonitorのデータをSplunkに取り込むには、Azure側とSplunk側の両方で設定作業が必要です。私の前回のブログ記事「SplunkとMicrosoft Azure Monitorの連携 パート1 – Azure Monitorの設定方法」では、Azure Monitorのデータを収集するためにAzure側で必要な作業を取り上げました。この記事では、Splunk側で必要な設定について説明します。
Azure Monitor Add-on for Splunkを使えば、上記3種類すべてのデータ入力を追加してくれます。とはいえ、このアドオンの設定には、いくつか別の作業が必要です。このブログ記事で説明する内容の概要は以下のとおりです。
Azure Monitor Add-on for SplunkはSplunkbaseに掲載されていますが、外部でホストされており、GitHubのMicrosoftの公開組織上にあります。設定手順はREADME.mdファイルやWikiにあり、とても詳しく書かれているので、ここではあらためて説明しません。
注:PythonとNode.jsの依存関係のダウンロードに関する指示は、必ず守ってください。
前回のブログ記事のとおりに作業を進めた場合は、以下のような情報をメモした表ができているはずです。
アプリケーションID | 11111111-1111-1111-1111-111111111111 |
アプリケーションキー | 22222222-2222-2222-2222-222222222222 |
イベントハブ名前空間 | 例:splunkdev |
イベントハブのポリシー名 | RootManageSharedAccessKey |
イベントハブのプライマリキー | 1234asdf4321fdsa1234asdf4321fdsa |
キーコンテナー名 | 作成したキーコンテナー名 |
イベントハブキーのシークレット名 | 例:myEventHubKey |
イベントハブキーのシークレットバージョン | 1234asdf4321fdsa1234asdf4321fdsa |
アプリケーションキーのシークレット名 | 例:myAppKey |
アプリケーションキーのシークレットバージョン | 1234asdf4321fdsa1234asdf4321fdsa |
ご存じのように、アクティビティログと診断ログはAzure Monitorによってイベントハブにルーティングされます。イベントハブのデータにプログラムからアクセスするには、1) イベントハブの名前空間、2) ポリシー名、3) ポリシーキーが必要です。イベントハブのポリシー名とポリシーキーは、Azure Monitor Add-on for Splunkアドオンではなく、Azureのキーコンテナーに保存されます。アドオンは実行のたびに、キーコンテナーからポリシー名とポリシーキーを取得します。
REST APIでアクセスしてメトリックデータを取得する際にも、これと同じ方法をとります。REST APIを介してメトリックデータにプログラムからアクセスするには、1) Azure ADアプリケーションIDと、2) アプリケーションキーが必要です。Azure ADアプリケーションIDとキーは、Azure Monitor Add-on for Splunkアドオンではなく、Azureのキーコンテナーに保存されます。アドオンは実行のたびに、キーコンテナーからAzure ADアプリケーションIDとキーを取得します。
キーコンテナーからシークレットを取得するには、Azureによるアドオンの認証が必要です。これは、キーコンテナーにあるシークレットに対する「取得」アクセス権を持つ、別のAzure ADアプリケーションIDとキーを使用して行います。今回は、REST APIでメトリックにアクセスする際に使用するのと同じAzure ADアプリケーションIDとキーでもかまいませんが、タスクごとに2組のAzure ADアプリケーションIDとキーを使い分けることもできます。
Splunk環境にアドオンをインストールしたら、[Settings] -> [Data inputs]を選択します。
入力として[Azure Monitor Activity Log]を選択し、[New]をクリックします。
以下の画面が表示され、パラメーターの入力を求められます。
前回のブログ記事で、このデータのほとんどを表に書き留めてあります。
項目 |
アドオンのパラメーター名 |
アプリケーションID |
SPNApplicationId |
アプリケーションキー |
SPNApplicationKey |
イベントハブ名前空間 |
eventHubNamespace |
キーコンテナー名 |
vaultName |
イベントハブキーのシークレット名 |
secretName |
イベントハブキーのシークレットバージョン |
secretVersion |
1つだけ、SPNTenantIDという情報がありませんが、これはAzure ADのディレクトリIDです。
1. Azure Portalで、[Azure Active Directory] -> [プロパティ] -> [ディレクトリID]を選択します。
必要なパラメーターをすべて入力したら、[Next]ボタンをクリックします。
[Start Searching]ボタンをクリックします。
以下のサーチでは、取り込まれたAzure Monitorアクティビティログのタイプが列挙されます。
sourcetype=amal* | stats values(sourcetype)
アクティビティログの入力により、取り込まれたデータに基づいて、さまざまなソースタイプが生成されることに注目してください。
以下のサーチ結果には、前回のブログ記事で行ったイベントハブ名前空間の作成が表示されています。
sourcetype="amal:administrative" operationName="MICROSOFT.EVENTHUB/NAMESPACES/WRITE"
診断ログの入力の設定作業は、上記で説明したアクティビティログの入力の設定と似ています。
前回のブログ記事では、イベントハブの診断ログを有効にしました。以下のサーチでは、そのデータを表示します。
source="azure_diagnostic_logs:*"
上記のサーチ結果は以下のとおりで、キーコンテナーのシークレットに対する「取得」操作が表示されています。
メトリックの入力の設定作業は、上記で説明した他の入力の設定と似ています。
前回のブログ記事で、このデータのほとんどを表に書き留めてあります。
項目 |
アドオンのパラメーター名 |
アプリケーションID |
SPNApplicationId |
アプリケーションキー |
SPNApplicationKey |
イベントハブ名前空間 |
eventHubNamespace |
キーコンテナー名 |
vaultName |
アプリケーションキーのシークレット名 |
secretName |
アプリケーションキーのシークレットバージョン |
secretVersion |
1つだけ、SubscripitonIdという情報がありません。これは以下のようにしてAzure Portalから取得します。
1. [サブスクリプション] -> サブスクリプション名を選択し、サブスクリプションIDをコピーします。
前回のブログ記事で、メトリックを収集するためにイベントハブにタグを付けました。以下のサーチでは、そのデータを表示します。
sourcetype="amm:eventhub:namespace"
上記のサーチ結果は以下のとおりで、受信要求が表示されています。
アドオンによって、ソースタイプが自動的にamm:eventhub:namespaceと設定されていることに注目してください。これは、$SPLUNK_HOME/etc/apps/TA-Azure_Monitor/binディレクトリにあるsourcetypes.jsonというファイルによって管理されています。必要に応じて、このファイルを編集できます。
この記事では、Azure Monitor Add-on for Splunkのインストール方法と、3つの入力(アクティビティログ、診断ログ、メトリック)の設定方法について説明し、アドオンの操作についても何点か説明しました。このアドオンの設定に関する詳細は、Wikiの公開リポジトリでご覧いただけます。次回のブログ記事では、Azure Monitor Add-on for Splunkが収集したデータの使用例をご紹介します。
Splunkプラットフォームは、データを行動へとつなげる際に立ちはだかる障壁を取り除いて、オブザーバビリティチーム、IT運用チーム、セキュリティチームの能力を引き出し、組織のセキュリティ、レジリエンス(回復力)、イノベーションを強化します。
Splunkは、2003年に設立され、世界の21の地域で事業を展開し、7,500人以上の従業員が働くグローバル企業です。取得した特許数は1,020を超え、あらゆる環境間でデータを共有できるオープンで拡張性の高いプラットフォームを提供しています。Splunkプラットフォームを使用すれば、組織内のすべてのサービス間通信やビジネスプロセスをエンドツーエンドで可視化し、コンテキストに基づいて状況を把握できます。Splunkなら、強力なデータ基盤の構築が可能です。