引用 轉(zhuǎn)載 請(qǐng)注明出處
1969年夏天的貝爾實(shí)驗(yàn)室,Ken 和Dennis那個(gè)舉動(dòng)引起的蝴蝶效應(yīng)是如此巨大。他們催生了偉大開源系統(tǒng)UNIX,此后各種開源應(yīng)運(yùn)而生并蝗。日志管理系統(tǒng)是開源歷史偉大的分支。而今天總有那些以開源為名,做著違背開源價(jià)值事情洋丐。整理遇到的開源日志管理軟件記錄下來(lái),助大家少踩坑挥等。
日志是系統(tǒng)監(jiān)控和分析重要數(shù)據(jù)來(lái)源友绝。大部分軟件日志是系統(tǒng)運(yùn)維和監(jiān)控的唯一來(lái)源。那么肝劲,開源軟件中有哪些提升日志管理軟件和項(xiàng)目哪些迁客?又有哪些重量級(jí)的產(chǎn)品哪郭宝?本文會(huì)解決以上問(wèn)題。
日志包括系統(tǒng)日志掷漱、應(yīng)用程序日志和安全日志粘室。每條日志都記載著時(shí)間戳、主機(jī)名卜范、使用者及操作行為等相關(guān)的描述衔统,系統(tǒng)運(yùn)維和開發(fā)人員可以通過(guò)日志了解服務(wù)器軟硬件信息、檢查配置過(guò)程中的錯(cuò)誤及錯(cuò)誤發(fā)生的原因海雪。經(jīng)常分析日志可以了解服務(wù)器的負(fù)荷锦爵,性能安全性,及時(shí)分析問(wèn)題喳魏、追查錯(cuò)誤根源棉浸。
網(wǎng)上一個(gè)有意思的日志管理圖。 與2004年比起來(lái)刺彩,2014年日志統(tǒng)一采集和管理大幅提升了用戶的好感度迷郑。那么,好感度從哪里來(lái)哪创倔?現(xiàn)在日志管理有哪些構(gòu)成的哪嗡害?一個(gè)成熟日志管理系統(tǒng)用于支持運(yùn)維和系統(tǒng)診斷包括如下功能:
用戶管理 訪問(wèn)權(quán)限
通知-告警-郵件
配置管理
日志緩存
數(shù)據(jù)庫(kù)管理
日志管理是日志接入、處理畦攘、存儲(chǔ)和可視化的過(guò)程霸妹。如日志數(shù)據(jù)流程圖每個(gè)過(guò)程都涉及到一些開源軟件,下面分別說(shuō)明知押。
1. 數(shù)據(jù)接入
數(shù)據(jù)接入也是數(shù)據(jù)采集叹螟。采集源包括系統(tǒng)日志、應(yīng)用日志台盯、移動(dòng)App日志等罢绽。
采集是對(duì)日志進(jìn)行過(guò)濾、轉(zhuǎn)換静盅、聚合良价、分析、路由蒿叠、緩存過(guò)程明垢,完成采集后非結(jié)構(gòu)化日志變成結(jié)構(gòu)化數(shù)據(jù),用于持久化和數(shù)據(jù)可視化市咽,用于支持運(yùn)維和故障診斷等痊银。
采集方式分為:
侵入式日志采集。它的優(yōu)點(diǎn)和缺點(diǎn)都很明顯施绎。采集邏輯植入到源代碼中溯革,因?yàn)椴皇且环N普適的采集行為泌射。系統(tǒng)若屬于簡(jiǎn)單、單一的服務(wù)系統(tǒng)鬓照,這是個(gè)選擇。采集邏輯根據(jù)業(yè)務(wù)定制化孤紧,后續(xù)日志處理流程簡(jiǎn)化豺裆,和減少網(wǎng)絡(luò)或磁盤IO。
非侵入式采集号显。 從使用場(chǎng)景和解決方案都是更通用臭猜。開源日志管理系統(tǒng)都是基于該方案實(shí)施和部署。
我們列舉的軟件都是和應(yīng)用無(wú)關(guān)押蚤。也就是使用非侵入式采集蔑歌。數(shù)據(jù)采集現(xiàn)今發(fā)展很蓬勃,下文列舉熱門又好用的采集工具揽碘。
logstash 是大名鼎鼎的ELK三劍客之一的L次屠。生態(tài)構(gòu)建非常好,積累大量用戶雳刺,社區(qū)也非辰僭睿活躍,新特征和插件可選擇性很多掖桦。
Filebeat 是logstash輕量級(jí)版本本昏。雖非孿生,但是部署方便枪汪、性能優(yōu)化涌穆、資源消耗少,而且處理后的數(shù)據(jù)雀久,可以輸出到logstash宿稀。存儲(chǔ)層也可以是redis或者kafka。
flume-ng 隨著流處理崛起岸啡,它還會(huì)更好原叮。
fluentd 采集層輸出格式化(json)數(shù)據(jù),便于后續(xù)環(huán)境使用巡蘸,而且保持了不錯(cuò)的性能奋隶。
上述軟件滿足了采集層的基本功能,僅列舉特色功能悦荒。
2. 數(shù)據(jù)可視化BI工具
商業(yè)化的BI呈現(xiàn)和分析工具在大數(shù)據(jù)時(shí)代大行其道唯欣。在開源領(lǐng)域也有一股清流,為我們BI探索提供實(shí)用化實(shí)踐機(jī)會(huì)搬味。它是日志管理系統(tǒng)和用戶溝通的橋梁境氢,當(dāng)前又有哪些優(yōu)秀的開源可視化工具哪蟀拷?
整理出來(lái)可視化工具對(duì)比:
superset apache的頂級(jí)開源項(xiàng)目,功能強(qiáng)大的可視化工具萍聊。隨處于孵化節(jié)點(diǎn)问芬,依然吸引大批粉絲。一旦畢業(yè)后寿桨,可預(yù)見會(huì)非常流行此衅。
redash 社區(qū)版本功能依然很強(qiáng)大,企業(yè)商業(yè)會(huì)需要付費(fèi)亭螟。
metabase 即使非技術(shù)人員也有很好的用戶體驗(yàn)挡鞍。
kibana ELK三件套之一。廣泛的應(yīng)用場(chǎng)景预烙。
grafana 如果數(shù)據(jù)源是關(guān)系數(shù)據(jù)庫(kù)墨微,grafana 是很好支持場(chǎng)景。
值得慶幸的是扁掸,大量的開源數(shù)據(jù)可視化工具能夠從空間和表格中獲取到獨(dú)特?cái)?shù)據(jù)翘县,并通過(guò)使用高級(jí)圖形和圖表向用戶呈現(xiàn)信息。讓數(shù)據(jù)分析變得容易谴分,用戶更專注數(shù)據(jù)分析和挖掘?qū)用妗?/p>
3. 全功能日志管理工具
上文從數(shù)據(jù)采集和數(shù)據(jù)可視化2個(gè)角度對(duì)比開源的工具集合炼蹦。構(gòu)建日志管理系統(tǒng)需要選型,全功能日志管理工具幫助我們解決選項(xiàng)的難題狸剃。我們稱它是日志管理工具界的泥石流
掐隐。讓我們看看都包括哪些?
ELK 日志管理任誰(shuí)也繞不過(guò)它钞馁。我們只需要根據(jù)需要虑省,增加和修改部分組件就可以滿足功能。
flume-ng + kafka + storm 分布式存儲(chǔ)+ 實(shí)時(shí)性流處理 滿足大部分用戶需求僧凰。
skyEye 相對(duì)小眾的全功能工具探颈。 支持不同類型的存儲(chǔ)
srcibe fb開源的部署靈活的分布式處理系統(tǒng)
chukwa 優(yōu)點(diǎn)在于計(jì)算
后記
日志管理隨不同業(yè)務(wù)需求工具會(huì)不同,文中涉及開源軟件解決大部分日志管理系統(tǒng)的需求場(chǎng)景训措。