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

Simple Log Service:syslogの収集

最終更新日:Aug 21, 2024

このトピックでは、Simple Log ServiceコンソールでLogtail設定を作成してsyslogを収集する方法について説明します。

前提条件

Logtail V0.16.13以降はLinuxサーバーにインストールされ、Logtail V1.0.0.8以降はWindowsサーバーにインストールされます。 詳細については、「LinuxサーバーにLogtailをインストールする」または「WindowsサーバーにLogtailをインストールする」をご参照ください。

概要

Linuxサーバーでは、rsyslogなどのsyslogエージェントを使用して、指定されたIPアドレスとポートを使用してオンプレミスのsyslogをサーバーに転送できます。 指定されたサーバーにLogtail設定を適用すると、LogtailはTCPまたはUDP経由で転送されたsyslogを受信します。 Logtailは、指定されたsyslogプロトコルに基づいてsyslogを解析し、syslogからファシリティ、タグ (プログラム) 、重大度、およびコンテンツフィールドを抽出します。 RFC 3164およびRFC 5424で定義されているsyslogプロトコルがサポートされています。

実装

Logtailは特定のIPアドレスとポートをリッスンし、syslogデータを受信します。实现原理

手順

  1. にログインします。Simple Log Serviceコンソール.

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

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

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

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

    • 使用可能なマシングループがない場合は、次の手順を実行してマシングループを作成します。 この例では、Elastic Compute Service (ECS) インスタンスが使用されています。

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

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

        重要

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

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

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

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

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

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

    重要

    マシングループを作成した直後にマシングループを適用すると、マシングループのハートビートステータスがFAILになる可能性があります。 この問題は、マシングループがSimple Log Serviceに接続されていないために発生します。 この問題を解決するには、[自動再試行] をクリックします。 問題が解決しない場合は、Logtailでハートビート接続が検出されない場合はどうすればよいですか?

  6. [データソースの指定] ステップで、[設定名] および [プラグイン設定] パラメーターを設定します。 [次へ] をクリックします。

    次の例は、UDPおよびTCPで127.0.0.1をリッスンするようにLogtailを設定する方法を示しています。

    {
         "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"
                 }
             }
         ]
     }

    パラメーター

    データ型

    必須

    説明

    タイプ

    String

    課金されます

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

    アドレス

    String

    課金されません

    Logtailがリッスンするリスニングプロトコル、アドレス、およびポート。 Logtailは、Logtail設定に基づいてデータをリッスンし、取得します。 パラメーターの値は、[tcp/udp]://[ ip ]:[ port] 形式です。 デフォルト値: tcp:// 127.0.0.1:9999 この値は、Logtailがオンプレミスサーバーから転送されたログのみを受信することを示します。

    説明
    • 指定するリスニングプロトコル、IPアドレス、およびポートは、rsyslogの構成ファイルに追加された転送ルールで指定されたものと同じである必要があります。

    • Logtailサーバーが複数のIPアドレスを使用してデータを受信する場合は、Addressパラメーターを0.0.0.0に設定します。 この値は、LogtailがサーバーのすべてのIPアドレスをリッスンすることを示します。

    ParseProtocol

    String

    課金されません

    Logtailがsyslogの解析に使用するプロトコル。 デフォルトでは、このパラメーターは空です。これは、syslogが解析されないことを示します。 有効な値:

    • Empty: Logtailはsyslogを解析しません。

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

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

    • auto: Logtailは、syslogの内容に基づいてプロトコルを自動的に選択します。

    IgnoreParseFailure

    Boolean

    課金されません

    syslogの解析が失敗した後に、syslogに対して操作を実行するかどうかを指定します。 デフォルト値: true。 この値は、システムがsyslogを解析せず、syslogをcontentフィールドに追加することを示します。 値をfalseに設定すると、解析に失敗した後、syslogは破棄されます。

  7. データをプレビューし、インデックスを設定し、[次へ] をクリックします。

    デフォルトでは、Log Serviceでフルテキストインデックスが有効になっています。 手動モードまたは自動モードで収集したログに基づいてフィールドインデックスを設定することもできます。 自動モードでフィールドインデックスを設定するには、[自動インデックス生成] をクリックします。 これにより、Log Serviceは自動的にフィールドインデックスを作成します。 詳細については、「インデックスの作成」をご参照ください。

    重要

    ログをクエリおよび分析する場合は、フルテキストインデックス作成またはフィールドインデックス作成を有効にする必要があります。 フルテキストインデックスとフィールドインデックスの両方を有効にすると、フィールドインデックスのみが使用されます。

  8. [ログクエリ] をクリックします。 Logstoreのクエリと分析ページにリダイレクトされます。

    インデックスが有効になるまで約1分待つ必要があります。 次に、収集したログを [生ログ] タブで表示できます。 詳細については、「ログの照会と分析」をご参照ください。

トラブルシューティング

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を使用してログを収集するときにエラーが発生した場合はどうすればよいですか?

サンプルログ

次の図は、syslogのサンプルを示しています。

Logtail配置生效

項目

説明

_hostname_

ホスト名。 ログにホスト名が含まれていない場合、現在のホストのホスト名が取得されます。

_program_

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

_priority_

syslogプロトコルの優先順位フィールド。

_facility_

syslogプロトコルのfacilityフィールド。

_重大度_

syslogプロトコルの重大度フィールド。

_unixtimestamp_

ログのタイムスタンプ。

_content_

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

_ip_

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

_client_ip_

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

rsyslogを使用してsyslogをSimple Log Serviceに転送する

  1. rsyslogの転送ルールを追加します。

    1. syslogを収集するサーバー上のrsyslogの /etc/rsyslog.conf設定ファイルを変更します。 設定ファイルの末尾に転送ルールを追加します。

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

      • Logtailがsyslogサーバーに存在する場合、IPアドレス127.0.0.1と、転送ルールで使用されていない既知でないポートを指定する必要があります。

      • Logtailがsyslogサーバーとは別のサーバーに存在する場合、転送ルールでは、別のサーバーのパブリックIPアドレスと、既知でないアイドルポートを指定する必要があります。

      次の例は、すべてのsyslogをTCP経由で127.0.0.1:9000に転送できる転送ルールを示しています。 設定ファイルの詳細については、「RSyslogドキュメント」をご参照ください。

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

      sudo service rsyslog restart
  2. Logtail設定を作成します。 詳細については、「手順」をご参照ください。

    次のコードは、Logtail設定を示しています。

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

NGINXログの収集

NGINXサーバーを使用すると、syslogプロトコルを使用して、指定したIPアドレスとポートにアクセスログを転送できます。 サーバーのすべてのデータをsyslogとしてSimple Log Serviceに配信する場合は、Logtail設定を作成してデータを収集できます。 データにはNGINXアクセスログが含まれます。

  1. NGINXの転送ルールを追加します。

    1. nginxサーバー上のNGINX. conf設定ファイルに転送ルールを追加します。 詳細については、「NGINX初心者向けガイド」をご参照ください。

      次のサンプルコードは、転送ルールの例を示しています。

      http {
          ...
      
          # Add this line.
          access_log syslog:server=127.0.0.1:9000,facility=local7,tag=nginx,severity=info combined;
      
          ...
      }
                                      
    2. 次のコマンドを実行してNGINXサービスを再起動し、転送ルールを検証します。

      sudo service nginx restart
  2. Logtail設定を作成します。 詳細については、「手順」をご参照ください。

    次のコードは、Logtail設定を示しています。

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

ファイアウォールログの収集

ほとんどの場合、ファイアウォールでは、syslogプロトコルを使用して、アクセスログを指定されたIPアドレスとポートに転送できます。 ファイアウォールのログをsyslogとしてSimple Log Serviceに配信してセキュリティ情報およびイベント管理 (SIEM) ソリューションを構築する場合は、Logtail設定を作成してデータを収集できます。

  1. ファイアウォールマニュアルに基づいて、ファイアウォールの転送ルールを追加します。

    この例では、LogtailがインストールされているサーバーのIPアドレスは10.20.30.40です。image.png

  2. Logtail設定を作成します。 詳細については、「手順」をご参照ください。

    次のコードは、Logtail設定を示しています。

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