このトピックでは、ログの収集と処理のためのLogstash設定を作成する方法について説明します。

プラグイン

  • logstash-input-fileプラグイン

    logstash-input-file部品は, tailコマンドでログを収集します。 詳細については、「logstash-input-file」をご参照ください。

  • logstash-output-logserviceプラグイン

    logstash-output-logserviceプラグインは、収集されたログを処理し、ログをLog Serviceにアップロードします。

手順

  1. C:\logstash-2.2.2-win\conf\ ディレクトリに設定ファイルを作成します。

    logstash-2.2.2-winを実際のLogstashバージョンに置き換えます。 ログの種類ごとに設定ファイルを作成できます。 ファイル名は *.conf形式です。

  2. ログの収集と処理のための設定を作成します。

    ビジネス要件に基づいてログ収集と処理のための次の設定を作成し、設定ファイルに設定を追加します。 ログ収集の設定は、inputパラメーターで指定します。 詳細については、「Logstashドキュメント」をご参照ください。 ログ処理の設定は、outputパラメーターで指定します。

    説明
    • 構成ファイルは、バイト順序マーク (BOM) なしのUTF-8でエンコードする必要があります。 テキストエディターを使用して、ファイルのエンコード形式を変更できます。
    • pathパラメーターは、構成ファイルへのパスを指定します。 このパラメーターを設定する場合は、UNIX形式の区切り文字を使用する必要があります。 例: C:/test/multiline/*.log そうしないと、ファジー一致はサポートされません。
    • 構成ファイルのtypeパラメーターの値は同じである必要があります。 サーバーに対して複数のLogstash設定ファイルが作成されている場合、ファイル内のtypeパラメーターの値は同じである必要があります。
    input {
      file {
        type => "iis_log_1"
        path => ["C:/inetpub/logs/LogFiles/W3SVC1/*.log"]
        start_position => "beginning"
      }
    }
    filter {
      if [type] == "iis_log_1" {
      #ignore log comments
      if [message] =~ "^#" {
        drop {}
      }
      grok {
        # check that fields match your IIS log settings
        match => ["message", "%{TIMESTAMP_ISO8601:log_timestamp} %{IPORHOST:site} %{WORD:method} %{URIPATH:page} %{NOTSPACE:querystring} %{NUMBER:port} %{NOTSPACE:username} %{IPORHOST:clienthost} %{NOTSPACE:useragent} %{NUMBER:response} %{NUMBER:subresponse} %{NUMBER:scstatus} %{NUMBER:time_taken}"]
      }
        date {
        match => [ "log_timestamp", "YYYY-MM-dd HH:mm:ss" ]
          timezone => "Etc/UTC"
      }    
      useragent {
        source=> "useragent"
        prefix=> "browser"
      }
      mutate {
        remove_field => [ "log_timestamp"]
      }
      }
    }
    output {
      if [type] == "iis_log_1" {
      logservice {
            codec => "json"
            endpoint => "***"
            project => "***"
            logstore => "***"
            topic => ""
            source => ""
            access_key_id => "***"
            access_key_secret => "***"
            to_json => true
            max_send_retry => 10
            max_buffer_items => 4000
            max_buffer_bytes => 2097152
            max_buffer_seconds => 3
        }
        }
    }
    表 1. ログ処理設定のパラメータ
    項目必須/任意説明 
    endpointLog Serviceエンドポイント。
    projectLog Service プロジェクトの名前。
    logstoreLog Service Logstore の名前。
    topicログのトピック。
    sourceログのソース。 カスタムソースを指定できます。
    access_key_idAlibaba CloudアカウントのAccessKey ID。 詳細については、「AccessKey ペア」をご参照ください。
    access_key_secretThe AccessKey secret of your Alibaba Cloud account. 詳細については、「AccessKey ペア」をご参照ください。
    to_jsonいいえログをJSON形式で解析するかどうかを指定します。 有効な値:
    • true: ログをJSON形式で解析します。 デフォルト値です。

      ログが文字列型の場合、ログは二重引用符 ("") で囲まれます。

    • false: ログを文字列形式で解析します。

      ログがJSON形式の場合、ログはエスケープされます。

    max_send_retryパケットのLog Serviceへの送信に失敗した場合に実行できる再試行の最大数。 再試行後に送信に失敗したパケットはドロップされます。 リトライ間隔は200ミリ秒です。
    max_buffer_itemsいいえパケットにキャッシュされているログの数。

    このパラメーターを設定しない場合、4,000ログはデフォルトでパケットにキャッシュされます。

    max_buffer_bytesいいえパケットにキャッシュされるログのサイズ。 最大値: 10485760。 単位:バイト

    このパラメーターを設定しない場合、デフォルトで2,097,152バイトのログがパケットにキャッシュされます。

    max_buffer_secondsいいえログがキャッシュされる最大期間。 単位:秒。

    このパラメーターを設定しない場合、ログはデフォルトで最大3秒間キャッシュされます。

  3. Logstashを再起動します。
    詳細については、「サービスの起動」をご参照ください。

次のタスク

PowerShellを使用して、logstash.batプロセスを起動します。 logstash.batプロセスはフロントグラウンドで実行されます。 ほとんどの場合、logstash.batプロセスは、ログ収集をテストおよびデバッグするために実行されます。 デバッグ後、LogstashをWindowsサービスとして構成することを推奨します。 Logstashはバックグラウンドと起動時に実行できます。 詳細については、「Logstash を Windows サービスに登録」をご参照ください。