Azure Data ExplorerやKusto.Explorerを使ったLog Analyticsのログ検索

Azure,Data Explorer

Azureで提供されているデータ分析プラットフォームサービスとしてAzure Data Explorerがあります。
Log Analyticsワークスペースと連携させる事でAzure Monitorログ(Log Analytics)の検索にも利用可能です。

Azure Data Explorerで使えるクライアントツールとしてKusto.Explorerがあります。
Kusto.Explorerを使うとクライアント端末上でKQL(kustoクエリ言語)を使ったクエリ検索が出来ます。

今回はAzure Data ExplorerへのLog Analyticsワークスペース追加手順を纏めてみました。
併せてLog Analyticsワークスペースに収集されたログをKusto.Explorerを使ってKQLクエリ検索までの設定手順も纏めています。

    • 主な内容
      • Azure Data Explorer クラスターのデプロイからデータベース作成、権限付与
      • Azure Data ExplorerにLog Analyticsワークスペースをクラスターとして追加
      • Kusto.Explorerのインストール
      • Kusto.ExplorerにLog Analyticsワークスペースをクラスターとして追加
      • Kusto.ExplorerでKQLを使ったログ検索

スポンサーリンク

Azure Data Explorerクラスターをデプロイ

Azure Data Explorerクラスターリソースのデプロイ、データベースへの権限付与までの手順です。

概要

Azure Data Explorer は大量のデータを”ほぼ”リアルタイムでデータ分析出来るプラットフォームになります。
フルマネージドサービスとなっていますがサーバーレスではありません。
仮想マシン(Azure VM)で構成されるAzure Data Explorerクラスターが必要となります。

Azure Data Explorerとは
Azure Data Explorer のしくみ

価格

Azure Data Explorerクラスターを構成するインスタンスサイズにより課金額変わります。
課金額はインスタンス+Azure Data Explorer 割増の組み合わせで決定されます。

一番安いインスタンスはDeveloper レベルでE2a v4(vcpu:2 ストレージ:30GB)で$110.96/月(2022年11月3日現在)になります。
コンピューティング最適化インスタンスとしてはE2ads v5(vcpu:2 ストレージ:55GB(SSD))で$116.070/月(2022年11月3日現在)になります。
インスタンス利用料金に追加してAzure Data Explorer 割増料金が$80.30/コア/月が追加で発生します。

Azure Data Explorer の価格

E2ads v5の場合は$116.070+$80.30×2コア=276.67$/月となります。

※Developer レベルにはSLAがありません。
※クラスター停止期間中は課金が発生しません。(ただしストレージ課金料金は除く)

リソースをデプロイ

Azure Data Explorerクラスターのリソースをデプロイします。
スケーリング、構成、セキュリティ、診断設定についてはデフォルト設定としています。
ネットワーク設定は後ほど修正するので作成時はデフォルト設定としています。

    • 主な設定項目
      • クラスター名、ワークロード(仮想マシン(Azure VM)のサイズ)等
      • スケーリング(クラスターのスケーリング設定)
      • 構成(ストリーミングインジェストや自動停止などのコストに関わる設定)
      • セキュリティ(暗号化やマネージドIDなど)
      • ネットワーク(パブリックアクセスの許可など)
      • 診断設定(クラスターのログやメトリック)

公式サイトの作成手順を参考に進めます。

クイック スタート:Azure Data Explorer クラスターとデータベースを作成する

Azure Data Explorerクラスターをデプロイ

Azure Data Explorerで作成を選択します。

Azure Data Explorerの作成画面です。
クラスター名やコンピューティング仕様を指定します。
検証なので一番安いStandard_E2a_v4を選択しています。

※クラスター名は"testloganalytics"としています。クラスター名はURIで利用されます。URIは(https://クラスター名.リージョン.kusto.windows.net)になります。

クラスターのスケーリング設定です。
インスタンス数は1としています。

クラスターの構成設定です。
デフォルト設定のまま進めます。

セキュリティ設定です。
デフォルト設定のまま進めます。

ネットワーク設定です。
デフォルト設定(パブリックエンドポイント)のまま進めます。

※クラスター作成後に設定するのでこの時点ではデフォルトのまま進めます。

診断設定です。
デフォルト設定のまま進めます。

確認と作成を選択します。

Azure Data Explorerクラスターのデプロイが完了すると一覧に表示されます。

※デプロイは10分以上かかります。

ネットワーク設定

Azure Data Explorerのネットワーク設定を行います。
パブリックネットワークアクセスを許可するとどこからでもアクセス可能な為セキュリティ的に好ましくありません。
そこで操作する自端末からのIPのみ許可します。

ネットワーク設定
自端末からのIPのみアクセス許可するように変更します。
パブリックネットワークアクセスを無効にします。
クライアントIPアドレスの追加にチェックを入れます。
保存を選択します。

データベース作成

Azure Data Explorerクラスターにデータベースを作成します。
Azure Data Explorer使ってクエリを実行する為には最低1つのデータベースが必要になります。

データベース作成

データベースの追加を選択します。
データベース名を入力し作成を選択します。データベース名は"loganalytics"としています。

データベースが作成完了すると一覧に表示されます。

Azure ADユーザー作成

Azure Data Explorer用のAzure ADユーザーを作成します。
自身の環境だと"Principal 'msauser=XXXXX@XXXXX.onmicrosoft.com’ is not authorized to perform operation 'VersionShowCommand’と出てエラーが発生していました。
以下のサイトの記事を参考に、Azure ADユーザーを新規に追加して対応しています。

Unable to access Azure Data Explorer from Kusto.Explorer Tool and PowerBI Tool #35201
Kusto Access Control の概要

Azure ADユーザー追加

Azure ADの画面でユーザー追加します。
ユーザー名を入力して作成します。

※ユーザー名はdataexploreruser@XXXXX.onmicrosoft.comとしています。

作成が完了すると一覧に追加されたユーザーが表示されます。

アクセス許可設定

Azure Data Explorerクラスターでデータベースに対するアクセス許可設定を行います。
アクセス許可がないとAzure Data Explorerでクラスターを追加する際にエラーとなります。
アクセス制御 (IAM)とアクセス許可設定は別設定です。

Kusto Access Control の概要(承認)
ロール ベースの承認

アクセス許可設定

アクセス許可設定で追加を選択します。
今回はAll Databases adminを割り当てています。

作成したAzure ADユーザー(dataexploreruser@XXXXX.onmicrosoft.com)を選択します。

追加が完了するとアクセス許可一覧にユーザーが表示されます。

※今回の作業用に必要な権限割り当てを行っています。アクセス制御(IAM)も必要に応じて設定します。

Azure Data ExplorerにLog Analyticsワークスペースを追加

Azure Data Explorer(Web UI)でLog Analyticsワークスペースを追加します。

    • クラスター追加順序
      • Azure Data ExplorerにAzure Data Explorerクラスターを追加
      • Azure Data ExplorerにLog Analyticsワークスペースを追加

Azure Data Explorer(Web UI)にクラスターを追加

Azure Data ExplorerにはAzure Portalとは別にWeb UIが用意されています。
Azure Data Explorer(Web UI)はAzure Data Explorer クラスターに接続して使用します。(スタンドアローンでの利用も可能です。)
Azure Data Explorer(Web UI)を使ってKQLクエリを作成、実行、共有できます。 

クイック スタート: Azure Data Explorer Web UI でデータのクエリを実行する

クラスター追加

Azure Data Explorerにアクセスします。

サインイン画面が表示されます。
作成したAzure ADユーザー(dataexploreruser@XXXXX.onmicrosoft.com)でサインインします。

サインインするとAzure Data Explorerが表示されます。
組織のクラスターに接続しますを選択します。

クラスターの追加が表示されます。
接続URIにはAzure Data ExplorerクラスターのURIを設定します。
表示名は任意で設定します。今回はloganalyticsとしています。
追加を選択します。

※認証で失敗する場合は権限周りを再確認します。

設定が完了するとAzure Data Explorerクラスターが表示されます。

接続状況を確認します。
Databaseを選択し以下のコマンドを実行します。

.show database

結果が戻ってくれば接続出来ています。

Log Analyticsワークスペースを追加

Azure Data ExplorerにLog Analyticsワークスペースを追加します。
事前に作成してあるLog Analyticsワークスペース(test-loganalytics-workspace-01)を追加します。
追加にはAzure Data Explorer(Web UI)使います。
Log Analyticsワークスペースでのアクセス制御(IAM)権限も必要になります。
公式サイトの手順を参考に進めます。

Azure Data Explorer クライアント ツールに Log Analytics/Application Insights ワークスペースを追加する

Log Analyticsワークスペースを追加

作成したAzure ADユーザー(dataexploreruser@XXXXX.onmicrosoft.com)にLog Analyticsワークスペースに対して共同作成者権限を割り当てます。

※画面はロール割り当て完了後になります。

クラスターの追加を選択します。

クラスターの追加設定です。
接続URIは以下の通りになります。

https://ade.loganalytics.io/Log AnalyticsワークスペースのリソースID

表示名は任意です。今回はtest-loganalytics-workspace-01としています。

※Application Insightsの場合は以下の通りです。https://ade.applicationinsights.io/Application InsightsのリソースID

追加が完了するとLog Analyticsワークスペースが表示されている事が確認出来ます。
試しにKQLで(今回はVMProcess)検索すると結果が確認出来ます。

Kusto.ExplorerにLog Analyticsワークスペース追加

Kusto.Explorerの概要

Kusto.ExplorerはクライアントでKQL(Kusto クエリ言語)を実行利用できるアプリケーションです。
Azure PortalのLog Analyticsワークスペースでログ検索するより柔軟に色々出来ます。

Kusto.Explorer のインストールとユーザー インターフェイス
Kusto.Explorer の使用

Kusto Exploreのインストール

Kusto.Explorerをインストールします。

Kusto.Explorerのインストール
Kusto.Explorer のインストールとユーザー インターフェイスへアクセスします。
Kusto Exploreのインストールにあるリンクをクリックしてexeファイルをダウンロードします。
exeファイルをクリックしインストールを開始します。
警告画面が表示されます。
インストールを選択します。
インストールが完了するとアプリが起動します。
確認メッセージが表示された場合は実行を選択します。
ライセンス確認メッセージが表示されます。
内容を確認後OKを選択します。
Kusto.Explorerが起動します。

Kusto.ExplorerにLog Analyticsワークスペースを追加する

新規にコネクションを作成してKusto.ExplorerにLog Analyticsワークスペースを追加します。

Log Analyticsワークスペースを追加
Kusto.ExplorerでAdd Connectionを選択します。

コネクションの設定画面が表示されます。
Cluster Connectionには以下のURIを設定します。

https://ade.loganalytics.io/Log AnalyticsワークスペースのリソースID

Connection Ailiasは任意の設定値になります。今回はtest-loganalytics-workspace-01としています。

サインイン画面が表示されます。
作成したAzure ADユーザー(dataexploreruser@XXXXX.onmicrosoft.com)でサインインします。

完了すると追加したコネクションが表示されます。

※Detailsやコネクション名の頭にFailedが表示されている場合は接続が失敗しています。

※一度Log Analyticsワークスペースと接続を作成すると、Azure Data Explorerクラスターを削除しても接続は有効なようです。

Kusto.ExplorerでLog Analyticsワークスペースのログ検索

Kusto.ExplorerでLog Analyticsワークスペースのログ検索してみます。

ログ検索
Open In New tabを選択します。
クエリ実行画面が表示されます。
VMProcessと入力して実行アイコンをクリックします。
結果が表示されています。
Kusto.ExplorerでLog Analyticsワークスペースのログ検索できる事が確認出来ました。

最後に

Log Analyticsワークスペースに収集されたログをAzure Data Explorer(Web UI)やKusto.Explorer使ってKQLクエリ検索するまでの手順を確認してみました。
Kusto.Explorerを使う事により柔軟にKQLクエリ検索する事が出来ます。
Azure Data Explorerは様々なログをデータベースに取り込む事により柔軟にクエリ検索する事が出来ます。
イベントハブ経由で診断設定のデータを取り込むことも可能です。

Log Analyticsワークスペースと接続する部分までを実施していますが、各種ログを柔軟にKQLクエリ検索する事が出来ます。
今後も引き続き色々試してみたいと思います。

スポンサーリンク