Azure SQL アプリケーションのログとメトリクスの収集
このページでは、Azure SQL アプリケーションのログとメトリクスを収集する手順を説明し、ログ メッセージとクエリの例を示します。
ステップ 1: EventHub にストリーミングすることで、Azure Monitor から診断ログを収集する
このステップでは、ログを Azure Monitor から Event Hub に、Azure 関数に、そして最終的に Sumo Logic の Hosted Collector 上にある HTTP Source に転送するためのパイプラインを設定します。Azure Monitor はログだけでなくメトリクスも収集します。このパイプラインの詳細については、「Azure Monitor からログを収集する」を参照してください。
- 「Azure Monitor からログを収集する」のステップ 1 とステップ 2 を実行します。
ステップ 1 では、HTTP Source を作成します。HTTP Source を設定するときは、クエリ プロセスが容易になるように Source Category を計画してください。階層的な手法を使用すると、ワイルドカードを使用できます。例:
Azure/DB/SQL/Logs
- Azure Monitor から Event Hub にログを転送します。さまざまな Azure サービスが Azure Monitor に接続し、モニタリング データを Event Hub に送信します。詳細については、Azure ヘルプの「Azure Monitor: Send monitoring data to an event hub (Azure Monitor: モニタリング データをイベント ハブに送信する) と「Azure platform monitoring data to be streamed to an event hub? (外部ツールで使用する Azure モニタリング データのイベント ハブへのストリーミング)」を参照してください。
- Azure ポータルにログインします。
- [Azure SQL] をクリックします。ログの収集元の SQL データベースを選択します。
- [Monitoring (モニタ)] セクションの [Diagnostic Settings (診断設定)] ブレードには、既存の設定が表示されます。既存の設定を変更するには [Edit Setting (設定の編集)] をクリックし、新規の設定を追加するには [Add diagnostic setting (診断設定の追加)] をクリックします。最大 3 つの設定まで追加できます。
- 名前を入力します。
- [Stream to an event hub (イベント ハブにストリーミング)] ボックスをオンにして [Event hub / Configure (イベント ハブ/設定)] をクリックします。
- Azure サブスクリプションを選択します。
- 「Azure Monitor からログを収集する」のステップ 2 で作成した Event Hubs 名前空間を選択します。この名前空間は「SumoAzureLogsNamespace<UniqueSuffix>」で始まります。
- [Select event hub name (イベント ハブ名の選択)] ドロップダウンから insights-operational-logs を選択します。
- [Select event hub policy name (イベント ハブ ポリシー名の選択)] ドロップダウンから RootManageSharedAccessKey を選択します。
- [OK] をクリックしてイベント ハブ設定を終了します。
- 「Audit (監査)」というラベルが付いた [Logs (ログ)] の下のボックスをオンにします。
- [Save (保存)] をクリックします。
ステップ 2: EventHub にストリーミングすることで、Azure Monitor からメトリクスを収集する
このステップでは、メトリクスを Azure Monitor から Event Hub に、Azure 関数に、そして最終的に Sumo Logic の Hosted Collector 上にある HTTP Source に転送するためのパイプラインを設定します。このパイプラインの詳細については、「Azure Monitor からメトリクスを収集する」を参照してください。
- 「Azure Monitor からメトリクスを収集する」のステップ 1 とステップ 2 を実行します。
ステップ 1 では、HTTP Source を作成します。HTTP Source を設定するときは、クエリ プロセスが容易になるように Source Category を計画してください。 階層的な手法を使用すると、ワイルドカードを使用できます。例:
Azure/DB/SQL/Metrics
- Azure Monitor から Event Hub にメトリクスを転送します。
- 左側のペインで、[ALL Services (すべてのサービス)] をクリックします。
- 「Monitor (モニタ)」を検索して選択します。
- [Monitor (モニタ)] ペインで、[Settings (設定)] の [Diagnostic Settings (診断設定)] を選択します。
- メトリクスをエクスポートするリソースを選択します。診断を有効にしていない場合は、[Turn on Diagnostics Settings (診断設定の有効化)] をクリックします。
-
診断を有効にしたら、[Add a diagnostic setting (診断設定の追加)] をクリックします。
-
[Diagnostic Settings (診断設定)] ページが表示されます。
- 左側のペインで
- 診断設定の名前を入力します。
- [Stream to an event hub (イベント ハブにストリーミング)] チェックボックスをクリックします。
- [Configure event hub (イベント ハブの設定)] を選択します。右側のペインが表示されます。
- 右側のペインで
- [Subscription (サブスクリプション)] を選択します。
- イベント ハブ名前空間として SumoMetricsNamespace<UniqueSuffix> を選択します。
- イベント ハブ名として insights-metrics-pt1m を選択します。
- イベント ハブ ポリシー名を選択します。デフォルトのポリシー RootManageSharedAccessKey を使用できます。
- [AllMetrics (すべてのメトリクス)] ボックスをオンにします。
- [OK] をクリックします。
- [Diagnostics Setting (診断設定)] を保存します。
- 左側のペインで
- 左側のペインで、[ALL Services (すべてのサービス)] をクリックします。
ログ メッセージのサンプル
ErrorEvent
{"LogicalServerName":"npande-test-db-server","SubscriptionId":"c088dc46-d123-12ad-a8b7-9a123d45ad6a","ResourceGroup":"npandeTestDBResGrp","time":"2018-07-09T05:08:32.679Z","resourceId":"/SUBSCRIPTIONS/c088dc46-d123-12ad-a8b7-9a123d45ad6a/RESOURCEGROUPS/NPANDETESTDBRESGRP/PROVIDERS/MICROSOFT.SQL/SERVERS/NPANDE-TEST-DB-SERVER/DATABASES/NPANDETESTDB2","category":"Errors","operationName":"ErrorEvent","properties":{"ElasticPoolName":"","DatabaseName":"npandeTestDB2","query_hash":"0","query_plan_hash":"0","message":"Invalid object name 'inventory123'.","error_number":208,"severity":16,"user_defined":false,"state":1}}
DatabaseWaitStatisticsEvent
{"LogicalServerName":"npande-test-db-server","SubscriptionId":"c088dc46-d123-12ad-a8b7-9a123d45ad6a"","ResourceGroup":"npandeTestDBResGrp","time":"2018-07-09T05:13:34.520Z","resourceId":"/SUBSCRIPTIONS/c088dc46-d123-12ad-a8b7-9a123d45ad6a"/RESOURCEGROUPS/NPANDETESTDBRESGRP/PROVIDERS/MICROSOFT.SQL/SERVERS/NPANDE-TEST-DB-SERVER/DATABASES/NPANDETESTDB","category":"DatabaseWaitStatistics","operationName":"DatabaseWaitStatistcsEvent","properties":{"ElasticPoolName":"","DatabaseName":"npandeTestDB","start_utc_date":"2018-07-09T05:13:34.520Z","end_utc_date":"2018-07-09T05:18:36.050Z","wait_type":"WRITELOG","delta_max_wait_time_ms":0,"delta_signal_wait_time_ms":0,"delta_wait_time_ms":12,"delta_waiting_tasks_count":2}}
クエリのサンプル
上位 10 件のエラー
_sourceCategory=Azure/DB/SQL/Logs ErrorEvent "\"operationName\":\"ErrorEvent\""
| json "LogicalServerName", "SubscriptionId", "ResourceGroup", "resourceId", "category", "operationName", "properties" nodrop
| json field=properties "severity", "error_number", "DatabaseName", "message", "user_defined", "state"
| where operationName="ErrorEvent"
| count as eventCount by message
| top 10 message by eventCount, message asc