5分で学ぶAzure LogAnalytics【中級者向け】

はじめに

ウェブサイトやAPIなど、ユーザーに提供するサービスをしっかりと監視していく必要があります。
そういった時に、便利に使えて必須とも言えるサービス、Azure LogAnalytics についてご紹介していきます。
さくっと概要を知りたい中級者向けの内容になっています。

  • ログを収集し分析するのは、エラーが出た時に原因を早急に突き止めるのに使えます
  • しきい値でアラートを発砲してくれるので問題にすぐ気付ける
  • ダッシュボードでひと目で可視化したデータを確認できるので、管理コストがかかりません
  • 次の開発に集中して作業ができる

    Azure LogAnalyticsとは

    image.png

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

Azure Monitor ログが利用可能です。
Azure のお客様が監視を簡単に行えるようにするために統合されたサービスです。

※本記事では、Azure LogAnalyticsで統一します。

参考URL

LogAnalytics が収集できるデータ

収集データ 概要
Windowsイベントログ Windowsイベントログのイベントのみを収集(Azure Monitor での Windows イベントログのデータソース
Windowsパフォーマンスカウンター Windowsのハードウェアコンポーネント、オペレーティングシステム、およびアプリケーションのパフォーマンスに関する情報の収集 (Azure Monitor での Windows および Linux のパフォーマンス データ ソース)
Linuxパフォーマンスカウンター Linuxのハードウェアコンポーネント、オペレーティングシステム、およびアプリケーションのパフォーマンスに関する情報の収集(Azure Monitor での Windows および Linux のパフォーマンス データ ソース)
IISログ W3C形式で格納されたIISログファイルのみを収集(Azure Monitor での IIS ログを収集する)
カスタムログ WindowsとLinuxの両方のテキストファイルからイベントを収集(Azure Monitor のカスタム ログ)
Syslog Linuxのrsyslogまたはsyslog-ngによって送信されたメッセージの収集(Azure Monitor の Syslog データ ソース)

価格

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

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

Azure Monitorの価格

使用方法

AzurePortalへログインし、[LogAnalyticsワークスペース]を選択
image.png
LogAnalyticsワークスペースを新規作成
ワークスペース名/サブスクリプション/リソースグループ/場所/価格レベルを選択
※LogAnalyticsワークスペースを作成するリソースグループは運用条件によって、LogAnalytics専用のグループを作成するか監視対象リソースと同じグループを使用するかを決める
image.png
ワークスペースのデータソースより[仮想マシン]を選択
対象の仮想マシンを選択し接続(接続に時間を要する場合があります)
※本記事ではAzure VM(WindowsServer)を対象にしてます。
image.png
image.png
LogAnalyticsワークスペースの[詳細設定]から収集するデータを選択
Dataから収集したいデータを選択し保存
※Azure VM(Windows)のパフォーマンスカウンターを取得したい場合は、別途Azure VMの[診断設定]-[ゲストレベルの監視を有効にする]をONにする必要があります。
image.png
LogAnalyticsワークスペースの[ログ]から収集したデータの検索やアラートの設定が可能
ここではKustoクエリを使用します。(kustoクエリ 概要)
image.png

Kustoクエリ

英語のみとなりますが、ウェビナーもあります。
(Kusto Query Language (KQL) from Scratch)
以下にAzure LogAnalyticsでよく使用するクエリをまとめます。
クエリの基本構文は テーブル名|コマンド1|コマンド2… となります。

テーブル名 説明
Syslog LinuxのSyslogの取得
Event Windowsイベントログの取得
Perf パフォーマンスカウンターからリソース使用率を取得可能(Perfのみで実行すると接続しているコンピュータ名が確認可能)
Heartbeat 死活監視等に使用

※Azure Monitor ログ クエリの例

グラフ

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

image.png

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

image.png

ユースケース

  • サーバーなどを監視する仕組みを利用したい
  • 監視もazure環境内で完結したい
  • ランニングコストの予算内にとどめたい