📐

オンプレ機器から Sentinel へ syslog を転送する

に公開

はじめに

オンプレ機器 (サーバーやプロキシ、ファイアウォール) から Sentinel に syslog を収集する方法は主に以下の 2 つがあります。

  1. オンプレと Azure の VNET を ExpressRoute や VPN で接続し、Azure の Linux VM に syslog を転送、Azure Monitor エージェント (AMA) で Log Analytics ワークスペースに送信

  2. オンプレに syslog 転送用の Linux サーバーを準備し、Azure Arc で Azure に接続、Azure Monitor エージェント (AMA) で Log Analytics ワークスペースに送信

今回は 2. の方法を解説します。

前提条件

Azure Arc、Azure Monitor エージェントでぞれぞれいくつか前提条件がありますので、事前に確認することをお勧めします。特にオンプレの場合、ネットワーク要件によりファイアウォールやプロキシへの穴あけが必要となるケースがあります。
https://learn.microsoft.com/ja-jp/azure/azure-arc/servers/prerequisites
https://learn.microsoft.com/ja-jp/azure/azure-arc/servers/network-requirements?tabs=azure-cloud
https://learn.microsoft.com/ja-jp/azure/azure-monitor/agents/azure-monitor-agent-supported-operating-systems
https://learn.microsoft.com/ja-jp/azure/azure-monitor/agents/azure-monitor-agent-requirements
https://learn.microsoft.com/ja-jp/azure/azure-monitor/agents/azure-monitor-agent-network-configuration?tabs=PowerShellWindows

リソース プロバイダーの登録

Azure Arc の機能を利用するため、サブスクリプションでリソース プロバイダーの登録を行います。
こちらの作業にはサブスクリプションの所有者ロールが必要です。
https://learn.microsoft.com/ja-jp/azure/azure-arc/servers/prerequisites#azure-resource-providers

Azure ポータルから行う場合、サブスクリプションから [リソース プロバイダー] を開きます。


対象の以下の 3 つを検索し、登録します。

  • Microsoft.HybridCompute
  • Microsoft.GuestConfiguration
  • Microsoft.HybridConnectivity

Azure Arc サーバー登録

Azure Arc のメニューを開きます。


[マシン] > [+追加/作成] > [マシンの追加] をクリックします。


単一サーバーの追加の [スクリプトの作成] をクリックします。


Azure Arc 接続マシンを登録するサブスクリプション・リソース グループを選択します。
サーバが置かれている場所に近いリージョンを選択、オペレーティング システムは Linux にします。
[SQL Server の接続] はチェックを外します。


下にスクロールして、対象のオンプレサーバがインターネット アクセスにプロキシを使用する場合は [プロキシ サーバー] を選択して、URL を入力します。ゲートウェイ リソースは入力なしで構いません。
直接インターネット アクセス可能であれば [パブリック エンドポイント] を指定します。
入力が完了したら [次へ] をクリックします。


このサーバーにタグをつけたい場合、下記で設定します。特に不要であればこのまま [スクリプトのダウンロードと実行] をクリックします。


以下のようにスクリプトが表示されます。こちらをダウンロードもしくはコピーしてオンプレの Linux マシンで実行します。


実行後、以下のように To Signin, use a web browser to open page ... を表示されたら、https://microsoft.com/devicelogin に自身の操作端末でログインし、
デバイスコードを入力し、ログインします。


ログイン後、処理が継続します。以下のように Connected machine to Azure と表示されれば処理が完了しています。


Azure Arc のマシンのページに戻り、更新ボタンを押すと、登録したマシンが表示されていることを確認します。

Sentinel への接続

Sentinel の画面で [コンテンツ ハブ] を開き、 Syslog を検索、選択してインストールします。


インストール済みになったことを確認後、[データ コネクタ] に移動し、[Syslog via AMA] を開きます。


[Create data collection rule] をクリックし、データ収集ルールを作成します。
ルール名、保存先のサブスクリプション、リソース グループを選択します。
[次へ: Resources >] をクリックします。


Resources タブで先ほど Azure Arc に登録したマシンを検索し、選択します。
[次へ: Collect >] をクリックします。


収集する syslog の Facility / Severity を選択します。こちらはログ送信元のファイアウォールやプロキシの設定を確認し選択します。もしログ送信元の装置で設定できない場合、[Collect messages without PRI header ] のチェックを入れたままにします。
[次へ: Review + create >] をクリックします。


確認画面で [Create] をクリックします。


[Syslog via AMA] コネクタ画面に戻り、以下のコマンドをマシンで実行します。
実行後、rsyslog を再起動します。

本コマンドによって rsyslog の設定が追加され、外部からの syslog 受信が有効になります。


しばらくすると、以下のようにログ検索画面で Syslog テーブルを検索するとログが確認できるようになります。

補足

syslog をサーバーのローカルに保存する設定となっている場合、ファイアウォールやプロキシから転送されたログによりディスク容量が逼迫する可能性があります。その場合は以下のリンクを参考にローカルへの保存を止める設定を行います。
https://learn.microsoft.com/ja-jp/azure/azure-monitor/agents/azure-monitor-agent-troubleshoot-linux-vm-rsyslog#rsyslog-default-configuration-logs-all-facilities-to-varlog

Microsoft (有志)

Discussion