【這是一猿小講的第?68?篇原創(chuàng)分享】
場(chǎng)景一:頁面提示超時(shí)了中捆,到底是哪個(gè)服務(wù)響應(yīng)慢了呢?
場(chǎng)景二:系統(tǒng)當(dāng)前的處理能力如何坊饶,TPS泄伪、QPS 指標(biāo)是多少呢?
場(chǎng)景三:線上服務(wù)部署在多臺(tái)機(jī)器上匿级,你挨個(gè)登錄機(jī)器去查日志蟋滴,感覺煩不煩?
面對(duì)諸如上面的場(chǎng)景痘绎,如果你正在糾結(jié)津函,那今天羅列推薦的這些輪子,多少都能解你所惑孤页。
0. 監(jiān)控天下三分
先帝創(chuàng)業(yè)未半而中道崩殂尔苦,今監(jiān)控天下三分。如下圖所示行施,監(jiān)控的天下被劃分為基于 Tracing(調(diào)用鏈)監(jiān)控允坚、基于Metrics(指標(biāo))監(jiān)控、基于Logging(日志) 的監(jiān)控蛾号。
1.?基于 Tracing 的監(jiān)控
基于 Tracing 的監(jiān)控稠项,背后對(duì)應(yīng)的是追蹤系統(tǒng),也有人叫調(diào)用鏈系統(tǒng)鲜结,做應(yīng)用性能監(jiān)控(APM)這塊是必不可少的展运。
如果你想知道一次服務(wù)調(diào)用,中間經(jīng)過了哪些環(huán)節(jié)精刷?如果你想了解一次服務(wù)調(diào)用過程中各個(gè)環(huán)節(jié)的耗時(shí)乐疆?如果... ... 那不妨了解了解下面的這些輪子。
Skywalking贬养,國(guó)產(chǎn)的優(yōu)秀 APM 組件挤土。是一個(gè)對(duì) Java 分布式應(yīng)用的業(yè)務(wù)運(yùn)行情況進(jìn)行追蹤、告警和分析的系統(tǒng)误算。
開源地址:https://github.com/apache/skywalking
Zipkin仰美,是由 Twitter 公司開源的分布式的跟蹤系統(tǒng)。主要包括:數(shù)據(jù)的收集儿礼、存儲(chǔ)咖杂、查找和展現(xiàn)。
開源地址:https://github.com/openzipkin/zipkin
Pinpoint蚊夫,由韓國(guó)人開源的分布式跟蹤組件诉字,是一款對(duì) Java 編寫的大規(guī)模分布式系統(tǒng)的 APM 工具。
開源地址:https://github.com/naver/pinpoint
貼一下效果圖,不知能否勾起你心中的火熱壤圃。
2.?基于 Metrics 的監(jiān)控
基于 Metrics 的監(jiān)控陵霉,背后對(duì)應(yīng)的是度量(指標(biāo)監(jiān)控)系統(tǒng)。
如果你想知道機(jī)器在某段時(shí)間內(nèi)的 CPU 使用率伍绳、系統(tǒng)負(fù)載踊挠;如果你想知道應(yīng)用在某段時(shí)間內(nèi)的 HTTP 請(qǐng)求訪問量;如果你想知道 MySQL 的連接數(shù)冲杀、QPS效床;如果... ... 那不妨盡情的了解了解下面的這些輪子。
Prometheus + Grafana权谁,普羅米修斯邂逅格拉法納就成了監(jiān)控界的 PGOne剩檀,宣稱使用領(lǐng)先的開源監(jiān)控解決方案去增強(qiáng)指標(biāo)監(jiān)控功能,不過敲摸試了一下旺芽,效果也確實(shí)強(qiáng)大沪猴。
學(xué)習(xí)地址:https://github.com/prometheus
Influxdata,定位也是一個(gè)強(qiáng)大的實(shí)時(shí)監(jiān)控系統(tǒng)甥绿。大體流程是:telegraf 收集監(jiān)控的指標(biāo)字币;然后交給 InfluxDB 進(jìn)行存儲(chǔ)则披;chronograf 負(fù)責(zé)從 InfluxDB 查詢數(shù)據(jù)展示共缕;kapacitor 負(fù)責(zé)監(jiān)控報(bào)警。
學(xué)習(xí)地址:https://github.com/influxdata
Grafana士复,格拉法納專業(yè)負(fù)責(zé)展示图谷,提供漂亮的UI。不過她可以跟上面的普羅米修斯 Prometheus阱洪、InfluxDB 任性組合搭配便贵,這倒是給我們提供一種擴(kuò)展的可能性,我們只需要把要監(jiān)控的指標(biāo)放進(jìn) InfluxDB冗荸,再搭上 Grafana承璃,那效果堪稱完美!
學(xué)習(xí)地址:https://github.com/grafana
Skywalking蚌本,在上面基于 Tracing 監(jiān)控的部分已經(jīng)提到了盔粹,看來是能者多勞了,既能做調(diào)用鏈監(jiān)控程癌,又能基于指標(biāo)進(jìn)行監(jiān)控舷嗡。
學(xué)習(xí)地址:https://github.com/apache/skywalking
Elastic,估計(jì)很多人都聽說過它旗下的 ELK嵌莉,也就是 ElasticSearch + Logstash + Kibana 的組合进萄。由于后來推出了一系列的專門用于采集數(shù)據(jù)的 Beats,造就了無限的可能性,當(dāng)然完成 Metrics 指標(biāo)采集監(jiān)控也不在話下中鼠。
學(xué)習(xí)地址:https://www.elastic.co/cn/products/infrastructure-monitoring
肆意貼一張 Grafana ?的效果圖可婶,看看你是否鐘愛這一款?
3.?基于 Logging 的監(jiān)控
基于 Logging 的監(jiān)控兜蠕,說白了也就是日志監(jiān)控扰肌。
我們都知道,在微服務(wù)盛行的今天熊杨,服務(wù)散落部署在各個(gè)節(jié)點(diǎn)曙旭,導(dǎo)致排查定位問題需要連續(xù)切換 N 臺(tái)機(jī)器,操作相當(dāng)繁瑣晶府,不知道你有沒有同感桂躏。如果你也有此同感,不妨了解了解下面的技術(shù)輪子川陆。
日志監(jiān)控的整體設(shè)計(jì)思路大多為:日志采集剂习、日志存儲(chǔ)、日志分析及報(bào)警较沪,如果日志量再大點(diǎn)鳞绕,那就來一個(gè)對(duì)列(kafka、redis尸曼、RabbitMQ等)作為緩沖们何。
Elastic,在上面基于指標(biāo)監(jiān)控的部分已經(jīng)提到了它控轿,其實(shí)由于采集數(shù)據(jù)的 Beats 下有一款 FileBeat 專門采集日志文件冤竹,然后把采集的日志存儲(chǔ)到 ElasticSearch,接下來用 Kibana 進(jìn)行分析展示茬射,這樣一套輪子組合讓你查詢?nèi)罩静辉匐y(小聲的說一下鹦蠕,貌似它也支持 APM 應(yīng)用性能監(jiān)控,三分天下而它是交匯的覆蓋區(qū)域)在抛。
入門地址:https://www.elastic.co/cn/products/log-monitoring
Graylog钟病,一個(gè)集日志歸集、分析刚梭、展現(xiàn)和預(yù)警工具肠阱,而且是基于 Java 開發(fā),你心不心動(dòng)望浩?有沒有想躍躍欲試辖所?
入門地址:https://www.graylog.org
Rsyslog,一款用于Linux系統(tǒng)以通過TCP/UDP協(xié)議轉(zhuǎn)發(fā)或接收日志消息的開源工具磨德。
入門地址:https://www.rsyslog.com
Flume缘回,一款用 Java 開發(fā)的采集 agent吆视,讓 Java 猿二次包裝開發(fā)不是問題。
入門地址:http://flume.apache.org/
4. 多說兩句
說了這么多酥宴,輪子千萬款啦吧,感覺總有一款適合你,或許有了輪子的助力拙寡,會(huì)讓你事半功倍授滓,騰出更多時(shí)間沖咖啡!
不過話又說回來肆糕,紙上得來終覺淺般堆,絕知此事要躬行;縱然輪子千萬款诚啃,唯有實(shí)踐才是硬道理淮摔!
另外本次談及的部分技術(shù)輪子的用法,在之前的系列文章中都曾提及始赎,感興趣的可以看看往期的文章和橙。
好了,這篇分享都到這兒吧造垛,希望你們能夠喜歡魔招,如果感覺有點(diǎn)意思,無需贊賞五辽,蕓蕓眾生办斑,相遇相識(shí)便是緣,不妨動(dòng)動(dòng)手指轉(zhuǎn)發(fā)分享一下吧奔脐。
歡迎關(guān)注微信公眾號(hào)“一猿小講”了解更多精彩分享俄周。