成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iLogtail開源之路

原創 精選
云計算 云原生
日志服務SLS作為一款云原生觀測與分析平臺,為Log、Metric、Trace等數據提供大規模、低成本、實時的平臺化服務。SLS一站式提供數據采集、加工、查詢與分析、可視化、告警、消費與投遞等功能,用戶可以基于SLS快速構建一套完整的可觀測平臺。

作者 |    徐可甲(燁陌)

2022年6月底,阿里云iLogtail代碼完整開源,正式發布了完整功能的iLogtail社區版。iLogtail作為阿里云SLS官方標配的采集器,多年以來一直穩定服務阿里集團、螞蟻集團以及眾多公有云上的企業客戶,目前已經有千萬級的安裝量,每天采集數十PB的可觀測數據,廣泛應用于線上監控、問題分析/定位、運營分析、安全分析等多種場景。此次完整開源,iLogtail社區版首次在內核能力上與企業版完全對齊,開發者可以構建出與企業版性能相當的iLogtail云原生可觀測性數據采集器。

圖片

iLogtail的核心定位是可觀測數據的采集器,幫助開發者構建統一的數據采集層,助力可觀測平臺打造各種上層的應用場景。iLogtail一貫秉承開放共建的原則,歡迎任何形式的社區討論交流及公建。

可觀測性探討

生活中的可觀測

圖片

可觀測性指的是從系統的外部輸出推斷及衡量系統內部狀態。在我們生活當中也會遇到很多可觀測的例子。汽車儀表盤就是一個很典型的可觀測例子,在駕駛汽車過程中,特別需要高度重視就是行駛安全問題。而汽車儀表盤降低了識別汽車內部狀態的門檻,即使非汽車工程專業人員也能通過儀表盤快速識別汽車的內部狀態。

另外,我們平常的看病可以認為是人體可觀測的例子。在古代,醫療水平比較落后,整體來說人體是一個黑盒,只能通過表面的望聞問切來診斷病因,然而這種方式過度的依賴醫生的經驗、缺乏有力的數據支撐。而到了近代,隨著心電圖、X光等醫療設備的發展,人體的內部機制變得越來越透明,大幅提升了醫療水平,給人們的身體健康帶來了福音。通過上述的例子我們可以看到,可觀測性不僅要能定性地反饋系統內部狀態,最重要的是要定量的論證系統內部狀態,需要有足夠的數據依據,也就是我們提到的可觀測數據的質量和準確性。

機遇與挑戰

圖片

回到我們軟件行業,經過幾十年的飛速發展,整個開發模式、系統架構、部署模式、基礎設施等也都經過了幾次顛覆性的變革,這些變革帶來了更快的開發和部署效率,但隨之而來整個的系統也更加的復雜、開發所依賴人和部門也更多、部署模式和運行環境也更加動態和不確定,這也對可觀測數據采集提出了更高的要求。首先需要適應開發模式快速迭代的需求,需要能夠與DevOps流程等進行高度的集成,通過輕量級、自動化集成的方式實現開發、測試、運維的一體化;也需要適應部署架構分布式、容器化的需求,提升業務服務動態、及時、準確發現的能力;最后,云原生的發展也帶來了更多的上下游依賴,因此也需要適應數據來源、數據類型越來越多的需求。

可觀測性的數據基礎

圖片

Logs、Traces、Metrics作為可觀測性數據的三大支柱,基本可以滿足各類監控、告警、分析、問題排查等需求。這里大致分析下這三類數據的特點、轉化方式以及適用場景:

  • Logs:作為軟件運行狀態的載體,通過日志可以詳細解釋系統運行狀態及還原業務處理的過程。常見日志類型包括運行日志、訪問日志、交易日志、內核日志、滿日志、錯誤日志等。
  • Metrics:是指對系統中某一類信息的統計聚合,相對比較離散。一般有name、labels、time、values組成,Metrics數據量一般很小,相對成本更低,查詢的速度比較快。
  • Traces:是最標準的調用日志,除了定義了調用的父子關系外(一般通過TraceID、SpanID、ParentSpanID),一般還會定義操作的服務、方法、屬性、狀態、耗時等詳細信息。

三者間的轉換關系:Logs在調用鏈場景結構化后其實可以轉變為Trace,在進行聚合、降采樣操作后會變成Metrics。

開源方案探討

圖片

目前行業上主流的可觀測開源方案,大概可以分為5個部分。

  • 采集端:承載可觀測數據采集及一部分前置的數據處理功能。隨著云原生的發展,采集端也需要適應時代潮流,提供對K8s采集的友好支持。常見的采集端有Filebeat、FluentD/Fluent-bIt,以及我們開源的iLogtail。
  • 消息隊列:采集Agent往往不會直接將采集到的數據發送到存儲系統,而是寫入消息隊列,起到削峰填谷的作用,避免流量洪峰導致存儲系統宕機。常見消息隊列為Kafka、RabbitMQ等。
  • 計算:用于消費消息隊列中的數據,經過處理、聚合后輸出到存儲系統。比較常見的為Flink、Logstash等。
  • 存儲分析引擎:提供采集數據持久化存儲能力,并提供查詢分析能力。常見的存儲分析引擎為Elasticsearch、ClickHouse及Loki。
  • 可視化:借助Kibana和Grafana提供采集數據的可視化能力。

另外,日志服務SLS作為一款云原生觀測與分析平臺,為Log、Metric、Trace等數據提供大規模、低成本、實時的平臺化服務。SLS一站式提供數據采集、加工、查詢與分析、可視化、告警、消費與投遞等功能,用戶可以基于SLS快速構建一套完整的可觀測平臺。iLogtail企業版作為SLS官方標配的采集器,承載了業務數據采集的職責,而iLogtail社區版正是從企業版發展而來的,功能及性能自然也繼承了企業版的絕大部分能力。

iLogtail發展歷程

圖片

iLogtail的前身源自阿里云的神農項目,自從2013年正式孵化以來,iLogtail始終在不斷演進。

誕生初期,面對阿里云自身和早期客戶運維和可觀測性需求,iLogtail主要解決的是從單機、小規模集群到大規模的運維監控挑戰,此時的iLogtail已經具備了基本的文件發現和輪轉處理能力,可以實現日志、監控實時采集,抓取毫秒級延遲,單核處理能力約為10M/s。通過Web前端可支持中心化配置文件自動下發,支持3W+部署規模,上千采集配置項,實現日10TB數據的高效采集。

2015年,阿里巴巴開始推進集團和螞蟻金服業務上云,面對近千個團隊、數百萬終端、以及雙11、雙12等超大流量數據采集的挑戰,iLogtail在功能、性能、穩定性和多租戶支持方面都需要進行巨大的改進。至2017年前后,iLogtail已經具備了正則、分隔符、JSON等多個格式日志的解析能力,支持多種日志編碼方式,支持數據過濾、脫敏等高級處理能力,單核處理能力極簡模式下提升到100M/s,正則、分隔符、JSON等方式20M/s+。采集可靠性方面,增加文件發現Polling方式兜底、輪轉隊列順序保證、日志清理丟失保護、CheckPoint增強;進程可靠性方面,增加異常自動恢復、Crash自動上報、守護進程等。通過全流程多租戶隔離、多級高低水位隊列、配置級/進程級流量控制、臨時降級等機制,支持百萬+部署規模,千級別租戶,10萬+采集配置項,實現日PB級數據的穩定采集。

隨著阿里推進核心業務全面上云,以及iLogtail所屬日志服務(SLS)正式在阿里云上商業化,iLogtail開始全面擁抱云原生。面對多元的云上環境、迅速發展的開源生態和大量涌入的行業客戶需求,iLogtail的發展的重心轉移到解決如何適應云原生、如何兼容開源協議和如何去處理碎片化需求等問題上。2018年iLogtail正式支持docker容器采集,2019年支持containerd容器采集,2020年全面升級Metric采集,2021年增加Trace支持。通過全面支持容器化、K8S Operator管控和可擴展插件系統,iLogtail支持千萬部署規模,數萬內外部客戶,百萬+采集配置項,實現日數十PB數據的穩定采集。2021年11月iLogtail邁出了開源的第一步,將Golang插件代碼開源。自開源以來,吸引了數百名開發者的關注,并且也有不少開發者貢獻了processor跟flusher插件。2022年6月C++核心代碼也正式開源了,自此開發者可以基于該版本構建完整的云原生可觀測數據采集方案。

iLogtail核心優勢

圖片

核心優勢 -- 輕量、高效、穩定、可靠

輕量

可觀測數據采集Agent作為一個基礎設施,往往需要每臺機器都有部署,比如目前阿里內部有數百萬的裝機量,每天會產生幾十PB的可觀測數據。因此不管是內存還是CPU的一點點節省,都能帶來比較大的成本收益。特別是,K8s Sidecar模式對于內存的要求更加苛刻,因為iLogtail與業務容器共同部署,iLogtail部署量會隨業務規模擴大而增長。從設計初期,我們就比較重視iLogtail的資源占用問題,選擇了主體部分C++、插件部分Golang實現,并且通過一些技術細節(詳見下文)的優化,使得內存還是CPU相對于同類Agent都有較大的優勢。

高效采集

對于日志采集,比較常見的手段是輪詢機制,這是一種主動探測的收集方式,通過定期檢測日志文件有無更新來觸發日志采集;相應的也存在一種被動監聽的事件模式,依賴于操作系統的事件通知(對操作系統有一定的要求),常見的事件通知機制是Linux 2.6.13內核版本引入的inotify機制。輪詢相對事件通知的實現復雜度要低很多、天然支持跨平臺而且對于系統限制性不高;但輪詢的采集延遲以及資源消耗較高,而且在文件規模較大時輪詢一次的時間較長,比較容易發生采集延遲。

圖片

為了同時兼顧采集效率以及跨平臺的支持,iLogtail采用了輪詢(polling)與事件(inotify)并存的模式進行日志采集,既借助了inotify的低延遲與低性能消耗的特點,也通過輪詢的方式兼顧了運行環境的全面性。

  • iLogtail內部以事件的方式觸發日志讀取行為。其中,polling和inotify作為兩個獨立模塊,分別將各自產生的Create/Modify/Delete事件,存入Polling Event Queue和Inotify Event Queue中。

輪詢模塊由DirFilePolling和ModifyPolling兩個線程組成,DirFilePolling負責根據用戶配置定期遍歷文件夾,將符合日志采集配置的文件加入到modify cache中;ModifyPolling負責定期掃描modify cache中文件狀態,對比上一次狀態(Dev、Inode、Modify Time、Size),若發現更新則生成modify event。

inotify屬于事件監聽方式,根據用戶配置監聽對應的目錄以及子目錄,當監聽目錄存在變化,內核會產生相應的通知事件。

  • 由Event Handler線程負責將兩個事件隊列合并到內部的Event Queue中,并處理相應的Create/Modify/Delete事件,進而進行實際的日志采集。

此外,我們也通過一些技術手段,保證了polling、inotify兩種機制的高效配合,整體近一步提升了iLogtail運行效率。

  • 事件合并:為避免輪詢事件和inotify事件多次觸發事件處理行為,iLogtail在事件處理之前將重復的輪詢/inotify事件進行合并,減少無效的事件處理行為;
  • 輪詢自動降級:如果在系統支持且資源足夠的場景下,inotify無論從延遲和性能消耗都要優于輪詢,因此當某個目錄inotify可以正常工作時,則該目錄的輪詢進行自動降級,輪詢間隔大幅降低到對CPU基本無影響的程度。

日志順序采集

日志順序性采集是日志采集需要提供的基本功能,也是一個采集的難點,需要考慮如下場景:

  • 適應不同的日志輪轉(rotate)機制:日志輪轉是指當日志滿足一定條件(時間或文件大?。r,需要進行重命名、壓縮等操作,之后創建新的日志文件繼續寫入。另外,不同使用日志庫輪轉文件的格式不盡相同,有的時間結尾,有的數字結尾等。
  • 適應不同的采集路徑配置方式:優秀的日志采集agent并不應該強制限制用戶的配置方式,尤其在指定日志采集文件名時,需要適應不同用戶的配置習慣。不管是精準路徑匹配,還是模糊匹配,例如*.log或*.log*,都不能出現日志輪轉時多收集或者少收集的情況。

為了實現日志文件的順序采集,首先需要定義好文件的唯一標識。我們知道在文件系統中,可以通過dev+inode的組合唯一標識一個文件。文件的move操作雖然可以改變文件名,但并不涉及文件的刪除創建,dev+inode并不會變化,因此通過dev+inode可以非常方便的判斷一個文件是否發生了輪轉。但是dev+inode只能保證同一時刻文件的唯一性,當涉及文件快速刪除創建的時候,前后兩個文件的dev+inode很可能是相同的。因此純粹通過dev+inode判斷輪轉并不可行,iLogtail引入了文件簽名(signature)的概念,使用日志文件的前1024字節的hash作為文件的signature,只有當dev+inode+signature一致的情況下才會認為該文件是輪轉的文件。此外,iLogtail內部也引入了文件輪轉隊列,保證了文件的順序采集。

采集可靠性

iLogtail作為一個可觀測數據基礎采集組件,除了資源、性能外,可靠性也是一項關鍵指標。對于一些異常場景,iLogtail也有充分的設計考慮,保證了在網絡異常、流量突增、進程重啟等場景下依然能夠完成正常的采集任務。

日志處理阻塞

問題描述:iLogtail需要大量部署在不同的業務機器上,運行環境是復雜多變的,應用日志burst寫入、網絡暫時性阻塞、服務端Quota不足、CPU/磁盤負載較高等情況在所難免,當這些情況發生時,很容易造成日志采集進度落后于日志產生進度,此時,iLogtail需要在合理的資源限制下盡可能保留住這些日志,等待網絡恢復或系統負載下降時將這些日志采集到服務器,并且保證日志采集順序不會因為采集阻塞而混亂。

解決思路:

  • iLogtail內部通過保持輪轉日志file descriptor的打開狀態來防止日志采集阻塞時未采集完成的日志文件被file system回收(在文件輪轉隊列中的file descriptor一直保持打開狀態,保證文件引用計數至少為1)。同時,通過文件輪轉隊列的順序讀取保證日志采集順序與日志產生順序一致。
  • 若日志采集進度長時間持續落后于日志產生進度,完全的不回收機制,則很有可能出現文件輪轉隊列會無限增長的情況,進而導致磁盤被寫爆,因此iLogtail內部對于文件輪轉隊列設置了上限,當size超過上限時禁止后續Reader的創建,只有這種持續的極端情況出現時,才會出現丟日志采集的情況。當然,在問題被放大之前,iLogtail也會通過報警的方式,通知用戶及時介入修復問題。

圖片

采集配置更新/進程升級

問題描述:配置更新或進行升級時需要中斷采集并重新初始化采集上下文,iLogtail需要保證在配置更新/進程升級時,即使日志發生輪轉也不會丟失日志。

解決思路:

  • 為保證配置更新/升級過程中日志數據不丟失,在iLogtail在配置重新加載前或進程主動退出前,會將當前所有采集的狀態保存到本地的checkpoint文件中;當新配置應用/進程啟動后,會加載上一次保存的checkpoint,并通過checkpoint恢復之前的采集狀態。
  • 然而在老版本checkpoint保存完畢到新版本采集Reader創建完成的時間段內,很有可能出現日志輪轉的情況,因此新版本在加載checkpoint時,會檢查對應checkpoint的文件名、dev+inode有無變化。

若文件名與dev+inode未變且signature未變,則直接根據該checkpoint創建Reader即可。

若文件名與dev+inode變化則從當前目錄查找對應的dev+inode,若查找到則對比signature是否變化。若signature未變則認為是文件輪轉,根據新文件名創建Reader;若signature變化則認為是該文件被刪除后重新創建,忽略該checkpoint。

進程crash、宕機等異常情況

問題描述:在進程crash或宕機時,iLogtail需要提供容錯機制,不丟數據,盡可能的少重復采集。解決思路:

  • 進程crash或宕機沒有退出前記錄checkpoint的時機,因此iLogtail還會定期將采集進度dump到本地:除了恢復正常日志文件狀態外,還會查找輪轉后的日志,盡可能降低日志丟失風險。

核心優勢 -- 性能及隔離性

圖片

無鎖化設計及時間片調度

業界主流的Agent對于每個配置會分配獨立的線程/go runtime來進行數據讀取,而iLogtail數據的讀取只配置了一個線程,主要原因是:

  • 數據讀取的瓶頸并不在于計算而是磁盤,單線程足以完成所有配置的事件處理以及數據讀取。
  • 單線程的另一個優勢是可以使事件處理和數據讀取在無鎖環境下運行,相對多線程處理性價比較高。
  • iLogtail數據讀取線程可完成每秒200MB以上的數據讀取(SSD速率可以更高)。

但單線程的情況下會存在多個配置間資源分配不均的問題,如果使用簡單的FCFS( First Come First Serve)方式,一旦一個寫入速度極高的文件占據了處理單元,它就一直運行下去,直到該文件被處理完成并主動釋放資源,此方式很有可能造成其他采集的文件被餓死。

因此我們采用了基于時間片的采集調度方案,使各個配置間盡可能公平的調度,防止采集文件餓死的現象發生。iLogtail將Polling以及Inotify事件合并到無鎖的事件隊列中,每個文件的修改事件會觸發日志讀取。每次讀取從上次記錄的偏移位置開始,并嘗試在固定的時間片內將文讀取到EOF處。如果時間片內讀取完畢,則表示事件處理完成,刪除事件;否則,將事件重新Push到隊列尾部,等待下一次調用。

通過以上設計,保證了iLogtail可以高性能的進行數據采集。對比數據可以詳見:https://developer.aliyun.com/article/850614

多租戶隔離

基于時間片的采集調度保證了各個配置的日志在數據讀取時得到公平的調度,滿足了多租戶隔離中基本的公平性,但對于隔離性并未起到幫助作用。例如當部分采集配置因處理復雜或網絡異常等原因阻塞時,阻塞配置依然會進行處理,最終會導致隊列到達上限而阻塞數據讀取線程,影響其他正常配置。為此我們設計了一套多級高低水位反饋隊列用以在不同采集配置間實現讀取、解析、發送各個步驟的有效的協調,為了更好的實現不同配置間隔離性,所以iLogtail會為每個配置創建一組隊列。

  • 多級:iLogtail從采集到輸出總體要經過讀取->解析->發送三個步驟,iLogtail在相鄰步驟間分別設置一個隊列。
  • 高低水位:每個隊列設置高低兩個水位,高水位時停止非緊急數據寫入,只有恢復到低水位時才允許再次寫入。
  • 反饋:在準備讀取當前隊列數據時會同步檢查下一級隊列狀態,下一級隊列高水位則跳過讀取;當前隊列從高水位消費到低水位時,異步通知關聯的前一級隊列。

極端場景處理

對于一些阻塞場景的可靠性也需要考慮,主要包括事件處理、數據讀取邏輯以及數據發送控制三個方面:

  • 事件處理與數據讀取無關,即使讀取關聯的隊列滿也照常處理,這里的處理主要是更新文件meta、將輪轉文件放入輪轉隊列,可保證在配置阻塞的情況下,即使文件輪轉也不會丟失數據。
  • 當配置關聯的解析隊列滿時,如果將事件重新放回隊列尾,則會造成較多的無效調度,使CPU空轉。因此iLogtail在遇到解析隊列滿時,將該事件放到一個專門的blocked隊列中,當解析隊列異步反饋時重新將blocked隊列中的數據放回事件隊列。
  • Sender中每個配置的隊列關聯一個SenderInfo,SenderInfo中記錄該配置當前網絡是否正常、Quota是否正常以及最大允許的發送速率。每次Sender會根據SenderInfo中的狀從隊列中取數據,這里包括:網絡失敗重試、Quota超限重試、狀態更新、流控等邏輯。

核心優勢 -- 插件化擴展能力

圖片

iLogtail進程由兩部分組成,一是C++編寫的主體二進制進程,提供了管控、文件采集、C++加速處理的功能;二是Golang編寫的插件部分,通過插件系統實現了處理能力的擴展以及更豐富的上下游生態支持。

  • 上下游生態:通過插件系統的擴展,目前iLogtail已經支持了眾多數據源的接入,數據源類型覆蓋Log、Metric、Trace,數據源除了文件的采集,還包括了標準協議的支持,例如HTTP、Mysql Binlog、Prometheus、Skywalking、syslog等。數據輸出生態也從SLS逐步擴展到Kafka、gPRC等,未來也會支持ClickHouse、ElasticSearch等。
  • 處理能力擴展:iLogtail采用PipeLine的設計,通過Input插件采集到數據,會經過采集配置中設定的Processor處理,之后經過Aggregator插件打包,最終通過Flusher發送到日志存儲系統。數據處理環境包含數據切分、字段提取、過濾、數據增強等環節,所有插件可以自由組合。此外,針對于正則、Json、分隔符等特定格式,iLogtail還提供了C++加速能力。
  • 快速迭代:開發者也可以根據自己的需求,定制開發相應的插件。因為每個插件相互獨立,所以開發者只需要按照接口規范開發即可,入手門檻較低。以Processor插件接口為例,只需要實現以下接口,即可快速提供一個處理插件。
// Processor also can be a filter
type Processor interface {
// Init called for init some system resources, like socket, mutex...
Init(Context) error

// Description returns a one-sentence description on the Input
Description() string

// Apply the filter to the given metric
ProcessLogs(logArray []*protocol.Log) []*protocol.Log
}

核心優勢 -- K8s采集能力

作為容器編排領域的標準,Kubernetes(K8s)應用的場景越來越廣泛,iLogtail 在K8s下也提供了完備的采集能力。

部署模式

圖片

在Kubernetes場景下,iLogtail主要常用的有3種工作模式:

  • DaemonSet方式

模式:在K8s的每個node上部署一個iLogtail,由該iLogtail采集節點上所有容器的日志到日志系統。

優點:運維簡單、資源占用少、支持采集容器的標準輸出和文本文件、配置方式靈活。

缺點:iLogtail需要采集節點上所有容器的日志,各個容器之間的隔離性較弱,且對于業務超級多的集群可能存在一定的性能瓶頸。

  • Sidecar方式:

模式:一個POD中伴隨業務容器運行一個iLogtail容器,用于采集該POD中業務容器產生的日志。

優點:Sidecar方式為每個需要采集日志的容器創建一個Sidecar容器,多租戶隔離性好、性能好。

缺點:資源占用較多。

  • Deployment方式:

模式:當業務容器用PVC掛載日志目錄或者需要全局連接API Server獲取K8s元數據等場景,可以選擇在集群中部署一個單副本的iLogtail Deployment進行數據采集。

采集原理

圖片

自K8s問世以來,docker運行時一直是主流,但是隨著K8s將dockershim移除,K8s官方推薦優先選擇containerd 或 CRI-O作為容器運行時。docker份額目前雖然還是主流但是已經在呈逐年下降的趨勢,contailerd、cri-o地位逐年都在快速上升。因此,從K8s支持全面性上,iLogtail需要支持主流的運行時,目前已經支持Docker和Containerd兩種容器引擎的數據采集。K8s提供了強大的運維部署、彈性伸縮、故障恢復能力,極大地便利了分布式系統的開發和管理,然而這也帶來了可觀測數據采集難度的增大。特別是一些短Job場景,比如一些機器學習的訓練任務,生命周期只有幾分鐘甚至幾秒,如何快速準確地發現所需要采集的容器至關重要。

  • 容器自動發現與釋放

iLogtail通過訪問位于宿主機上容器運行時(Docker Engine/ContainerD)的sock獲取容器信息。

通過監聽Docker Event及增量獲取機制,及時感知容器新增與釋放。

  • 容器上下文信息獲取

容器層級信息:容器名、ID、掛載點、環境變量、Label

K8s層級信息:Pod、命名空間、Labels。

  • 容器過濾及隔離性:基于容器上下文信息,提供采集容器過濾能力,可以將不同采集配置應用到不同的采集容器上,既可以保證采集的隔離性,也可以減少不必要的資源浪費。
  • 元信息關聯:基于容器上下文信息和容器環境變量,提供在日志中富化K8s元信息的能力。
  • 采集路徑發現

標準輸出:iLogtail可以根據容器元信息自動識別不同運行時的標準輸出格式和日志路徑,不需要額外手動配置。

容器內文件:對于overlay、overlay2的存儲驅動,iLogtail可以根據日志類型及容器運行時自動拼接出采集路徑,簡單高效。

此外,對于CICD自動化部署和運維程度要求較高的用戶,iLogtail還提供了K8s原生支持,支持通過CRD的方式進行采集配置管理。目前該功能僅企業版可用,后續會逐步開源。該方案中,iLogtail K8s新增了一個CustomResourceDefinition擴展,名為AliyunLogConfig。同時開發了alibaba-log-controller用于監聽AliyunLogConfig事件并自動創建iLogtail的采集配置,進而完成日志采集工作。

企業版與社區版

差異比較

圖片

iLogtail開源后,目前會有兩個版本分支。

  • 企業版:可以從阿里云SLS官方下載到。主要服務于SLS。
  • 社區版:從GitHub倉庫,release頁下載。

iLogtail開源,秉承技術共享與開發者共建的原則,所以核心功能是完全開源的,因此可以認為在核心采集能力上(包括采集處理功能、性能、可靠性等)與企業版是完全對標的。企業版相對于社區版的優勢主要在于阿里云基礎能力的集成上。

  • 作為阿里云SLS官方標配采集器,與SLS無縫集成

SLS平臺為iLogtail提供了強大的管控能力,及豐富的API支持。

SLS提供了對于Log、Metric、Trace的統一存儲分析能力,使用iLogtail企業版將數據采集到SLS,可以更好的構建各類上層應用。借助SLS可以實現日志上下文預覽、Exactly Once等高級特性。

借助SLS平臺,可以實現第三方Agent的管控能力。例如,未來SLS也會跟DeepFlow進行深度集成。

SLS作為可觀測平臺,既可以承載可觀測數據存儲分析的功能,也可以承載流量管道的作用,可以簡化架構部署。

CloudLens For SLS為iLogtail采集狀態、數據流量監控提供了便捷的手段。

支持的操作系統、系統架構更加豐富,企業版支持Windows系統跟ARM架構。

  • 阿里云服務加持

自動化安裝部署能力更高,借助阿里云的運維服務,可以實現iLogtail批量自動安裝。

與阿里云ECS、ACK、ASK、EMR等高度集成,可以一鍵安裝部署,采集數據可以快速接入,內置分析。

  • 企業版服務上的保證

SLS官方提供企業應用場景下最全最及時的文檔/最佳實踐支持

及時的專家服務(工單、群支持)與需求承接。

大規模/復雜場景專業化支持:比如K8s短job,單節點大流量日志、大規模采集配置等。

基于SLS的云原生可觀測平臺

圖片

SLS提供了對于Log、Metric、Trace的統一存儲分析能力,并且也可以承載流量管道作用,具備強大的數據加工能力,基于SLS可以快速構建出一套云原生可觀測平臺。智能告警中樞、智能算法服務近一步增強了該平臺的智能化水平。用戶可以基于此平臺,便捷高效的構建各類ITOps、DevOps、SecOps、BusinessOps上層應用。iLogtail企業版作為SLS官方標配官方標配采集器,在SLS數據接入領域充當著排頭兵的指責,承載了大量的接入流量。

開源社區展望

圖片

技術共享一直是iLogtail秉承的理念,我們期望和歡迎更多開發者參與共建。我們希望跟開發者一起,將iLogtail的上下游生態建的更豐富。為了提升開發者的體驗,我們也會持續的改善iLogtail核心能力跟框架能力,進一步降低開發門檻,豐富測試體系建設,為開發者提供必要的技術支持。如何高效管理采集配置一直是可觀測采集器的痛點,為此我們也會在不久將來開源服務端全局管控方案及iLogtail監控方案,也歡迎開發者參與共建,一起打造統一的管控生態。最后,OpenTelemetry作為可觀測領域的標準,iLogtail也將積極擁抱。K8s原生體驗也是我們追求的方向,我們也有計劃推出iLogtail Operator。

關于iLogtail

iLogtail作為阿里云SLS提供的可觀測數據采集器,可以運行在服務器、容器、K8s、嵌入式等多種環境,支持采集數百種可觀測數據(日志、監控、Trace、事件等),已經有千萬級的安裝量。目前,iLogtail已正式開源,歡迎使用及參與共建。

  • GitHub: https://github.com/alibaba/ilogtail
  • 社區版文檔:https://ilogtail.gitbook.io/ilogtail-docs/about/readme
  • 企業版官網:https://help.aliyun.com/document_detail/65018.html?
責任編輯:武曉燕 來源: 阿里開發者
相關推薦

2021-12-09 15:30:12

采集器開源-iLogtail

2011-06-21 10:33:21

2010-02-23 22:04:06

2012-12-13 10:55:48

OpenStackEMC

2017-05-17 14:11:38

NFVOPNFV云計算

2012-12-13 10:30:35

OpenStack開源EMC

2018-08-06 15:21:33

云計算

2018-12-12 17:37:32

華泰人壽開源IT變革

2011-03-07 17:26:14

2022-04-29 22:38:57

開源

2022-06-09 17:40:48

開源

2019-06-03 16:00:46

2016-06-15 10:22:54

開源SaaS寄云

2021-12-24 08:25:02

開源商業化云化

2020-12-20 19:19:01

騰訊開源項目

2022-06-17 18:32:54

開源大數據數據調度

2023-06-05 18:38:41

英特爾

2022-03-09 14:41:19

青云科技容器KubeSphere
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 草樱av | 日批免费在线观看 | 久久精品97 | 午夜在线观看免费 | 免费高潮视频95在线观看网站 | 国产精品久久久久久久久久久久久 | 在线视频一区二区三区 | 日韩视频免费看 | 国产精品亚洲一区 | 一级欧美 | 最新av中文字幕 | 日韩免费一区二区 | 日韩国产中文字幕 | 天天夜夜操 | 欧美三级在线 | 国产精品免费在线 | 欧美激情一区二区三区 | 精品国产一区二区三区久久久四川 | 精品av| 视频一区在线 | 天久久 | 一级欧美黄色片 | 在线视频一区二区 | 日韩欧美精品在线 | 激情欧美一区二区三区 | 欧美日韩激情 | 91久久精品一区二区三区 | 国产一区二区三区四区 | 精品久久精品 | 一区二区在线免费观看视频 | 99热播精品 | 在线观看黄色 | 国产一二三区在线 | 亚洲国产精品视频 | 久久中文网 | 国产精品高潮呻吟久久 | 欧美成年视频 | 欧美日韩在线一区二区三区 | 欧美精品久久久久 | 国产在线精品一区二区 | 国产一级在线 |