LinuxのログをLog Analyticsに取り込む

はじめに

サーバー運用において、ログの管理は欠かせない重要な業務です。しかし、ログをサーバーで管理する場合、ディスク容量の確保や運用負荷の増加といった課題が発生します。
こうした課題の解決策として、Azureの「Log Analytics」を利用し、ログをクラウドへ集約する方法が有効です。本記事では、Linux のログをAzureの「Log Analytics」に取り込む方法について解説します。


【注意事項】

  1. 本記事の内容は、2026年6月16日時点の情報に基づいています。時間の経過により内容が変更される可能性がありますので、最新情報をご確認のうえ、適宜対応してください。
  2. 各設定については、環境に応じて適切に調整してください。本記事では基本的な設定方法のみを記載しています。
  3. Linuxのインストール手順については、本記事では扱っておりません。

構成

構成を説明する前に、構成の中で使用する各用語の説明を記載します。

各用語の詳細はMicrosoftのドキュメントのURLを記載しておりますのでご覧ください。

これらのサービスを利用し、実際にAzureのLog Analyticsにログを取り込む設定を行います。
本記載では、構成図を用いてご説明いたします。


【Log Analytics格納までの流れ】

例として、上記LinuxサーバーでのLog Analyticsにログを格納する流れを記載します。

①アプリケーション等からログが出力します。

②rsyslogがメッセージをAMAに送ります。

③AMAからAzureにメッセージを送ります。

④「syslog」テーブルにログを格納します。
※Windowsサーバーの場合は「Event」テーブルにログを格納します。

上記処理の流れを実現するための設定と、一例としてsyslogを取り込む設定を次項からご紹介します。


前提条件

ログをLog Analyticsに格納する設定の前提条件を記載します。

  1. Linuxのログは、syslogで管理されているログが対象です。
  2. AMAがインストールされているLinuxサーバーが対象です。
  3. Azureと疎通可能であるLinuxサーバーが対象です。

設定

ログをLog Analyticsに格納するためにはDCRの設定が必要です。

次項からLinuxサーバーを例に、簡単に設定のポイントをご紹介いたします。

詳細な設定手順については参考URLに記載されている手順を参考に対応してください。


DCRの設定

最初に上部検索画面に「データ収集ルール」と入力し検索します。
サービスに「データ収集ルール」が表示されますので押下します。


データ収集ルール画面にある「作成」を押下します。


データ収集エンドポイントは今回のSyslog収集では利用しません。そのため「<なし>」のままでOKです。

「基本」画面では、実際にご利用されている環境に合わせて入力し、ルール名は任意の名前を入力してください。なお、DCRと同じリージョンにある宛先のみを選択する必要があるので注意してください。

なお、データ収集エンドポイントの設定は本記載では検証しておりませんので、詳細は参考URLをご覧ください。

参考URL:Azure Monitor のデータ収集エンドポイント

https://learn.microsoft.com/ja-jp/azure/azure-monitor/data-collection/data-collection-endpoint-overview?tabs=portal


「リソース」画面ではリソースの追加を押下します。

リソースの追加を押下すると、リソースを登録するため「範囲の選択」画面が開きます。ここではリソースとして障害を検知したいLinuxVMを登録します。なお、本記事でご紹介する環境としてAzure VMを利用しておりますが、Azure VM以外でもAzure Arcを利用することで登録可能です。


リソース選択後、最下部の「適用」を押下します。

リソースが登録できると下図のように表示されます。



「収集と配信」画面でデータソースとターゲットを設定します。

データソースの追加を押下します。



rsyslogで出力されるメッセージを取り込む必要があるため、データソースは「Linux Syslog」を選択します。※Windowsの場合は「Windows イベントログ」です。


ファシリティにLOG_LOCAL6を指定します。

また、最小ログレベルはデフォルト設定でも構成可能ですが、その場合は不要なメッセージもAMAからAzureに転送され無駄な通信が生じます。無駄な通信を削減するため、最小ログレベルでLOG_ERRを指定しエラー以上のメッセージを取得します。


収集したメッセージはAMAに保存するため、ターゲットは「Azure Monitor」を指定します。



最下部の「保存」を押下し、次に「確認および作成」を押下し確認画面に遷移します。

確認画面を確認し問題なければ「作成」を押下します。

ここまで設定することでAMAも併せてインストールされ、メッセージが収集できるようになります。

次項でLog Analyticsを確認してみます。

ログ収集を確認する

ここでは、DCR設定でログが取り込まれているか確認します。
事前にloggerコマンドを実行し、Facilityがlocal6、かつエラー以上のログを出力します。

$ logger -p local6.err “test message” 

Log Analyticsワークスペースの縦のメニューにあるログを押下します。



右上のプルダウンからKQLモードを選択します。

KQLクエリの記述が可能に可能になりますので下記クエリを記述し、「▷実行」を押下します。


  • Syslog
    「Syslog」テーブルを指定します。
    ※Windowsの場合は「Event」テーブルです。
  • | where Facility == “local6”
    「Syslog」テーブルのFacility列が[local6]になっているものを抽出します。



収集できている場合は、「Syslog」テーブルかつファシリティがlocal6のメッセージが検索結果として表示されます。

なお、下記画像のように、「//」でコメントアウトし各行の説明を記載しておきますと、見返した時や他者が確認した際に意味が分かりやすくなります。


参考URL:Azure Monitorでデータ収集ルール(DCR)を作成する。

https://learn.microsoft.com/ja-jp/azure/azure-monitor/data-collection/data-collection-rule-create-edit?tabs=cli


参考情報

Linuxサーバーを例にログをLog Analyticsに取り込む方法をご紹介しましたが、Windowsのログも同じ手順で設定可能です。

Microsoft社より具体的な設定方法について情報公開されておりますのでご覧ください。

参考URL:Windows セキュリティ イベントログの収集

https://jpazmon-integ.github.io/blog/LogAnalytics/HowToCollectWindowsSecurityEvents


まとめ

本記事では、ログをLog Analyticsのテーブルに格納するための、比較的シンプルかつ容易に構築できる監視環境についてご紹介しました。

最小限の構成と設定で実現できるため、Azure Monitor Agent(AMA)やデータ収集ルール(DCR)の仕組みを理解するうえでも有用な内容となっています。今後も本ブログでは、Azure の各種機能やサービスの活用方法を分かりやすく紹介していく予定です。ぜひ引き続きご覧ください。

いいね (←参考になった場合はハートマークを押して評価お願いします)
読み込み中...

注意事項・免責事項

※技術情報につきましては投稿日時点の情報となります。投稿日以降に仕様等が変更されていることがありますのでご了承ください。

※公式な技術情報の紹介の他、当社による検証結果および経験に基づく独自の見解が含まれている場合がございます。

※これらの技術情報によって被ったいかなる損害についても、当社は一切責任を負わないものといたします。十分な確認・検証の上、ご活用お願いたします。

※当サイトはマイクロソフト社によるサポートページではございません。パーソルクロステクノロジー株式会社が運営しているサイトのため、マイクロソフト社によるサポートを希望される方は適切な問い合わせ先にご確認ください。
 【重要】マイクロソフト社のサポートをお求めの方は、問い合わせ窓口をご確認ください