其餘版本,請參閱版本化的插件文檔。html
有關插件的問題,請在討論論壇中打開一個主題,對於bug或特性請求,在Github中打開一個issue,關於Elastic支持的插件列表,請考慮Elastic支持矩陣。git
date過濾器用於解析字段中的日期,而後使用該日期或時間戳做爲事件的logstash時間戳。github
例如,syslog事件一般有這樣的時間戳:segmentfault
"Apr 17 09:32:01"
你應該使用MMM dd HH:mm:ss
的日期格式來解析這個。數組
日期過濾器對於事件的排序和對舊數據的回填特別重要,若是在你的事件中沒有獲得正確的日期,那麼之後搜索它們可能會出現順序不對。ide
若是沒有這個過濾器,logstash將根據第一次看到事件(在輸入時)的時間(若是時間戳尚未在事件中設置)選擇一個時間戳,例如,對於文件輸入,時間戳被設置爲每次讀取的時間。ui
這個插件支持如下配置選項以及後面描述的通用選項。編碼
設置 | 輸入類型 | 要求 |
---|---|---|
locale |
string | No |
match |
array | No |
tag_on_failure |
array | No |
target |
string | No |
timezone |
string | No |
還能夠查看全部過濾器插件支持的選項列表的通用選項。.net
locale
插件
en
,en-US
表明BCP47,en_US
表明POSIX。MMM
的模式)和工做日名稱(帶有EEE
的模式),一般須要設置語言環境。match
[]
[ field, formats... ]
若是你的時間字段有多種可能的格式,你能夠這樣作:
match => [ "logdate", "MMM dd yyyy HH:mm:ss", "MMM d yyyy HH:mm:ss", "ISO8601" ]
iso8601
時間戳。有一些特殊的例外,下面的格式文字能夠幫助你節省時間並確保數據解析的正確性。
ISO8601
- 能夠解析任何有效的ISO8601時間戳,像:2011-04-19T03:44:01.103Z
UNIX
- 解析float或int值表示自紀元以來的unix時間(如1326149001秒),132和1326149001同樣。UNIX_MS
- 解析int值表示自紀元以來的unix時間(如1366125117000毫秒)TAI64N
- 會解析tai64n時間值例如,若是你有一個字段logdate
,其值相似於Aug 13 2010 00:03:44
,那麼你將使用這個配置:
filter { date { match => [ "logdate", "MMM dd yyyy HH:mm:ss" ] } }
[foo][bar]
匹配其值,有關更多信息,請參閱字段參考資料 y 年
2015
。15
表明2015
年。M 一年中的月份
1
爲1月,12
爲12月。01
爲1月,12
爲12月。Jan
爲1月,注意:使用的語言取決於你的語言環境,查看locale
設置如何更改語言。January
,注意:使用的語言取決於你的語言環境。d 一月中的天
1
爲一個月的第一天。01
爲一個月的第一天。H 一天中的小時(24小時時鐘)
0
爲午夜。00
爲午夜。m 一小時中的分鐘(每小時60分鐘)
0
。00
。s 一分鐘中的秒(每分鐘60秒)
0
。00
。S 每秒最大精度的分數爲毫秒(SSS
),超過這個,追加零
0
表示亞秒值012
。01
爲亞秒值01
。012
爲亞秒值012。Z 時區偏移或標識
-0700
。-07:00
。America/Los_Angeles
,注意:有效的id列在Joda.org可用時區頁面上。w 一年中的周
1
。01
。E 一週中的星期(文本)
Mon
,Tue
,Wed
,Thu
,Fri
,Sat
,Sun
,注意:它的實際語言取決於你的語言環境。Monday
,Tuesday
,...,注意:它的實際語言取決於你的語言環境。tag_on_failure
["_dateparsefailure"]
tags
字段target
"@timestamp"
@timestamp
字段。timezone
America/Los_Angeles
或Europe/Paris
是有效的id。該字段能夠是動態的,並使用%{field}
語法包含事件的一部分。全部過濾器插件都支持如下配置選項:
設置 | 輸入類型 | 要求 |
---|---|---|
add_field |
hash | No |
add_tag |
array | No |
enable_metric |
boolean | No |
id |
string | No |
periodic_flush |
boolean | No |
remove_field |
array | No |
remove_tag |
array | No |
add_field
{}
%{field}
包含事件的一部分。例如:
filter { date { add_field => { "foo_%{somefield}" => "Hello world, from %{host}" } } }
# You can also add multiple fields at once: filter { date { add_field => { "foo_%{somefield}" => "Hello world, from %{host}" "new_field" => "new_static_value" } } }
「somefield」==「hello」
,那麼在成功時,這個過濾器將添加字段foo_hello
(若是存在的話),上面的值和%{host}
塊將被事件中的值替換,第二個示例還將添加硬編碼字段。add_tag
[]
%{field}
語法包含事件的一部分。例如:
filter { date { add_tag => [ "foo_%{somefield}" ] } }
# You can also add multiple tags at once: filter { date { add_tag => [ "foo_%{somefield}", "taggedy_tag"] } }
「somefield」==「hello」
,這個過濾器在成功時,會添加一個標籤foo_hello
(第二個例子固然會添加一個taggedy_tag
標籤)。enable_metric
true
id
在插件配置中添加惟一的ID
,若是沒有指定ID,則Logstash將生成一個,強烈建議在配置中設置此ID,當你有兩個或多個相同類型的插件時,這一點特別有用。例如,若是你有兩個電子郵件輸出,在本例中添加一個命名ID將有助於在使用監控API時監控Logstash。
filter { date { id => "ABC" } }
periodic_flush
false
remove_field
[]
若是此過濾器成功,則今後事件中刪除任意字段,例如:
filter { date { remove_field => [ "foo_%{somefield}" ] } }
# You can also remove multiple fields at once: filter { date { remove_field => [ "foo_%{somefield}", "my_extraneous_field" ] } }
「somefield」==「hello」
,那麼在成功時,若是存在名爲foo_hello
的字段,這個過濾器將刪除該字段,第二個示例將刪除一個額外的非動態字段。remove_tag
[]
%{field}
語法包含事件的一部分。例如:
filter { date { remove_tag => [ "foo_%{somefield}" ] } }
# You can also remove multiple tags at once: filter { date { remove_tag => [ "foo_%{somefield}", "sad_unwanted_tag"] } }
「somefield」==「hello」
,這個過濾器在成功時,會刪除標籤foo_hello
若是它存在,第二個示例還將刪除一個sad、unwanted的標記。