一 官網說明
過濾器插件對事件執行中介處理。通常根據事件的特征有條件地應用過濾器。
以下過濾器插件在下面可用。
Plugin |
Description |
Github repository |
aggregate |
Aggregates information from several events originating with a single task |
logstash-filter-aggregate |
alter |
Performs general alterations to fields that the |
logstash-filter-alter |
bytes |
Parses string representations of computer storage sizes, such as "123 MB" or "5.6gb", into their numeric value in bytes |
logstash-filter-bytes |
cidr |
Checks IP addresses against a list of network blocks |
logstash-filter-cidr |
cipher |
Applies or removes a cipher to an event |
logstash-filter-cipher |
clone |
Duplicates events |
logstash-filter-clone |
csv |
Parses comma-separated value data into individual fields |
logstash-filter-csv |
date |
Parses dates from fields to use as the Logstash timestamp for an event |
logstash-filter-date |
de_dot |
Computationally expensive filter that removes dots from a field name |
logstash-filter-de_dot |
dissect |
Extracts unstructured event data into fields using delimiters |
logstash-filter-dissect |
dns |
Performs a standard or reverse DNS lookup |
logstash-filter-dns |
drop |
Drops all events |
logstash-filter-drop |
elapsed |
Calculates the elapsed time between a pair of events |
logstash-filter-elapsed |
elasticsearch |
Copies fields from previous log events in Elasticsearch to current events |
logstash-filter-elasticsearch |
environment |
Stores environment variables as metadata sub-fields |
logstash-filter-environment |
extractnumbers |
Extracts numbers from a string |
logstash-filter-extractnumbers |
fingerprint |
Fingerprints fields by replacing values with a consistent hash |
logstash-filter-fingerprint |
geoip |
Adds geographical information about an IP address |
logstash-filter-geoip |
grok |
Parses unstructured event data into fields |
logstash-filter-grok |
http |
Provides integration with external web services/REST APIs |
logstash-filter-http |
i18n |
Removes special characters from a field |
logstash-filter-i18n |
java_uuid |
Generates a UUID and adds it to each processed event |
core plugin |
jdbc_static |
Enriches events with data pre-loaded from a remote database |
logstash-filter-jdbc_static |
jdbc_streaming |
Enrich events with your database data |
logstash-filter-jdbc_streaming |
json |
Parses JSON events |
logstash-filter-json |
json_encode |
Serializes a field to JSON |
logstash-filter-json_encode |
kv |
Parses key-value pairs |
logstash-filter-kv |
memcached |
Provides integration with external data in Memcached |
logstash-filter-memcached |
metricize |
Takes complex events containing a number of metrics and splits these up into multiple events, each holding a single metric |
logstash-filter-metricize |
metrics |
Aggregates metrics |
logstash-filter-metrics |
mutate |
Performs mutations on fields |
logstash-filter-mutate |
prune |
Prunes event data based on a list of fields to blacklist or whitelist |
logstash-filter-prune |
range |
Checks that specified fields stay within given size or length limits |
logstash-filter-range |
ruby |
Executes arbitrary Ruby code |
logstash-filter-ruby |
sleep |
Sleeps for a specified time span |
logstash-filter-sleep |
split |
Splits multi-line messages into distinct events |
logstash-filter-split |
syslog_pri |
Parses the |
logstash-filter-syslog_pri |
threats_classifier |
Enriches security logs with information about the attacker’s intent |
logstash-filter-threats_classifier |
throttle |
Throttles the number of events |
logstash-filter-throttle |
tld |
Replaces the contents of the default message field with whatever you specify in the configuration |
logstash-filter-tld |
translate |
Replaces field contents based on a hash or YAML file |
logstash-filter-translate |
truncate |
Truncates fields longer than a given length |
logstash-filter-truncate |
urldecode |
Decodes URL-encoded fields |
logstash-filter-urldecode |
useragent |
Parses user agent strings into fields |
logstash-filter-useragent |
uuid |
Adds a UUID to events |
logstash-filter-uuid |
xml |
Parses XML into fields |
logstash-filter-xml |
二 介紹幾個查用的插件
grok正則捕獲
示例:
input { file { path => "/var/log/http.log" } } filter { grok { match => { "message" => "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}" } } }
Grok過濾器配置選項
該插件支持以下配置選項以及稍后介紹的“ 通用選項”。
設置 | 輸入類型 | 需要 |
---|---|---|
|
布爾值 |
沒有 |
|
布爾值 |
沒有 |
|
Hash |
沒有 |
|
布爾值 |
沒有 |
|
數組 |
沒有 |
|
Hash |
沒有 |
|
數組 |
沒有 |
|
串 |
沒有 |
|
數組 |
沒有 |
|
串 |
沒有 |
|
數 |
沒有 |
break_on_match
- 值類型為布爾值
- 默認值為
true
在第一個比賽上休息。grok的首次成功匹配將導致過濾器完成。如果您想讓grok嘗試所有模式(也許您正在解析不同的內容),請將其設置為false。
keep_empty_captures
- 值類型為布爾值
- 默認值為
false
如果為true
,則將空捕獲保留為事件字段。
match
- 值類型為哈希
- 默認值為
{}
一個散列,它定義了查找位置和模式的映射。
例如,以下內容將匹配message
給定模式的字段中的現有值,如果找到匹配項,則將字段duration
與捕獲的值添加到事件中:
filter { grok { match => { "message" => "Duration: %{NUMBER:duration}" } } }
如果您需要針對一個字段匹配多個模式,則該值可以是模式數組:
filter { grok { match => { "message" => [ "Duration: %{NUMBER:duration}", "Speed: %{NUMBER:speed}" ] } } }
named_captures_only
- 值類型為布爾值
- 默認值為
true
如果為true
,則僅存儲來自grok的命名捕獲。
overwrite
- 值類型為數組
- 默認值為
[]
要覆蓋的字段。
這使您可以覆蓋已經存在的字段中的值。
例如,如果message
字段中有syslog行,則可以message
用部分匹配項覆蓋該字段,如下所示:
filter { grok { match => { "message" => "%{SYSLOGBASE} %{DATA:message}" } overwrite => [ "message" ] } }
在這種情況下,May 29 16:37:11 sadness logger: hello world
將解析諸如這樣的行hello world
並將覆蓋原始消息。
pattern_definitions
- 值類型為哈希
- 默認值為
{}
模式名稱和模式元組的散列,定義了當前過濾器要使用的自定義模式。與現有名稱匹配的模式將覆蓋先前的定義。認為這是僅適用於grok定義的內聯模式
patterns_dir
- 值類型為數組
- 默認值為
[]
Logstash默認附帶了許多模式,因此除非添加其他模式,否則不必自己定義。您可以使用此設置指向多個病毒碼目錄。請注意,Grok將讀取目錄中與patterns_files_glob相匹配的所有文件,並假定它是特征碼文件(包括所有波浪號備份文件)。
patterns_dir => ["/opt/logstash/patterns", "/opt/logstash/extra_patterns"]
模式文件是純文本,格式為:
名稱模式
例如:
NUMBER \ d +
創建管道時將加載模式。
patterns_files_glob
- 值類型為字符串
- 默認值為
"*"
Glob模式,用於在patterns_dir指定的目錄中選擇模式文件
tag_on_failure
- 值類型為數組
- 默認值為
["_grokparsefailure"]
tags
沒有成功匹配時將值追加到字段
tag_on_timeout
- 值類型為字符串
- 默認值為
"_groktimeout"
如果grok regexp超時,則應用標簽。
timeout_millis
- 值類型是數字
- 默認值為
30000
在這段時間之后嘗試終止正則表達式。如果應用了多個模式,則對每個模式都適用。這永遠不會過早超時,但可能需要更長的時間才能超時。實際超時是基於250ms量化的近似值。設置為0以禁用超時
常用選項
所有過濾器插件均支持以下配置選項:
設置 | 輸入類型 | 需要 |
---|---|---|
|
雜湊 |
沒有 |
|
數組 |
沒有 |
|
布爾值 |
沒有 |
|
串 |
沒有 |
|
布爾值 |
沒有 |
|
數組 |
沒有 |
|
數組 |
沒有 |
add_field
- 值類型為哈希
- 默認值為
{}
如果此篩選器成功,則將任何任意字段添加到此事件。字段名稱可以是動態的,並且可以使用包含事件的一部分%{field}
。
例:
filter { grok { add_field => { "foo_%{somefield}" => "Hello world, from %{host}" } } }
# You can also add multiple fields at once: filter { grok { add_field => { "foo_%{somefield}" => "Hello world, from %{host}" "new_field" => "new_static_value" } } }
如果事件具有字段,則"somefield" == "hello"
此過濾器成功后將添加字段(foo_hello
如果存在),並使用上面的值,並將%{host}
片段替換為事件中的值。第二個示例還將添加一個硬編碼字段。
add_tag
- 值類型為數組
- 默認值為
[]
如果此過濾器成功,則將任意標簽添加到事件中。標簽可以是動態的,並可以使用%{field}
語法包括事件的一部分。
例:
filter { grok { add_tag => [ "foo_%{somefield}" ] } }
# You can also add multiple tags at once: filter { grok { add_tag => [ "foo_%{somefield}", "taggedy_tag"] } }
如果事件具有字段,則"somefield" == "hello"
此過濾器成功后將添加標簽foo_hello
(第二個示例當然會添加taggedy_tag
標簽)。
enable_metric
- 值類型為布爾值
- 默認值為
true
默認情況下,為此特定插件實例禁用或啟用度量標准日志記錄,我們會記錄所有可以度量的數據,但是您可以禁用特定插件的度量標准收集。
id
- 值類型為字符串
- 此設置沒有默認值。
ID
向插件配置添加唯一。如果未指定ID,Logstash將生成一個。強烈建議在您的配置中設置此ID。當您有兩個或多個相同類型的插件時(例如,如果您有2個grok過濾器),這特別有用。在這種情況下,添加命名ID將有助於在使用監視API時監視Logstash。
filter { grok { id => "ABC" } }
periodic_flush
- 值類型為布爾值
- 默認值為
false
定期調用filter flush方法。可選的。
remove_field
- 值類型為數組
- 默認值為
[]
如果此篩選器成功,請從此事件中刪除任意字段。字段名稱可以是動態的,並且可以使用%{field}示例來包含事件的一部分:
filter { grok { remove_field => [ "foo_%{somefield}" ] } }
# You can also remove multiple fields at once: filter { grok { remove_field => [ "foo_%{somefield}", "my_extraneous_field" ] } }
如果事件具有字段,則"somefield" == "hello"
此過濾器成功后將刪除具有名稱的字段(foo_hello
如果存在)。第二個示例將刪除一個附加的非動態字段。
remove_tag
- 值類型為數組
- 默認值為
[]
如果此過濾器成功,則從事件中刪除任意標簽。標簽可以是動態的,並可以使用%{field}
語法包括事件的一部分。
例:
filter { grok { remove_tag => [ "foo_%{somefield}" ] } }
# You can also remove multiple tags at once: filter { grok { remove_tag => [ "foo_%{somefield}", "sad_unwanted_tag"] } }
Date插件
日期過濾器配置選項
該插件支持以下配置選項以及稍后介紹的“ 通用選項”。
設置 | 輸入類型 | 需要 |
---|---|---|
|
串 |
沒有 |
|
數組 |
沒有 |
|
數組 |
沒有 |
|
串 |
沒有 |
|
串 |
沒有 |
locale
- 值類型為字符串
- 此設置沒有默認值。
使用IETF-BCP47或POSIX語言標簽指定用於日期解析的語言環境。簡單的例子是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” ]
上面的代碼將匹配系統日志(rfc3164)或iso8601
時間戳。
有一些特殊的例外。存在以下格式文字,以幫助您節省時間並確保日期解析的正確性。
ISO8601
-應該解析任何有效的ISO8601時間戳,例如2011-04-19T03:44:01.103Z
UNIX
-將解析自epoch以來的以秒為單位的unix時間的float或int值,如1326149001.132和1326149001UNIX_MS
-將解析自epoch以來以毫秒為單位的表示unix時間的int值,如1366125117000TAI64N
-將解析tai64n時間值
例如,如果您有一個field logdate
,其值看起來像 Aug 13 2010 00:03:44
,則可以使用以下配置:
filter { date { match => [ "logdate", "MMM dd yyyy HH:mm:ss" ] } }
如果字段嵌套在結構中,則可以使用嵌套語法[foo][bar]
來匹配其值。有關更多信息,請參考 字段參考
有關語法的更多詳細信息
用於解析日期和時間文本的語法使用字母表示時間值的類型(月,分鍾等),重復使用字母表示該值的形式(2位數字的月份,全月的名稱等) 。
這是您可以用來解析日期和時間的內容:
ÿ |
年
|
中號 |
一年中的月份
|
d |
一個月中的某天
|
H |
一天中的小時(24小時制)
|
米 |
每小時的分鍾數(每小時60分鍾)
|
s |
每分鍾的秒數(每分鍾60秒)
|
小號 |
一秒的 最大精度為毫秒(
|
ž |
時區偏移量或標識
|
ž |
時區名稱。無法解析時區名稱(z)。 |
w |
一年中的第幾周
|
d |
一年中的一天 |
Ë |
星期幾(數字) |
Ë |
星期幾(文本)
|
對於非格式語法,您需要在值周圍放置單引號字符。例如,如果您要解析ISO8601時間,“ 2015-01-01T01:12:23”,則小“ T”不是有效的時間格式,而您想說的是“字面意義上的T”,則格式為這個:“ yyyy-MM-dd'T'HH:mm:ss”
其他不太常見的日期單位,例如時代(G),世紀(C),上午/下午(a)和#以上,可以在 joda-time文檔中了解。
tag_on_failure
- 值類型為數組
- 默認值為
["_dateparsefailure"]
tags
沒有成功匹配時將值追加到字段
target
- 值類型為字符串
- 默認值為
"@timestamp"
將匹配的時間戳存儲到給定的目標字段中。如果未提供,則默認更新@timestamp
事件的字段。
timezone
- 值類型為字符串
- 此設置沒有默認值。
指定用於日期解析的時區規范ID。有效ID列在Joda.org可用時區頁面上。如果無法從值中提取時區,並且不是平台默認值,這很有用。如果未指定,將使用平台默認值。規范ID很好,因為它可以為您節省夏令時。例如,America/Los_Angeles
或是Europe/Paris
有效的ID。該字段可以是動態的,並使用%{field}
語法包括事件的一部分
常用選項
所有過濾器插件均支持以下配置選項:
設置 | 輸入類型 | 需要 |
---|---|---|
|
Hash |
沒有 |
|
數組 |
沒有 |
|
布爾值 |
沒有 |
|
串 |
沒有 |
|
布爾值 |
沒有 |
|
數組 |
沒有 |
|
數組 |
沒有 |
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。當您有兩個或多個相同類型的插件時(例如,如果您有2個日期過濾器),這特別有用。在這種情況下,添加命名ID將有助於在使用監視API時監視Logstash。
filter { date { id => "ABC" } }
periodic_flush
- 值類型為布爾值
- 默認值為
false
定期調用filter flush方法。可選的。
remove_field
- 值類型為數組
- 默認值為
[]
如果此篩選器成功,請從此事件中刪除任意字段。字段名稱可以是動態的,並且可以使用%{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"] } }
mutate插件
例:
filter { mutate { split => ["hostname", "."] add_field => { "shortHostname" => "%{hostname[0]}" } } mutate { rename => ["shortHostname", "hostname" ] } }
mutate配置選項
該插件支持以下配置選項以及稍后介紹的“ 通用選項”。
設置 | 輸入類型 | 需要 |
---|---|---|
|
雜湊 |
沒有 |
|
雜湊 |
沒有 |
|
數組 |
沒有 |
|
雜湊 |
沒有 |
|
數組 |
沒有 |
|
雜湊 |
沒有 |
|
雜湊 |
沒有 |
|
雜湊 |
沒有 |
|
雜湊 |
沒有 |
|
雜湊 |
沒有 |
|
數組 |
沒有 |
|
雜湊 |
沒有 |
|
數組 |
沒有 |
|
數組 |
沒有 |
|
串 |
沒有 |
convert
- 值類型為哈希
- 此設置沒有默認值。
將字段的值轉換為其他類型,例如將字符串轉換為整數。如果字段值為數組,則將轉換所有成員。如果該字段是哈希,則不會采取任何措施。
有效的轉換目標及其在不同輸入下的預期行為是:
-
integer
:- 字符串被解析;支持逗號分隔符(例如,字符串
"1,000"
產生一個值為一千的整數);當字符串具有小數部分時,它們將被截斷。 - 浮點數和小數點被截斷(例如,
3.99
變為3
,-2.7
變為-2
) - 布爾真和布爾假被轉換為
1
和0
分別
- 字符串被解析;支持逗號分隔符(例如,字符串
-
integer_eu
:- 與相同
integer
,除了字符串值支持點分隔符和逗號小數(例如,"1.000"
產生一個值為一千的整數)
- 與相同
-
float
:- 整數轉換為浮點數
- 字符串被解析;支持逗號分隔符和點小數(例如,
"1,000.5"
產生一個值為1000的整數) - 布爾真和布爾假被轉換為
1.0
和0.0
分別
-
float_eu
:- 與相同
float
,不同之處"1.000,5"
在於字符串值支持點分隔符和逗號小數(例如,產生一個值為1000的整數)
- 與相同
-
string
:- 所有值均已字符串化並使用UTF-8編碼
-
boolean
:- 整數0轉換為布爾值
false
- 整數1轉換為布爾值
true
- 浮點數0.0轉換為布爾值
false
- float 1.0轉換為boolean
true
- 串
"true"
,"t"
,"yes"
,"y"
,"1"`and `"1.0"
被轉換成布爾true
- 串
"false"
,"f"
,"no"
,"n"
,"0"
和"0.0"
被轉換成布爾false
- 空字符串將轉換為布爾值
false
- 所有其他值直接通過而不進行轉換並記錄警告消息
- 對於數組,使用上面的規則分別處理每個值
- 整數0轉換為布爾值
該插件可以轉換同一文檔中的多個字段,請參見下面的示例。
例:
filter { mutate { convert => { "fieldname" => "integer" "booleanfield" => "boolean" } } }
copy
- 值類型為哈希
- 此設置沒有默認值。
將現有字段復制到另一個字段。現有目標字段將被覆蓋。
例:
filter { mutate { copy => { "source_field" => "dest_field" } } }
gsub
- 值類型為數組
- 此設置沒有默認值。
將正則表達式與字段值匹配,然后將所有匹配項替換為替換字符串。僅支持字符串或字符串數組的字段。對於其他類型的字段,將不采取任何措施。
此配置采用每個字段/替換由3個元素組成的數組。
請注意轉義配置文件中的任何反斜杠。
例:
filter { mutate { gsub => [ # replace all forward slashes with underscore "fieldname", "/", "_", # replace backslashes, question marks, hashes, and minuses # with a dot "." "fieldname2", "[\\?#-]", "." ] } }
join
- 值類型為哈希
- 此設置沒有默認值。
用分隔符連接數組。對非數組字段不執行任何操作。
例:
filter { mutate { join => { "fieldname" => "," } } }
lowercase
- 值類型為數組
- 此設置沒有默認值。
將字符串轉換為其小寫形式。
例:
filter { mutate { lowercase => [ "fieldname" ] } }
merge
- 值類型為哈希
- 此設置沒有默認值。
合並兩個數組或哈希字段。字符串字段將自動轉換為數組,因此:
數組+字符串將起作用 字符串+字符串將在dest_field中產生2個條目數組 `array`和`hash`將不起作用
例:
filter { mutate { merge => { "dest_field" => "added_field" } } }
coerce
- 值類型為哈希
- 此設置沒有默認值。
設置存在但為空的字段的默認值
例:
filter { mutate { # Sets the default value of the 'field1' field to 'default_value' coerce => { "field1" => "default_value" } } }
rename
- 值類型為哈希
- 此設置沒有默認值。
重命名一個或多個字段。
例:
filter { mutate { # Renames the 'HOSTORIP' field to 'client_ip' rename => { "HOSTORIP" => "client_ip" } } }
replace
- 值類型為哈希
- 此設置沒有默認值。
用新值替換字段的值。新值可以包含%{foo}
字符串,以幫助您從事件的其他部分構建新值。
例:
filter { mutate { replace => { "message" => "%{source_host}: My new message" } } }
split
- 值類型為哈希
- 此設置沒有默認值。
使用分隔符將字段拆分為數組。僅適用於字符串字段。
例:
filter { mutate { split => { "fieldname" => "," } } }
strip
- 值類型為數組
- 此設置沒有默認值。
從字段中刪除空格。注意:這僅適用於前導和尾隨空白。
例:
filter { mutate { strip => ["field1", "field2"] } }
update
- 值類型為哈希
- 此設置沒有默認值。
用新值更新現有字段。如果該字段不存在,則不會采取任何措施。
例:
filter { mutate { update => { "sample" => "My new message" } } }
uppercase
- 值類型為數組
- 此設置沒有默認值。
將字符串轉換為其大寫形式。
例:
filter { mutate { uppercase => [ "fieldname" ] } }
capitalize
- 值類型為數組
- 此設置沒有默認值。
將字符串轉換為其大寫形式。
例:
filter { mutate { capitalize => [ "fieldname" ] } }
tag_on_failure
- 值類型為字符串
- 此設置的默認值為
_mutate_error
如果在應用此mutate過濾器期間發生故障,則其余操作將中止,並將提供的標簽添加到事件中。
常用選項
所有過濾器插件均支持以下配置選項:
設置 | 輸入類型 | 需要 |
---|---|---|
|
雜湊 |
沒有 |
|
數組 |
沒有 |
|
布爾值 |
沒有 |
|
串 |
沒有 |
|
布爾值 |
沒有 |
|
數組 |
沒有 |
|
數組 |
沒有 |
add_field
- 值類型為哈希
- 默認值為
{}
如果此篩選器成功,則將任何任意字段添加到此事件。字段名稱可以是動態的,並且可以使用包含事件的一部分%{field}
。
例:
filter { mutate { add_field => { "foo_%{somefield}" => "Hello world, from %{host}" } } } # You can also add multiple fields at once: filter { mutate { add_field => { "foo_%{somefield}" => "Hello world, from %{host}" "new_field" => "new_static_value" } } }
如果事件具有字段,則"somefield" == "hello"
此過濾器成功后將添加字段(foo_hello
如果存在),並使用上面的值,並將%{host}
片段替換為事件中的值。第二個示例還將添加一個硬編碼字段。
add_tag
- 值類型為數組
- 默認值為
[]
如果此過濾器成功,則將任意標簽添加到事件中。標簽可以是動態的,並可以使用%{field}
語法包括事件的一部分。
例:
filter { mutate { add_tag => [ "foo_%{somefield}" ] } } # You can also add multiple tags at once: filter { mutate { add_tag => [ "foo_%{somefield}", "taggedy_tag"] } }
如果事件具有字段,則"somefield" == "hello"
此過濾器成功后將添加標簽foo_hello
(第二個示例當然會添加taggedy_tag
標簽)。
enable_metric
- 值類型為布爾值
- 默認值為
true
默認情況下,為此特定插件實例禁用或啟用度量標准日志記錄,我們會記錄所有可以度量的數據,但是您可以禁用特定插件的度量標准收集。
id
- 值類型為字符串
- 此設置沒有默認值。
ID
向插件配置添加唯一。如果未指定ID,Logstash將生成一個。強烈建議在您的配置中設置此ID。當您有兩個或多個相同類型的插件時(例如,如果您有2個變異過濾器),這特別有用。在這種情況下,添加命名ID將有助於在使用監視API時監視Logstash。
filter { mutate { id => "ABC" } }
periodic_flush
- 值類型為布爾值
- 默認值為
false
定期調用filter flush方法。可選的。
remove_field
- 值類型為數組
- 默認值為
[]
如果此篩選器成功,請從此事件中刪除任意字段。字段名稱可以是動態的,並且可以使用%{field}示例來包含事件的一部分:
filter { mutate { remove_field => [ "foo_%{somefield}" ] } } # You can also remove multiple fields at once: filter { mutate { remove_field => [ "foo_%{somefield}", "my_extraneous_field" ] } }
如果事件具有字段,則"somefield" == "hello"
此過濾器成功后將刪除具有名稱的字段(foo_hello
如果存在)。第二個示例將刪除一個附加的非動態字段。
remove_tag
- 值類型為數組
- 默認值為
[]
如果此過濾器成功,則從事件中刪除任意標簽。標簽可以是動態的,並可以使用%{field}
語法包括事件的一部分。
例:
filter { mutate { remove_tag => [ "foo_%{somefield}" ] } } # You can also remove multiple tags at once: filter { mutate { remove_tag => [ "foo_%{somefield}", "sad_unwanted_tag"] } }