日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

KubeCon 2018 参会记录 —— FluentBit Deep Dive

發(fā)布時間:2024/8/23 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 KubeCon 2018 参会记录 —— FluentBit Deep Dive 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在最近的上海和北美KubeCon大會上,來自于Treasure Data的Eduardo Silva(Fluentd Maintainer)帶來了最期待的關(guān)于容器日志采集工具FluentBit的最新進展以及深入解析的分享;我們知道Fluentd是在2016年底正式加入CNCF,成為CNCF項目家族的一員,其被廣泛用于容器集群中進行應用日志的采集、處理和聚合,但今天主要是跟大家分享一下同樣來自于Treasure Data新開源的日志采集工具——FluentBit。

FluentBit vs Fluentd

既然已經(jīng)有了Fluentd,那么為什么還要開發(fā)一個FluentBit呢?我們知道,Fluentd是基于Ruby語言的,在一些應用日志量較大或者單節(jié)點日志量較大的場景下,通過Fluentd采集日志的速率會遠落后于應用日志的產(chǎn)生速率,進而導致日志采集的延遲時間較大,這對于一些實時性要求較高的業(yè)務系統(tǒng)或者監(jiān)控系統(tǒng)來說是不可接受的;另外一方面,也是由于Fluentd自身的日志處理邏輯越來越復雜,全部放置在一個組件里來完成會導致越來越臃腫,因此Treasure Data在基于Fluentd優(yōu)秀的架構(gòu)和設計理念上重新開發(fā)了一個更加輕量級、更加高性能的日志采集工具——FluentBit,其主要采用C語言進行開發(fā)。

從上面我們可以清晰地看到FluentBit本身占用的內(nèi)存資源會比Fluentd少很多,且基本沒有其他額外的環(huán)境依賴,但是支持的插件數(shù)相較于Fluentd會少很多,需要時間來慢慢豐富。

FluentBit Workflow

FluentBit 內(nèi)置了一個Service Engine,其每采集到一條日志時都會執(zhí)行從Input到Output的整個Action Chain:

- Input

日志數(shù)據(jù)入口,FluentBit支持多種不同數(shù)據(jù)來源類型的Input Plugin,不僅能采集容器日志、內(nèi)核日志、syslog、systemd日志,還支持通過TCP監(jiān)聽接收遠程客戶端的日志,同時還能夠采集系統(tǒng)的CPU、內(nèi)存和DISK的使用率情況以及本機Network流量日志。

- Parser

通過情況下我們的應用日志都是非結(jié)構(gòu)化的,那么Parser主要是負責將采集到的非結(jié)構(gòu)化日志解析成結(jié)構(gòu)化的日志數(shù)據(jù),一般為JSON格式;FluentBit 默認已經(jīng)預置了下面幾種Parser:

  • JSON:按照JSON格式來進行日志數(shù)據(jù)解析;
  • Regex:依據(jù)配置的正則表達式來進行日志數(shù)據(jù)解析;
  • Apache:遵循Apache日志格式來進行解析;
  • Nginx:遵循Nginx日志格式來進行解析;
  • Docker:遵循Docker標準輸出日志格式進行解析;
  • Syslog rfc5424:按照syslog rfc5424規(guī)范格式進行日志解析;
  • Syslog rfc3164:按照syslog rfc3164規(guī)范格式進行日志解析;
  • - Filter

    在實際的生產(chǎn)應用中,我們通常需要對采集到的應用日志記錄進行修改或者添加一些關(guān)鍵信息,這都可以Filter Plugin來完成;目前FluentBit也已預置了多種Filter插件:

  • Grep:允許匹配或者過濾掉符合特定正則表達式的日志記錄;
  • Record Modifier:允許對日志數(shù)據(jù)進行修改或者添加新的KV數(shù)據(jù),通過此可以方便我們對日志數(shù)據(jù)進行打標;
  • Throttle:支持采用漏桶和滑動窗口算法進行日志采集速率控制;
  • Kubernetes:自動提取容器或者POD相關(guān)信息并添加到日志數(shù)據(jù)中;
  • Modify:基于設置的規(guī)則來對日志數(shù)據(jù)進行修改;
  • Standard Output:允許將日志數(shù)據(jù)直接打印到標準輸出;
  • Lua:支持通過嵌入Lua Script來修改添加日志數(shù)據(jù);
  • - Buffer

    FluentBit 內(nèi)部本身提供了Buffer機制,會將采集到的日志數(shù)據(jù)暫存在Memory中直到該日志數(shù)據(jù)被成功路由轉(zhuǎn)發(fā)到指定的目標存儲后端。

    - Routing

    路由是FluentBit的一個核心功能,它允許我們配置不同的路由規(guī)則來將同一條日志數(shù)據(jù)記錄轉(zhuǎn)發(fā)到一個或多個不同的接收后端,其內(nèi)部主要是基于每條日志數(shù)據(jù)的Tag來進行路由轉(zhuǎn)發(fā),同時支持正則匹配方式;如下面配置則表示希望將Tag滿足正則表達式my_*的日志直接打印到標準輸出中:

    [INPUT]Name cpuTag my_cpu ? [INPUT]Name memTag my_mem ? [OUTPUT]Name stdoutMatch my_*

    - Output

    Output 主要是用來配置采集到的日志數(shù)據(jù)將要被轉(zhuǎn)發(fā)到哪些日志存儲服務中,目前已支持多種主流的存儲服務,如ElasticSearch、NATS、InfluxDB、Kafka、Splunk、File、Console等,同樣也支持將日志數(shù)據(jù)繼續(xù)通過HTTP(S)協(xié)議將其傳輸?shù)狡渌战涌谥?#xff1b;另外這里有一個比較特殊的Output就是Fluentd,可能大家會比較奇怪,其實在未來的日志架構(gòu)模型中,FluentBit主要是在采集端專職負責日志的高性能采集,然后可以將采集到的日志在Fluentd中進行較復雜的聚合處理(同F(xiàn)ilebeat和Logstash):

    Other Features

    • Event Driven
      內(nèi)置的Service Engine采用完全異步的事件驅(qū)動模型來進行日志的采集和分發(fā)。
    • Configuration
      簡單靈活的、高可讀性的配置方式,FluentBit的Workflow模型可完全通過配置文件的方式清晰制定。
    • Upstream Manager
      采用統(tǒng)一的日志上游服務的網(wǎng)絡連接管理,包括Keepalive和IO Error處理。
    • TLSv1.2 / Security
      對于安全敏感的日志數(shù)據(jù),支持通過TLS加密通道進行日志傳輸。

    Upcoming Features

    • Filesystem buffering mode
      當前FluentBit只支持Memory的buffer方式,但考慮到內(nèi)存的易失性,未來也將會支持基于Filesystem的buffer機制。
    • Optional plugins as shared libraries
      未來會將一些已內(nèi)置的但又不是必需的插件以共享鏈接庫的方式來進行動態(tài)加載。
    • Kubernetes Filter improvements
      未來會繼續(xù)深度整合Kubernetes,通過API獲取更多POD關(guān)鍵信息并自動添加到日志數(shù)據(jù)記錄中。

    Summary

    這兩次的KubeCon大會上Eduardo Silva對日志采集工具FluentBit都進行了深度的解析分享,不僅介紹了FluentBit的整個架構(gòu)模型,而且還分享了未來的發(fā)展方向,從整個分享來看FluentBit會側(cè)重在日志的高性能采集方面;而阿里云容器服務在2017年初開源的Log-Pilot:https://github.com/AliyunContainerService/log-pilot?,其不僅能夠采集容器的標準輸出日志,而且還能動態(tài)地發(fā)現(xiàn)采集容器內(nèi)文件日志,同時支持簡單高效的日志聲明式配置、支持日志路由、日志數(shù)據(jù)打標以及多種日志采集插件,未來我們將進一步與社區(qū)緊密結(jié)合,整合FluentBit的高性能采集特性以及Log-Pilot的動態(tài)發(fā)現(xiàn)和聲明式配置優(yōu)勢來進一步增強容器化應用日志的配置采集效率。

    ?


    原文鏈接
    本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。

    總結(jié)

    以上是生活随笔為你收集整理的KubeCon 2018 参会记录 —— FluentBit Deep Dive的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。