すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:Linux システムからの Syslog 収集

最終更新日:Aug 01, 2026

Simple Log Service (SLS) コンソールで Logtail 構成を作成し、Linux サーバーから Syslog データを収集します。

仕組み

How it works

Linux サーバーでは、rsyslog などの Syslog エージェントがローカルの Syslog データを指定された IP アドレスとポートに転送します。Logtail はそのアドレスとポートでリッスンし、TCP または UDP 経由でデータを受信し、設定された Syslog プロトコルに従って解析して、ファシリティ、タグ (プログラム)、セベリティ、コンテンツなどのフィールドを抽出します。

Syslog は、RFC 3164 および RFC 5424 で定義されているプロトコルをサポートしています。

前提条件

操作手順

以下の手順では、Elastic Compute Service (ECS) インスタンスを例として使用します。

  1. SLS コンソールにログインします。

  2. データのインポート セクションで、カスタムデータプラグイン を選択します。

  3. プロジェクトと Logstore を選択します。次に、[次へ] をクリックします。

  4. マシングループを作成します。

    • 利用可能なマシングループがある場合は、[既存のマシングループを使用] をクリックします。

    • 利用可能なマシングループがない場合は、以下の手順でマシングループを作成します。この例では、ECS インスタンスを使用します。

      1. [ECS インスタンス] タブで、[インスタンスの手動選択] を選択します。次に、使用する ECS インスタンスを選択し、[作成] をクリックします。

        詳細については、「ECS インスタンスに Logtail をインストールする」をご参照ください。

        重要

        お使いのサーバーが SLS とは異なる Alibaba Cloud アカウントに属する ECS インスタンス、データセンター内のサーバー、またはサードパーティのクラウドサービスプロバイダーのサーバーである場合は、サーバーに Logtail を手動でインストールする必要があります。詳細については、「Linux サーバーに Logtail をインストールする」または「Windows サーバーに Logtail をインストールする」をご参照ください。Logtail を手動でインストールした後、サーバーのユーザー識別子を設定する必要があります。詳細については、「ユーザー識別子の設定」をご参照ください。

      2. 設定を確認したら、[OK] をクリックします。

      3. Logtail のインストール後、[インストールを完了] をクリックします。

      4. [マシングループの作成] ステップで、[名前] パラメーターを設定し、[次へ] をクリックします。

        SLS では、IP アドレスベースのマシングループとカスタム識別子ベースのマシングループを作成できます。詳細については、「IP アドレスベースのマシングループの作成」および「カスタム識別子ベースのマシングループの作成」をご参照ください。

  5. マシングループが [適用済みサーバーグループ] セクションに表示されていることを確認し、[次へ] をクリックします。

    重要

    マシングループを作成した直後に適用すると、マシングループのハートビートステータスが [FAIL] になることがあります。この問題は、マシングループが SLS に接続されていないために発生します。この問題を解決するには、[自動再試行] をクリックします。問題が解決しない場合は、「Logtail でハートビート接続が検出されない場合の対処法」をご参照ください。

  6. データソースの設定 タブで、設定名 を設定し、次のスクリプトをコピーして プラグイン設定 フィールドに貼り付け、次へ をクリックします。

    {
         "inputs": [
             {
                 "type": "service_syslog",
                 "detail": {
                     "Address": "tcp://0.0.0.0:9000",
                     "ParseProtocol": "rfc3164"
                 }
             },
             {
                 "type": "service_syslog",
                 "detail": {
                     "Address": "udp://0.0.0.0:9001",
                     "ParseProtocol": "rfc3164"
                 }
             }
         ]
     }

    パラメーター:

    パラメーター

    タイプ

    必須

    説明

    type

    文字列

    はい

    データソースのタイプ。service_syslog に設定します。

    Address

    文字列

    いいえ

    リッスンするエンドポイント。フォーマット:[tcp/udp]://[ip]:[port]。デフォルト:tcp://127.0.0.1:9999 (ローカルサーバーのみ)。

    説明
    • Logtail 構成で指定されたプロトコル、アドレス、ポート番号は、rsyslog 設定ファイルの転送ルールと一致している必要があります。

    • Logtail がインストールされているサーバーにログを受信できる複数の IP アドレスがある場合、アドレスを 0.0.0.0 に設定して、サーバーのすべての IP アドレスでリッスンできます。

    ParseProtocol

    文字列

    いいえ

    解析プロトコル。デフォルト:空 (解析なし)。有効な値:

    • 空:ログは解析されません。

    • rfc3164:RFC 3164 プロトコルを使用してログを解析します。

    • rfc5424:RFC 5424 プロトコルを使用してログを解析します。

    • auto:ログの内容に基づいて適切なプロトコルが自動的に選択されます。

    IgnoreParseFailure

    boolean

    いいえ

    解析が失敗した場合のアクション。デフォルト:true (解析をスキップし、生ログを content フィールドに書き込みます)。解析不可能なログを破棄するには false に設定します。

    AutoConfigRsyslog

    boolean

    いいえ

    rsyslog 転送を自動的に設定するかどうかを指定します。デフォルト:false。true に設定すると、LoongCollector は自動的に /etc/rsyslog.d/ に転送設定ファイルを作成し、rsyslogd を再起動します。LoongCollector 3.3.9 以降が必要です。LoongCollector が root 以外のユーザーとして実行されている場合、この機能は自動的にスキップされ、警告ログが出力されます。通常のログ収集には影響しません。

    RsyslogFilters

    string[]

    いいえ

    収集するログのファシリティとセベリティレベルをフィルタリングするための rsyslog 転送ルールを指定します。標準の rsyslog フィルター構文 (facility.severity) を使用します。デフォルト:*.* (すべてのログ)。例:["auth.warning","authpriv.warning","kern.err","daemon.info"]。AutoConfigRsyslog が true に設定されている場合にのみ有効です。

    重要
    • root 権限が必要 — /etc/rsyslog.d/ への書き込みと rsyslogd の再起動には root 権限が必要です。LoongCollector が root 以外のユーザーとして実行されている場合、この機能は自動的にスキップされ、警告ログが出力されます。通常のログ収集には影響しません。

    • デフォルトで無効 — AutoConfigRsyslog のデフォルトは false であり、既存の動作を変更しません。この機能は、明示的に true に設定された場合にのみ有効になります。

    • 設定の更新 — Address または RsyslogFilters が変更されると、LoongCollector は自動的に rsyslog 転送設定を更新し、rsyslogd を再起動します。新しい設定と既存の設定が同一である場合、不要なサービスの中断を避けるために再起動はスキップされます。

    • 手動設定との関係 — すでに rsyslog 転送を手動で設定している場合は、AutoConfigRsyslog を有効にする前に手動設定を削除して、ログの重複転送を防いでください。

    • 複数の収集設定 — 複数の service_syslog 収集設定で同時に AutoConfigRsyslog を有効にできます。各設定は個別の rsyslog 転送設定ファイルを生成します (ファイル名には configName が含まれます)。これらのファイルは互いに競合しません。

    • rsyslogd のみサポート — 自動設定と再起動は rsyslogd のみでサポートされています。syslog-ng などの他の syslog 転送デーモンはサポートされていません。

    転送設定の詳細

    自動生成される rsyslog 転送設定ファイルは、次の命名規則に従います:10-loongcollector-{configName}.conf

    • 10- プレフィックス — rsyslog ファイルの読み込み順序を制御します。/etc/rsyslog.d/ 内のファイルはアルファベット順に読み込まれます。10- プレフィックスにより、転送ルールがシステムのデフォルトルール (通常は 50-default.conf) の前に読み込まれるため、ローカルルールが適用される前にログが転送されます。転送ルールは、後続のルール (ローカルファイルへの書き込みなど) をブロックしません。

    • {configName} — LoongCollector の収集設定名に対応します。複数の収集設定で同時に自動転送を有効にしても競合は発生しません。

    • ファイル権限 — 0644 (所有者:root、他のユーザーによる読み取り可能) であり、/etc/rsyslog.d/ 配下の既存ファイルと一致します。

    rsyslog の再起動シナリオ

    AutoConfigRsyslog が有効な場合の各シナリオで rsyslogd が再起動されるかどうかを次の表に示します。

    シナリオ

    rsyslog の再起動

    収集設定の初回配信

    はい

    差分のある設定変更 (Address のプロトコル、IP、またはポートの変更、あるいは RsyslogFilters の変更)

    はい

    差分のない設定変更 (内容の変更なし)

    いいえ

    収集設定の削除

    はい

    LoongCollector の終了

    いいえ (転送設定は保持されます。rsyslog はキューを使用してログをバッファリングし、LoongCollector の再起動後に転送が自動的に再開されます)

  7. クエリと分析の設定 タブで、自動インデックスの生成 をクリックします。この時点ではデータは収集されません。次へ をクリックして Logtail 構成を完了します。

  8. Syslog を生成する ECS インスタンスにログインし、rsyslog 転送を設定します。

    1. Syslog が生成されるサーバーで、/etc/rsyslog.conf にある rsyslog 設定ファイルを変更し、ファイルの末尾に転送ルールを追加します。

      ルールを追加すると、rsyslog は Syslog を指定されたアドレスとポートに転送します。

      • Logtail を実行しているのと同じサーバーから Syslog を収集する場合は、転送アドレスを 127.0.0.1 に設定し、Logtail 構成で指定したのと同じポートを使用します。

      • リモートサーバーから Syslog を収集する場合は、転送アドレスを Logtail を実行しているサーバーのパブリック IP アドレスに設定し、Logtail 構成で指定したのと同じポートを使用します。

      たとえば、次のルールはすべてのログを TCP 経由で 127.0.0.1:9000 に転送します。完全な構文については、RSyslog のドキュメントで説明されています。

      *.* @@127.0.0.1:9000
    2. 次のコマンドを実行して rsyslog を再起動し、転送ルールを有効にします。

      sudo service rsyslog restart
  9. 送信先の Logstore で、収集された Syslog データを表示します。クエリと分析のクイックスタート

ログフィールド

フィールド

説明

_hostname_

ログで提供されていない場合、現在のホストのホスト名がデフォルトになります。

_program_

Syslog プロトコルのタグフィールド。

_priority_

Syslog プロトコルの優先度フィールド。

_facility_

Syslog プロトコルのファシリティフィールド。

_severity_

Syslog プロトコルのセベリティフィールド。

_unixtimestamp_

ログのタイムスタンプ。

_content_

ログのコンテンツ。解析が失敗した場合、このフィールドには生ログの完全なコンテンツが含まれます。

_ip_

現在のホストの IP アドレス。

_client_ip_

ログを送信するクライアントの IP アドレス。

その他の例

Nginx ログ

Nginx は、Syslog プロトコルを介したアクセスログの転送をネイティブにサポートしています。Nginx のアクセスログを含むすべてのサーバーデータを Syslog 経由で SLS に一元的に収集するには、Logtail 構成を作成します。

  1. 「Linux Syslog の収集」で説明されているように Logtail 構成を作成します。

    次のコードは、プラグイン設定 スクリプトのサンプルです。

    {
         "inputs": [
             {
                 "type": "service_syslog",
                 "detail": {
                     "Address": "udp://127.0.0.1:9001",
                     "ParseProtocol": "rfc3164"
                 }
             }
         ]
     }
  2. Nginx の転送ルールを追加します。

    1. nginx.conf に転送ルールを追加します。設定構造については、Nginx の公式ドキュメントをご参照ください。

      例:

      server {
          ...
      
          # Add this line.
          access_log syslog:server=127.0.0.1:9001,facility=local7,tag=nginx,severity=info combined;
      
          ...
      }
                                      
    2. 次のコマンドを実行して Nginx サービスを再起動し、設定を有効にします。

      sudo service nginx restart

ファイアウォールログ

ファイアウォールは通常、Syslog プロトコルを介したログの転送をサポートしています。ファイアウォールログを SLS に一元的に収集する (たとえば、SIEM を構築する) には、Logtail 構成を作成します。

  1. 「Linux Syslog の収集」で説明されているように Logtail 構成を作成します。

    次のコードは、プラグイン設定 スクリプトのサンプルです。

    {
         "inputs": [
             {
                 "type": "service_syslog",
                 "detail": {
                     "Address": "udp://0.0.0.0:9001",
                     "ParseProtocol": "rfc3164"
                 }
             }
         ]
     }
  2. お使いのファイアウォールのドキュメントに従って転送ルールを追加します。この例では、Logtail サーバーの IP は 10.20.30.40 です。image

トラブルシューティング

Logtail の設定後にデータが表示されない場合は、logger コマンドを実行してテストデータをローカルの Logtail インスタンスに送信します。これにより、問題がデータソース、ネットワーク、または Logtail のいずれにあるかを切り分けることができます。

ローカルの Logtail インスタンスがデータを受信した場合、問題はデータソースまたはネットワークにある可能性が高いです。

logger -n localhost -P 9000 -T "This is a TCP syslog message"
logger -n localhost -P 9001 -d "This is a UDP syslog message"

Logtail によるログ収集の失敗をトラブルシューティングする。