2016-10-21 76 views
0

目前
我以一個日誌文件完成上述任務,並在elasticsearch通過與logstash數據到一個指標:按日期創建elasticsearch一個新的指數爲每個日誌文件

yellow open logstash-2016.10.19 5 1 1000807 0 364.8mb 364.8mb

我真正想要做的

,如果我有這是根據年,月,日

命名以下日誌文​​件
MyLog-2016-10-16.log 
MyLog-2016-10-17.log 
MyLog-2016-10-18.log 
MyLog-2016-11-05.log 
MyLog-2016-11-02.log 
MyLog-2016-11-03.log 

我想告訴logstash按年,月,日,以閱讀和創建以下指標:

yellow open MyLog-2016-10-16.log
yellow open MyLog-2016-10-17.log
yellow open MyLog-2016-10-18.log
yellow open MyLog-2016-11-05.log
yellow open MyLog-2016-11-02.log
yellow open MyLog-2016-11-03.log

請問我可以得到一些指導,我該如何去做這件事?

感謝您

+0

你如何閱讀文件? – baudsp

+0

如果您使用的是文件輸入,請參閱http://stackoverflow.com/questions/22916200/logstash-how-to-add-file-name-as-a-field – baudsp

回答

0

這也是這麼簡單:

output { 
    elasticsearch { 
     hosts => ["localhost:9200"] 
     index => "MyLog-%{+YYYY-MM-DD}.log" 
    } 
} 
+0

感謝@Renaud,這似乎是訣竅。 – adz

0

如果文件中的行包含日期時間信息,你應該使用日期{}過濾器從該值設置@timestamp 。如果你這樣做,你可以使用@Renaud提供的輸出格式「MyLog - %{+ YYYY.MM.dd}」。

如果行不包含日期時間信息,則可以使用輸入路徑作爲索引名稱,例如, 「%{路徑}」。要獲得路徑的基本名稱:

mutate { 
    gsub => [ "path", ".*/", "" ] 
} 
0

不會在輸出節中配置此配置足以達到您的目的?

output { 
    elasticsearch { 
     embedded => false 
     host => localhost 
     port => 9200 
     protocol => http 
     cluster => 'elasticsearch' 
     index => "syslog-%{+YYYY.MM.dd}" 
    } 
} 
相關問題