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 フィールドは統一させます。統一されていない場合、データは正しく処理されません。
- Logstash を再起動して設定を適用
confディレクトリに構成ファイルを作成し、Logstash を再起動してファイルを適用します。詳細については、「Logstash を Windows サービスに登録」をご参照ください。