filebeat與rsyslog日誌獲取簡單對比

2021-09-29 14:46:33 字數 2950 閱讀 4342

日誌**需要部署在客戶的機子上,所以不能太大,也不能消耗太多效能,根據需求找了以下幾個開源的方案:

名稱開發語言

rpm安裝包大小

filebeat

golang

22.8m

rsyslog

c717kb

這是網上的比較,比較全面:

1,filebeat支援的日誌獲取方式

1)通過模組獲取物件 :

apache , auditd , aws , cef , cisco , coredns elasticsearch , envoyproxy , google cloud , haproxy , ibm mq , icinga , iis , iptables , kafka , kibana , logstash , mongodb , mssql , mysql , nats , netflow , nginx , osquery , palo alto networks , postgresql , rabbitmq , redis , santa , suricata , system , traefik , zeek (bro)

這是官網上對應的詳細資訊: s.html

2)通過手動配置filebeat :

log , stdin , container , kafka , redis , udp , docker , tcp , syslog , s3 , netflow , google pub/sub

這是手動配置的詳細說明:

2,filebeat日誌輸出方式

支援以下幾種輸出方式:

elasticsearch , logstash , kafka , redis , file , console , elastic cloud

這是官網的詳細資訊:

3,優勢

filebeat 只是乙個二進位制檔案沒有任何依賴。它占用資源極少,儘管它還十分年輕,正式因為它簡單,所以幾乎沒有什麼可以出錯的地方,所以它的可靠性還是很高的。它也為我們提供了很多可以調節的點,例如:它以何種方式搜尋新的檔案,以及當檔案有一段時間沒有發生變化時,何時選擇關閉檔案控制代碼。

4,劣勢

filebeat 的應用範圍十分有限,所以在某些場景下我們會碰到問題。例如,如果使用 logstash 作為下游管道,我們同樣會遇到效能問題。正因為如此,filebeat 的範圍在擴大。開始時,它只能將日誌傳送到 logstash 和 elasticsearch,而現在它可以將日誌傳送給 kafka 和 redis,在 5.x 版本中,它還具備過濾的能力。

1,rsyslog支援的日誌獲取方式

獲取物件 :

rfc3195 , batch report , docker , text file , gssapi syslog , systemd journal , read from apache kafkakernel log , /dev/kmsg log , mark message , program integration , generate periodic statistics of internal counters , plain tcp syslog , relp , solaris , tcp syslog , tuxedo ulog , udp syslog , unix socket

這是官網的詳細說明:

2,rsyslog日誌輸出方式

支援以下幾種輸出方式:amqp 1.0 messaging , clickhouse , elasticsearch , file , syslog forwarding , hadoop filesystem , redis , http , hadoop httpfs , systemd journal , write to apache kafkageneric database , mail , mongodb , mysql database , oracle database , postgresql database , pipe , program integration , rabbitmq , relp , ruleset output/including , snmp trap , stdout output , udp spoofing output , notify users , unix sockets , guardtime log signature provider (gt) , keyless signature infrastructure provider (ksi) , ksi signature provider (rsyslog-ksi-ls12)

這是官網的詳細說明:

3,優勢

rsyslog 是經測試過的最快的傳輸工具。如果只是將它作為乙個簡單的 router/shipper 使用,幾乎所有的機器都會受頻寬的限制,但是它非常擅長處理解析多個規則。它基於語法的模組(mmnormalize)無論規則數目如何增加,它的處理速度始終是線性增長的。這也就意味著,如果當規則在 20-30 條時,如解析 cisco 日誌時,它的效能可以大大超過基於正則式解析的 grok ,達到 100 倍(當然,這也取決於 grok 的實現以及 liblognorm 的版本)。

它同時也是我們能找到的最輕的解析器,當然這也取決於我們配置的緩衝。

4,劣勢

rsyslog 的配置工作需要更大的代價(這裡有一些例子),這讓兩件事情非常困難:

文件難以搜尋和閱讀,特別是那些對術語比較陌生的開發者。

5.x 以上的版本格式不太一樣(它擴充套件了 syslogd 的配置格式,同時也仍然支援舊的格式),儘管新的格式可以相容舊格式,但是新的特性(例如,elasticsearch 的輸出)只在新的配置下才有效,然後舊的外掛程式(例如,postgres 輸出)只在舊格式下支援。

儘管在配置穩定的情況下,rsyslog 是可靠的(它自身也提供多種配置方式,最終都可以獲得相同的結果),它還是存在一些 bug 。

通過對兩種工具的對比,雙方的拓展性都不錯,但是filebeat的使用難度遠小於rsyslog.所以如果強調效能推薦rsyslog,如果強調快速開發及易維護,則推薦filebeat

logstash與filebeat收集日誌

1 背景介紹 日誌收集,採用的是 elk 框架,即 elasticsearch,logstash,kibana,另外還有 filebeat 元件,其中 filebeat 用於掃瞄日誌檔案,將日誌傳送到 logstash 服務,logstash 服務則完成將日誌切分,傳送到 elasticsearch...

filebeat 外掛程式開發

filebeat是乙個輕量的日誌收集工具,全套使用go語言開發。我目前遇到的問題是,在收集的時候需要對資料進行取樣,取樣比和取樣形式要靈活,因為可能在多個專案會使用到這個日誌收集功能。剛開始我仔細研究filebeat的配置,我感覺他自身應該帶有採集需求,然而並沒有。於是我想著去修改他的原始碼,這樣也...

filebeat 啟動流程

因為各種各樣的原因,好久沒有寫部落格了,還是希望能夠堅持下來 講解一下filebeat的啟動流程吧,核心功能先不描述了0.0 filebeat啟動入口在main.go檔案內,cmd.rootcmd.execute 啟動filebeat func main 在filebeat cmd root.go檔...