# Azure Monitor による Kusto クエリの実行

## 収集されるデータの拡張
1. リソースにおける "診断の有効化"
+ Azure SQL Database

2. エージェントの追加
+ VM の場合、Azure Monitor でより詳細のログを収集するために、以下のような対応をとることができる。
- Log Analytics エージェントのインストール
- Log Analytics ワークスペースにデータを保存

3. 開発者による追加
+ 開発者は、Web アプリ、Azure Functions などで、カスタム コードを使って Azure Monitor にデータを送信することが可能。
+ データの送信には REST 形式のデータ コレクタ API 使う。.NET Framework、Node.js、Python などのさまざまな開発フレームワークと互換性をもつ。


## Kusto が使える場所
+ LogAnalytics
+ Azure Data Explorer

## KQL 実行例
```
Heartbeat
| summarize dcount(ComputerIP) by bin(TimeGenerated, 1h)
| render timechart
```

```
Heartbeat
| summarize arg_max(TimeGenerated, *) by ComputerIP
```

### セキュリティイベントテーブルから、10件を表示する。
```
SecurityEvent
| take 10
```

### セキュリティイベントテーブルから、最新の 10件を表示する。
```
SecurityEvent
| top 10 by TimeGenerated
```

### セキュリティイベントテーブルから、30 分以内に発生した、レベル 10 以上のレコードを表示する
```
SecurityEvent
| where TimeGenerated < ago(30m)
| where toint(Level) >= 10
```

### Event テーブルで、過去 24 時間の Application イベント ログを出力する
```
Event
| where EventLog == "Application"
| where TimeGenerated > ago(24h)
```
### 過去 3 週間に、毎週ハートビート イベントを生成したさまざまなコンピューターの数を表示します。 結果が横棒グラフとして表示されます。

```
Heartbeat
| where TimeGenerated >= startofweek(ago(21d))
| summarize dcount(Computer) by endofweek(TimeGenerated) | render barchart kind=default
```