Logstash を使用してログを収集する前に、ログフィールドが解析されるよう、構成ファイルを修正する必要があります。

ログのアップロード時間をシステム時間に

  • ログサンプル
    2016-02-25 15:37:01 [main] INFO com.aliyun.sls.test_log4j - single line log
    2016-02-25 15:37:11 [main] ERROR com.aliyun.sls.test_log4j - catch exception !
     java.lang.ArithmeticException: / by zero
        at com.aliyun.sls.test_log4j.divide(test_log4j.java:23) ~[bin/:?]
        at com.aliyun.sls.test_log4j.main(test_log4j.java:13) [bin/:?]
    2016-02-25 15:38:02 [main] INFO com.aliyun.sls.test_log4j - normal log
  • ログ収集の設定
    input {
      file {
        type => "common_log_1"
        path => ["C:/test/multiline/*.log"]
        start_position => "beginning"
        codec => multiline {
          pattern => "^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}"
          negate => true
          auto_flush_interval => 3
          what => previous
        }
      }
    }
    output {
      if [type] == "common_log_1" {
      logservice {
            codec => "json"
            endpoint => "***"
            project => "***"
            logstore => "***"
            topic => ""
            source => ""
            access_key_id => "***"
            access_key_secret => "***"
            max_send_retry => 10
        }
        }
    }
    • 構成ファイルは、BOM なしの UTF-8 でエンコードする必要があります。Notepad++ をダウンロードして、ファイルのエンコード形式を変更します。
    • pathにはファイルパスを指定します。C:/test/multiline/*.logのように Unix 形式のファイル区切り文字を使用します。Unix 形式以外のファイル区切り文字を使用すると、ファジー一致を使用できません。
    • typeフィールドは統一させ、ファイル全体で一貫性が保たれている必要があります。また、マシンに Logstash 構成ファイルが複数ある場合、各構成ファイルの type フィールドは統一させます。統一されていない場合、データは正しく処理されません。
    関連プラグイン: fileおよびmultiline (ログファイルが 1 行のみの場合、codec => multiline 設定を削除してください)
  • Logstash を再起動して設定を適用

    confディレクトリに構成ファイルを作成し、Logstash を再起動してファイルを適用します。詳細については、「Logstash を Windows サービスに登録」をご参照ください。