Azure LogAnalytics 概要についてまとめてみた

こんにちは、ナレコムのDreamです。
Azure LogAnalyticsに触れる機会があったので、まとめていきたいと思います。

#Azure LogAnalyticsとは
- そもそもAzure LogAnalyticsとはどんなサービスで何ができるのかを簡単にまとめます。
     - Azureサービス/Azure VMはもちろんのこと、オンプレミス/他クラウドサービスのWindowsやLinuxのログを収集し分析するためのサービスです。 
     - 対象サーバにエージェントをインストールするだけで、簡単に使用することができます。
     - 収集したデータに閾値を設定し、アラートを発報することができる。
     - 収集したデータをダッシュボードに集約し、可視化が可能。

**[補足]**
最近Azure Monitor ログという名称に変更がありました。
これは、Azure Monitor に大きな変更が加えられ、Azure のお客様が監視を簡単に行えるようにするためにさまざまなサービスが統合された為です。
※本記事では、Azure LogAnalyticsで統一します。

![azure-log-analytics-6-638.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/229923/75557b0f-84f6-eec6-fc7f-c95e69d277ff.jpeg)
[参考URL：https://www.slideshare.net/ssuser147cbc/azure-log-analytics-107802877]


####収集できるデータ
|　収集データ|概要             |
|:-----------------------:|:-----------------------:|
|　Windowsイベントログ　　　|Windowsイベントログのイベントのみを収集（[Azure Monitor での Windows イベント ログのデータ ソース](https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/data-sources-windows-events)）|
|Windowsパフォーマンスカウンター|Windowsのハードウェアコンポーネント、オペレーティングシステム、およびアプリケーションのパフォーマンスに関する情報の収集（[Azure Monitor での Windows および Linux のパフォーマンス データ ソース](https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/data-sources-performance-counters)）|
|Linuxパフォーマンスカウンター|Linuxのハードウェアコンポーネント、オペレーティングシステム、およびアプリケーションのパフォーマンスに関する情報の収集（[Azure Monitor での Windows および Linux のパフォーマンス データ ソース](https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/data-sources-performance-counters)）|
|IISログ|W3C形式で格納されたIISログファイルのみを収集（[Azure Monitor での IIS ログを収集する](https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/data-sources-iis-logs)）|
|カスタムログ|WindowsとLinuxの両方のテキストファイルからイベントを収集（[Azure Monitor のカスタム ログ](https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/data-sources-custom-logs)）|
|Syslog|Linuxのrsyslogまたはsyslog-ngによって送信されたメッセージの収集（[Azure Monitor の Syslog データ ソース](https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/data-sources-syslog)）|


####価格
LogAnalyticsでは、サービスに取り込まれたデータがギガバイト(GB)単位で課金されます。
※デフォルトの設定ではデータ保持期間が30日に設定されています。

| 機能          |   含まれている無料ユニット  |    料金    |
|:-----------------|:------------------|:------------------|
| データインジェスト          |    顧客あたり5GB/月           |      ¥374.08/GB        |
| データ保持          |     31日        |      1GBあたり¥16.80/月       |

[Azure Monitorの価格](https://azure.microsoft.com/ja-jp/pricing/details/monitor/)

####使用方法
- AzurePortalへログインし、[LogAnalyticsワークスペース]を選択

![2019-05-27_17h38_44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/229923/0f6d6732-f5d8-123d-a4fc-9ba7ee7dd31d.png)

- LogAnalyticsワークスペースを新規作成
    - ワークスペース名/サブスクリプション/リソースグループ/場所/価格レベルを選択

※LogAnalyticsワークスペースを作成するリソースグループは運用条件によって、LogAnalytics専用のグループを作成するか監視対象リソースと同じグループを使用するかを決める

![2019-05-27_17h47_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/229923/498cc7bf-88cd-3152-9b1e-3a863336c327.png)

- ワークスペースのデータソースより[仮想マシン]を選択
     - 対象の仮想マシンを選択し接続（接続に時間を要する場合があります）

※本記事ではAzure VM（WindowsServer）を対象にしてます。

![2019-05-27_18h09_17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/229923/51ae2e14-d781-1b7f-cbc7-bb77895bb3ac.png)

![2019-05-27_18h12_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/229923/21dad96c-4b6b-c93c-adba-5836250a46aa.png)

- LogAnalyticsワークスペースの[詳細設定]から収集するデータを選択 
     - Dataから収集したいデータを選択し保存
 
※Azure VM（Windows）のパフォーマンスカウンターを取得したい場合は、別途Azure VMの[診断設定]-[ゲストレベルの監視を有効にする]をONにする必要があります。

![2019-05-27_18h17_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/229923/7b4e2d45-98c7-6369-2b98-4dfa82775f22.png)

- LogAnalyticsワークスペースの[ログ]から収集したデータの検索やアラートの設定が可能
     - ここではKustoクエリを使用します。（[kustoクエリ 概要](https://docs.microsoft.com/en-us/azure/kusto/query/)）
     
![2019-05-27_18h22_22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/229923/61f85527-0c69-e97e-1e8d-56cfa6895891.png)


####Kustoクエリ
- 英語のみとなりますが、ウェビナーもあります。（[Kusto Query Language (KQL) from Scratch](https://www.pluralsight.com/courses/kusto-query-language-kql-from-scratch)）
- 以下にAzure LogAnalyticsでよく使用するクエリをまとめます。
    - クエリの基本構文は **テーブル名|コマンド1|コマンド2...** となります。

| テーブル名          |   説明  |
|:-----------------|:------------------|
| Syslog          |LinuxのSyslogの取得           |
| Event          |   Windowsイベントログの取得       |
|  Perf   |パフォーマンスカウンターからリソース使用率を取得可能（Perfのみで実行すると接続しているコンピュータ名が確認可能）|
|  Heartbeat|死活監視等に使用します。|
※[Azure Monitor ログ クエリの例](https://docs.microsoft.com/ja-jp/azure/azure-monitor/log-query/examples)


####グラフ
- LogAnalyticsワークスペースから[ビューデザイナー]を選択
    - 一部プレビューの機能もあります。

![2019-05-31_11h30_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/229923/d73fe707-3257-6aba-23c0-308032e9038f.png)

- 表示したいグラフを選択し、表示メトリックのクエリ等を設定する

![2019-05-31_11h31_26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/229923/3e56ab85-8951-0846-39ee-a35b3fad60ab.png)

##さいごに
便利な機能が多いので、すべてを書ききれてはいませんが、Azure LgAnalyticsについてまとめました。
次の記事では、Azure VM（WindowsServer）を対象に、Azure LogAnalyticsを使用してのリソース監視についてまとめたいと思います。