前回、バンコクで財布を無くした思い出とともにSQL Databaseの「監査と脅威検出」のログをStorageのテーブルに出力するように設定しましたが、見るのが辛い感じでした。
今回は、「監査と脅威検出」のログをWeb版のPowerBIに表示して設定をします。
Overview
ということで、Power BIのアカウントが事前に必要です♪
Office 365がある人は、管理者がPowerBIを使うように設定すればフリーで使えます。そうでない場合、ここらへんからどうにかなるのでしょうか...(←O365持ってるので試してないです...)
1. PowerBIでの設定
まず、Power BIのWebサイトに行ってでサインインしましょう。
次に、テンプレートみたいなの(コンテンツパック)を使ってさらっとダッシュボードを作ります。Power BIの左ペインの下の方からデータの取得
> サービス
と進んでSQL Database Auditingを探してもいいんですが、面倒なので
こちらのリンクからSQL Database Auditingを入手します。
接続先の情報を入力する画面が表示されます。今回はさらっと設定ってことで、「Azure Table Storage Account」にStorageアカウントの入力、他は全て「*」を入力します。
サーバーやデータベース、データを抽出する日数などをフィルタリングできます。本家のサイトをみるとさっとできます。
次へ
をクリックし、ログが入ってるStorageアカウントのアクセスキーを入力します(Azureのポータルで取得できます)。
接続ができたら、左ペインの「ダッシュボード」で、「SQL Database Auditing」をクリックしてみましょう。正常にデータがとれていれば、データが表示されます。 (作ったばかりのDBなのでデータ少ないですけど)
色々用意されています♪
2. 各種設定の操作
左ペインの「ダッシュボード」 > 「SQL Database Auditing」のすぐ右にある---
をクリックし、設定をクリックしてみます。
データセット
を選択すると、先ほど入力した接続先の設定や、更新時間の設定ができます。うまくデータが表示されなかったり、設定を変更したいときはここから設定できそうですね。
左ペインの「データセット」 > 「SQL Database Auditing」のすぐ右にある---
をクリックすると、データセットの更新タイミングの設定やや「今すぐ更新」をすることができます。
3. カスタムなレポート作成
独自のレポートを作ってみましょう。基本的には、どのデータセットを使うかを選択し、いろんなグラフや地図とか用意されてる中から表示したいものを選んでデータを紐づければおしまいです。
今回は、実行されたクエリだけをみたいなーと思っています。
左ペインの「データセット」 > 「SQL Database Auditing」をクリックします。表示された画面の右側の方で、「視覚化」から「テーブル」を選択します。
次に、「フィールド」の中で「AuditLogs」を開き、見たいカラムにチェックを入れていくと完成します。フィルターをして必要なデータだけを抽出も簡単にできそうです。
最後に画面の左上の方にある「ビュー」で表示設定をして、「ファイル」の中から「保存」をしましょう。
左ペインの「レポート」に作ったレポートができています。簡単にできてイイ感じです。
最後に
今回これを書いたのは、プログラム書いたりテスト流したあとに、EF Coreで変なクエリが生成されてないか見たかっただけなのです♪
(インフラガチ用の記事ではない...という言い訳をしておきます...)
まぁsys.dm_db_resource_statsの情報ほしいかもとか妄想が膨らみそうですが、Azure ポータルからQuery Performance Insightで見れるから...あんまりいらないのかな...。
また、今回のSQL Database Auditing以外にも、データを取得するためのコンテンツパックはたくさんあります。Power BIの左ペインの下の方からデータの取得
> サービス
と進むと色々出てきます。
今回のは、ある程度定期的なタイミングで見る用途なので、がっつりリアルタイムに見たい場合は、今回のデータセットの設定ではなく必要に応じてストリーミングデータセットを使ってみる感じでしょうか。そのうち試してみたいです。