成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

[譯]你應(yīng)該了解的5個(gè) Logstash Filter 插件

CatalpaFlat / 1343人閱讀

摘要:如上所述,是中最常用的過(guò)濾器插件。以此格式排序,日志消息已被分解成邏輯命名的字段,可以更容易地查詢,分析和可視化。另一個(gè)常見的插件是。為了維護(hù)整個(gè)消息或特定字段的結(jié)構(gòu),插件使你能夠在日志消息中提取和維護(hù)數(shù)據(jù)結(jié)構(gòu)。

原文:5 Logstash Filter Plugins You Need to Know About

譯者:neal1991

welcome to star my articles-translator , providing you advanced articles translation. Any suggestion, please issue or contact me

LICENSE: MIT

在 ELK 中, Logstash 處理資源繁重的日志聚合和處理的任務(wù)。 Logstash 執(zhí)行的處理工作確保我們的日志消息被正確解析和結(jié)構(gòu)化,并且這種結(jié)構(gòu)使你能夠更容易地在 Elasticsearch 中進(jìn)行索引分析和數(shù)據(jù)可視化。

對(duì)數(shù)據(jù)執(zhí)行什么精確處理由你在 Logstash 配置文件的 filter 部分確定。 在本節(jié)中,你可以從大量的官方支持和社區(qū) filter 插件中選擇從而決定如何轉(zhuǎn)換日志。 最常用的過(guò)濾器插件是 grok,但是還有一些其他非常有用的插件可以使用。

你使用的插件當(dāng)然取決于日志本身,但本文嘗試列出你最有可能在涉及 Logstash 的任何日志處理中找到的五個(gè)插件。

1 grok

如上所述,grok 是 Logstash 中最常用的過(guò)濾器插件。 盡管事實(shí)上它不容易使用,但是 grok 非常受歡迎,因?yàn)樗试S你將非結(jié)構(gòu)化日志結(jié)構(gòu)化。

以下面的隨機(jī)日志消息為例:

2016-07-11T23:56:42.000+00:00 INFO
[MySecretApp.com.Transaction.Manager]:Starting transaction for session
-464410bf-37bf-475a-afc0-498e0199f00

我們使用的 grok 正則就跟下面一樣:

filter {
    grok {
        match => { "message" =>"%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:log-level} [%{DATA:class}]:%{GREEDYDATA:message}" }
        }
}

處理之后,日志消息就會(huì)處理成下面這樣:

{ 
"timestamp" => "2016-07-11T23:56:42.000+00:00",
"log-level" =>"INFO",
"class" =>"MySecretApp.com.Transaction.Manager"
"message" => "Starting transaction for session   -464410bf-37bf-475a-afc0-498e0199f008" 
}

這就是 Elasticsearch 如何索引日志消息。 以此格式排序,日志消息已被分解成邏輯命名的字段,可以更容易地查詢,分析和可視化。

在這篇文章中可以找到更多關(guān)于 grok 如何工作和使用的信息。

2 mutate

另一個(gè)常見的 Logstash filter 插件是 mutate。 顧名思義,這個(gè) filter 允許你通過(guò)“改變”各個(gè)字段真正地轉(zhuǎn)換你的日志消息。 例如,你可以使用 filter 來(lái)更改字段,將它們拼接在一起,重命名它們等等。

使用上面的日志作為示例,使用 mutate 插件的 lowercase 配置選項(xiàng),我們可以將“l(fā)og-level”字段轉(zhuǎn)換為小寫:

filter { 
    grok {...}
    mutate {   lowercase => [ "log-level" ]  }
}

mutate 插件是更改日志格式的好方法。 這里列出了插件的不同配置選項(xiàng)的完整列表。

3 date

如果分析日志和事件未按時(shí)間順序排列怎么辦?

Logstash date filter 插件可用于從日志消息中提取時(shí)間和日期,并將其定義為日志的時(shí)間戳字段(@timestamp)。 一旦定義,這個(gè)時(shí)間戳字段將以正確的時(shí)間順序排列日志,并幫助你更有效地分析它們。

有幾十種(如果不是數(shù)百種)不同的方式可以在日志中格式化時(shí)間和日期。

以下是Apache訪問(wèn)日志的示例:

200.183.100.141 - - [25/Nov/2016:16:17:10 +0000] "GET
/wp-content/force-download.php?file=../wp-config.php HTTP/1.0" 200
3842 "http://hack3r.com/top_online_shops" "Mozilla/4.0 (compatible;
MSIE 8.0; Windows NT 5.1; Trident/4.0; YTB720; GTB7.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"

使用 date filter 如下,我們可以提取日期和時(shí)間正則,并將其定義為@timestamp字段,并根據(jù)此所有日志將按以下排序:

filter {
grok {
    match => { "message" => "%{COMBINEDAPACHELOG}"}
}
date {
    match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"]
    target => "@timestamp"     }
}

請(qǐng)注意,如果不使用日期過(guò)濾器,Logstash將根據(jù)輸入時(shí)間自動(dòng)設(shè)置時(shí)間戳。

在這里閱讀有關(guān)其他配置選項(xiàng)。

4 json

JSON 是一種非常受歡迎的日志格式,因?yàn)樗试S用戶編寫可以輕松讀取和分析的結(jié)構(gòu)化和標(biāo)準(zhǔn)化的消息。

為了維護(hù)整個(gè)消息或特定字段的 JSON 結(jié)構(gòu),Logstash json filter 插件使你能夠在日志消息中提取和維護(hù) JSON 數(shù)據(jù)結(jié)構(gòu)。

下面的示例是一個(gè)格式為 JSON 的 Apache 訪問(wèn)日志:

{
"time":"[30/Jul/2017:17:21:45 +0000]",
"remoteIP":"192.168.2.1",
"host":"my.host.local",
"request":"/index.html",
"query":"",
"method":"GET",
"status":"200",
"userAgent":"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; YTB720; GTB7.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)", "referer":"-" 
}

我們可以使用 json filter 來(lái)保留數(shù)據(jù)結(jié)構(gòu),而不是將日志平鋪成一行:

filter { json { source =>"message"        target => "log"   }  } }

source 配置選項(xiàng)定義日志中的哪個(gè)字段是你要解析的 JSON。 在這個(gè)例子中,整個(gè)消息字段是一個(gè) JSON。 我還使用目標(biāo)選項(xiàng)將 JSON 擴(kuò)展為名為 log 的字段中的數(shù)據(jù)結(jié)構(gòu)。

在這里閱讀有關(guān)其他配置選項(xiàng)。

5 kv

鍵值對(duì)或 KVP 是另一種常用的日志格式。 像 JSON 一樣,這種格式主要是因?yàn)樗强勺x的,Logstash kv filter 插件允許你自動(dòng)解析消息或以這種方式格式化的特定字段。

以此日志為例:

2017-07025 17:02:12 level=error message="connection refused" service="listener" thread=125 customerid=776622 ip=34.124.233.12 queryid=45

我可以使用以下 kv filter 來(lái)指示 Logstash 如何處理它:

filter {  
kv {
source => "metadata"
trim => """
include_keys => [ "level","service","customerid",”queryid” ]
target => "kv"
    }
}

請(qǐng)注意配置選項(xiàng)的使用。 我正在使用 source 來(lái)定義字段來(lái)執(zhí)行 key = value 搜索,trim 以忽略特定字符,include_keys指定應(yīng)該添加到日志中的解析 key,并且定位到所有 key 對(duì)象的容器, 再放入值。

在這里閱讀有關(guān)其他配置選項(xiàng)。

總結(jié)

正如我在文章開頭所說(shuō),有大量的 Logstash filter 插件可供你使用。 你使用哪一個(gè)當(dāng)然取決于您要處理的具體日志消息。

值得一提的其他非常有用的過(guò)濾器插件是 geoip(用于添加IP字段的地理數(shù)據(jù))和 csv(用于解析CSV日志)插件。

雖然這些插件中的每一個(gè)都是有用的,但是當(dāng)它們一起用于解析日志時(shí),它們的全部功能被釋放。 實(shí)際上,在大多數(shù)情況下,你最有可能使用 grok 和至少一個(gè)或兩個(gè)附加插件的組合。 這種組合使用將保證你的日志在 Logstash 的另一端完美格式化!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/67880.html

相關(guān)文章

  • []理解grok嗎

    摘要:允許你將這些事件路由到可以統(tǒng)計(jì)和檢查的地方。實(shí)際上,被告知的是在一行文本中找到這個(gè)元素序列??偨Y(jié)希望這篇博文能夠幫助你理解的行為,以及如何提高吞吐量。監(jiān)測(cè)發(fā)生的情況并且對(duì)于他們的消耗進(jìn)行基準(zhǔn)測(cè)試。如果懷疑的話,直接測(cè)量。 Do you grok Grok? 原文:Do you grok Grok?譯者:neal1991 welcome to star my articles-trans...

    widuu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<