web_log_analyseWeb 故障排除與性能優(yōu)化工具
web_log_analyse 是一個(gè)旨在基于 Web 日志進(jìn)行故障排除和性能優(yōu)化的工具,這不是一般所說(shuō)的日志分析/統(tǒng)計(jì)解決方案,它不側(cè)重于通常的 PV、UV 等展示,而是在指定時(shí)間段內(nèi)提供細(xì)粒度(最小分鐘級(jí)別)的異常定位和性能分析。
環(huán)境依賴:
Python 3.4+
pymongo-3.7.2+
MongoDB-server 3.4+
功能
- 提供統(tǒng)一的日志分析入口:經(jīng)由此入口,可查看站點(diǎn)在所有server上產(chǎn)生的日志的匯總分析;亦可根據(jù)
時(shí)間段和server兩個(gè)維度進(jìn)行過(guò)濾 - 支持對(duì)
request_uri,ip和response_code三大類(lèi)進(jìn)行分析;每一類(lèi)又基于請(qǐng)求數(shù)、響應(yīng)大小、響應(yīng)時(shí)間三個(gè)維度進(jìn)行分析。另外不同子項(xiàng)又各有特點(diǎn) -
request_uri分析能直觀展示哪類(lèi)請(qǐng)求數(shù)量多、哪類(lèi)請(qǐng)求耗時(shí)多、哪類(lèi)請(qǐng)求占流量;另外可展示某一類(lèi)請(qǐng)求在不同時(shí)間粒度里(minute, ten_min, hour, day)各指標(biāo)隨時(shí)間的分布變化;也可以針對(duì)某一 uri_abs 分析其不同 args_abs 各指標(biāo)的分布 - IP 分析將所有請(qǐng)求分為3種來(lái)源(from_cdn/proxy, from_reverse_proxy, from_client_directly),三種來(lái)源各自展示其訪問(wèn)量前 N 的 IP 地址;并且可展示某一 IP 訪問(wèn)的各指標(biāo)隨時(shí)間的分布;也可針對(duì)某一 IP 分析其產(chǎn)生的不同 uri_abs 各指標(biāo)的分布
特點(diǎn)
- 核心思想: 對(duì)request_uri進(jìn)行抽象歸類(lèi),將其中變化的部分以 “*” 表示,這樣留下不變的部分就能代表具體的一類(lèi)請(qǐng)求。實(shí)際上是換一種方式看待日志,從 “以具體的一行日志文本作為最小分析單位” 抽象上升到 “以某一功能點(diǎn),某一接口或某一模塊最為最小分析單位”
- 兼容plaintext和json格式的日志內(nèi)容
- 配置方便,不需要寫(xiě)正則。只要將nginx中定義的log_format復(fù)制到config文件中即可
- 通過(guò)4分位數(shù)概念以實(shí)現(xiàn)對(duì)
響應(yīng)時(shí)間和響應(yīng)大小更準(zhǔn)確的描述,因?yàn)閷?duì)于日志中的響應(yīng)時(shí)間,算數(shù)平均值的參考意義不大 - 支持定制抽象規(guī)則,可靈活指定請(qǐng)求中的某些部分是否要抽象處理以及該如何抽象處理
- 高效,本著誰(shuí)產(chǎn)生的日志誰(shuí)處理的思想,日志分析腳本log_analyse要在web服務(wù)器上定時(shí)運(yùn)行(有點(diǎn)類(lèi)似分布式),因而log_analyse的高效率低資源也是重中之重。經(jīng)測(cè)試,在筆者的服務(wù)器上(磁盤(pán):3*7200rpm RAID5,千兆局域網(wǎng)),處理速度在20000行/s~30000行/s之間
評(píng)論
圖片
表情
