Syslog は、Linux に共通のイベント ログ プロトコルです。 Linux デバイスとアプライアンスに組み込まれている Syslog デーモンを使用して、指定した種類のローカル イベントを収集できます。 アプリケーションでは、ローカル コンピューターに格納されているか、Syslog コレクターに配信されるメッセージが送信されます。 Linux Syslog データ ソースで データ収集規則 (DCR) を使用して、仮想マシンから Syslog イベントを収集します。
ヒント
Azure Monitor エージェントのローカル インストールを許可しないデバイスからデータを収集するには、「 Azure Monitor エージェントを使用して Microsoft Sentinel を使用して Syslog データを Log Analytics ワークスペースに転送する」の説明に従って、専用の Linux ベースのログ フォワーダーを構成します。
DCR の作成の詳細については、「Azure Monitor を使用して VM クライアントからデータを収集する」を参照してください。 この記事では、Linux Syslog データ ソースの種類の詳細について説明します。
注
DCR 定義を直接操作するか、ARM テンプレートなどの他の方法でデプロイするには、 Azure Monitor のデータ収集規則 (DCR) サンプルを参照してください。
Syslog データ ソースの構成
「Azure Monitor を使用して仮想マシン クライアントからデータを収集する」のプロセスを使用して DCR を作成します。 DCR の [収集して配信] タブで、[データ ソースの種類] ドロップダウンから [Linux Syslog] を選択します。
各ファシリティの 最小ログ レベル を選択するか 、その ファシリティのイベントを収集しない場合は NONE を選択します。 複数の機能を一度に構成するには、そのチェック ボックスをオンにしてから、選択した 機能の最小ログ レベルの設定でログ レベルを選択します。
選択した重大度レベル以上のすべてのログが施設に対して収集されます。 サポートされている重大度レベルとその相対的な重大度は次のとおりです。
- デバッグ
- 情報
- お知らせ
- 警告
- エラー
- 危うい
- アラート
- 緊急
宛先を追加する
Syslog データは、 Syslog テーブルに格納されている Log Analytics ワークスペースにのみ送信できます。 Azure Monitor ログの種類の宛先を追加し、Log Analytics ワークスペースを選択します。 複数のワークスペースを追加できますが、これにより重複するデータがそれぞれに送信され、追加コストが発生します。
データ収集の確認
データが収集されていることを確認するには、 Syslog テーブル内のレコードを確認します。 仮想マシンまたは Azure portal の Log Analytics ワークスペースから、[ ログ ] を選択し、[ テーブル ] ボタンをクリックします。 [仮想マシン] カテゴリで、[Syslog] の横にある [実行] をクリックします。
Linux エージェントでの Syslog の構成
Azure Monitor エージェントが Linux マシンにインストールされると、DCR で Syslog が有効になっている場合に収集されるメッセージのファシリティと重大度を定義する既定の Syslog 構成ファイルがインストールされます。 クライアントにインストールされている Syslog デーモンによって、構成ファイルは異なります。
注
Azure Monitor Linux Agent バージョン 1.15.2 以上では、Cisco Meraki、Cisco ASA、Cisco FTD、Sophos XG、Juniper Networks、Corelight Zeek、CipherTrust、NXLog、McAfee および Common Event Format (CEF) などの syslog RFC 形式がサポートされます。
Rsyslog
多くの Linux ディストリビューションでは、rsyslogd デーモンは、Linux Syslog API を使用して送信されたログ メッセージの使用、格納、ルーティングの役割を担います。 Azure Monitor エージェントでは、rsyslog の TCP 転送出力モジュール (omfwd
) を使用して、ログ メッセージを転送します。
Azure Monitor エージェントのインストールには、/etc/opt/microsoft/azuremonitoragent/syslog/rsyslogconf/
にある既定の構成ファイルが含まれています。 Syslog が DCR に追加されると、この構成は etc/rsyslog.d
システム ディレクトリにインストールされ、変更を有効にするために rsyslog が自動的に再起動されます。
注
rsyslog ベースのシステムでは、Azure Monitor Linux Agent は、rsyslog 構成で定義されている既定のルールセットに転送ルールを追加します。 複数のルールセットが使用されている場合、既定以外のルールセットにバインドされた入力は Azure Monitor Agent に転送されません。 rsyslog での複数のルールセットの詳細については、公式ドキュメントを参照してください。
次に示す既定の構成では、すべてのログ レベルのすべてのファシリティについて、ローカル エージェントから送信された Syslog メッセージを収集します。
$ cat /etc/rsyslog.d/10-azuremonitoragent-omfwd.conf
# Azure Monitor Agent configuration: forward logs to azuremonitoragent
template(name="AMA_RSYSLOG_TraditionalForwardFormat" type="string" string="<%PRI%>%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%")
# queue.workerThreads sets the maximum worker threads, it will scale back to 0 if there is no activity
# Forwarding all events through TCP port
*.* action(type="omfwd"
template="AMA_RSYSLOG_TraditionalForwardFormat"
queue.type="LinkedList"
queue.filename="omfwd-azuremonitoragent"
queue.maxFileSize="32m"
queue.maxDiskSpace="1g"
action.resumeRetryCount="-1"
action.resumeInterval="5"
action.reportSuspension="on"
action.reportSuspensionContinuation="on"
queue.size="25000"
queue.workerThreads="100"
queue.dequeueBatchSize="2048"
queue.saveonshutdown="on"
target="127.0.0.1" Port="28330" Protocol="tcp")
SELinux を使用し、Unix ソケットを使うことにした場合は、次の構成が使用されます。
$ cat /etc/rsyslog.d/10-azuremonitoragent.conf
# Azure Monitor Agent configuration: forward logs to azuremonitoragent
$OMUxSockSocket /run/azuremonitoragent/default_syslog.socket
template(name="AMA_RSYSLOG_TraditionalForwardFormat" type="string" string="<%PRI%>%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%")
$OMUxSockDefaultTemplate AMA_RSYSLOG_TraditionalForwardFormat
# Forwarding all events through Unix Domain Socket
*.* :omuxsock:
$ cat /etc/rsyslog.d/05-azuremonitoragent-loadomuxsock.conf
# Azure Monitor Agent configuration: load rsyslog forwarding module.
$ModLoad omuxsock
一部のレガシ システムでは、従来の転送形式を使用して Syslog イベントを Azure Monitor エージェントに送信すると、rsyslog ログの形式に関する問題が発生する場合があります。 これらのシステムの場合、Azure Monitor エージェントは代わりに従来のフォワーダー テンプレートを自動的に配置します。
template(name="AMA_RSYSLOG_TraditionalForwardFormat" type="string" string="%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%\n")
Syslog-ng
Azure Monitor エージェントのインストールには、/etc/opt/microsoft/azuremonitoragent/syslog/syslog-ngconf/azuremonitoragent-tcp.conf
にある既定の構成ファイルが含まれています。 Syslog が DCR に追加されると、この構成は /etc/syslog-ng/conf.d/azuremonitoragent-tcp.conf
システム ディレクトリにインストールされ、変更を有効にするために syslog-ng が自動的に再起動されます。
既定の内容を次の例に示します。 この例では、ローカル エージェントから送信された、すべてのファシリティのすべての重大度の Syslog メッセージを収集します。
$ cat /etc/syslog-ng/conf.d/azuremonitoragent-tcp.conf
# Azure MDSD configuration: syslog forwarding config for mdsd agent
options {};
# during install time, we detect if s_src exist, if it does then we
# replace it by appropriate source name like in redhat 's_sys'
# Forwrding using tcp
destination d_azure_mdsd {
network("127.0.0.1"
port(28330)
log-fifo-size(25000));
};
log {
source(s_src); # will be automatically parsed from /etc/syslog-ng/syslog-ng.conf
destination(d_azure_mdsd);
flags(flow-control);
};
SELinux を使用し、Unix ソケットを使うことにした場合は、次の構成が使用されます。
$ cat /etc/syslog-ng/conf.d/azuremonitoragent.conf
# Azure MDSD configuration: syslog forwarding config for mdsd agent options {};
# during install time, we detect if s_src exist, if it does then we
# replace it by appropriate source name like in redhat 's_sys'
# Forwrding using unix ___domain socket
destination d_azure_mdsd {
unix-dgram("/run/azuremonitoragent/default_syslog.socket"
flags(no_multi_line) );
};
log {
source(s_src); # will be automatically parsed from /etc/syslog-ng/syslog-ng.conf
destination(d_azure_mdsd);
};
注
Azure Monitor では、rsyslog または syslog-ng によって送信されたメッセージの収集がサポートされています。rsyslog は既定のデーモンです。 Syslog イベントの収集に関して、バージョン 5 の Red Hat Enterprise Linux と Oracle Linux 版の既定の Syslog デーモン (sysklog) はサポートされません。 このバージョンの各種ディストリビューションから Syslog データを収集するには、rsyslog デーモンをインストールし、sysklog を置き換えるように構成する必要があります。
Syslog 構成を編集した場合、変更を有効にするには、Syslog デーモンを再起動する必要があります。
サポートされるファシリティ
Syslog コレクターでは、次のファシリティがサポートされています。
Priインデックス | PRI 名 |
---|---|
0 | なし |
1 | カーン |
2 | ユーザー |
3 | 郵便 |
4 | デーモン |
4 | 認証 |
5 | シスログ |
6 | lpr(Unix系オペレーティングシステムでプリントするためのコマンド) |
7 | news |
8 | uucp |
9 | ファイル転送プロトコル (FTP) |
10 | ntp |
11 | 監査 |
12 | アラート |
13 | mark |
14 | local0 |
15 | local1 |
16 | ローカル2 |
十七 | local3 |
18 | local4 |
19 | local5 |
20 | local6 |
21 (二十一) | local7 |
次のステップ
- Azure Monitor エージェントの詳細を理解します。
- データ収集ルールの詳細を確認します。