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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

全方位的开源监控工具链介绍

發(fā)布時間:2024/3/24 编程问答 66 豆豆
生活随笔 收集整理的這篇文章主要介紹了 全方位的开源监控工具链介绍 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? ? ? ?說到監(jiān)控現(xiàn)在最火的是全鏈路監(jiān)控(服務調(diào)用+HTTP調(diào)用+數(shù)據(jù)源訪問+MQ鏈路的監(jiān)控),但我認為這是狹義的全鏈路監(jiān)控,廣義的概念應該不僅僅指APM(Appliation Perfance? Manager & Monitor),還包括Loggong(系統(tǒng)日志、業(yè)務日志、框架日志)、Mertic(指標或者度量)、Trancing(追蹤:覆蓋微服務,存儲,中間件)。而我今天要介紹的是全方位的開源監(jiān)控工具鏈,為什么是全方位,就是比廣義的全鏈路監(jiān)控還要多,包括前端監(jiān)控(用戶行為監(jiān)控)、壓測監(jiān)控、DevOps監(jiān)控等等。

? ? ? ?關(guān)于一體化性能監(jiān)控工具的介紹,也可以支持我的在線錄播課《性能測試核心知識解惑》(當中的性能監(jiān)控有涉及到以下部分工具):https://edu.csdn.net/course/detail/31649

一、前端監(jiān)控

? ? ? ?開源的前端監(jiān)控產(chǎn)品很少,我今天推薦的是zanePerfor,我們一直在用,確實挺好用的(在這里給開發(fā)者打打廣告,使用的人多了開源項目才能成長),具有如下功能:

1、瀏覽器端(WEB)

  • 頁面級的性能上報(多頁面 || 單頁面應用程序通用)
  • 頁面AJAX性能上報
  • 頁面所有加載資源性能上報(圖片,js,css)
  • 頁面所有錯誤信息上報(js,css,ajax)

2、微信小程序端

  • path路徑對應的AJAX性能上報
  • 小程序錯誤信息上報(js,ajax,img)
  • 用戶設備信息及其網(wǎng)絡信息上報

3、后端界面展示功能(web,小程序通用)

  • 統(tǒng)計每分鐘應用的PV,UV,IP信息,統(tǒng)計每天的PV,UV,IP,跳出率,用戶訪問平均深度
  • 統(tǒng)計實時和每天的應用top最高訪問排行,跳出率最高排行
  • 統(tǒng)計實時和每天的全國省份流量熱力圖
  • 統(tǒng)計每個用戶每次訪問的行為軌跡

源碼地址:https://github.com/wangweianger/zanePerfor

二、 APM監(jiān)控

? ? ? ?我要推薦的是SkyWalking(國人開發(fā)的,得支持),這是一款開源的應用性能監(jiān)控系統(tǒng),包括指標監(jiān)控,分布式追蹤,分布式系統(tǒng)性能診斷。專為微服務、云本機架構(gòu)和基于容器(Docker、K8s、Mesos)架構(gòu)而設計。

其架構(gòu)如下:?

?

?以下是監(jiān)控效果圖:

項目官網(wǎng):https://skywalking.apache.org/zh/

源碼地址:https://github.com/apache/skywalking

三、JMX監(jiān)控

? ? ? ?一般我們運行Java項目都會涉及到JMX的監(jiān)控,本身JDK自帶有的工具jconsole.exe就能完成,很多開源監(jiān)控平臺如Zabbix、open-falcon都有相關(guān)的監(jiān)控插件,除此之外還有一些很流行的JMX監(jiān)控組件如Jolokia、Jmxtrans,這些組件與其他工具組合就能構(gòu)建出Java監(jiān)控平臺,我這里推薦的是Jmxtrans + Influxdb + Grafana組合,因為我自己用的比較多,相對比較順手。

? ? ? ?這種方式獲取的監(jiān)控指標是錄活的,界面展現(xiàn)也是自由配置的,最主要是免費輕量級的,監(jiān)控效果如下:

具體使用方式,參見我的另一篇文章:?https://smooth.blog.csdn.net/article/details/90399528

源碼地址:https://github.com/jmxtrans/jmxtrans

四、服務器監(jiān)控

? ? ? ?關(guān)于服務器監(jiān)控,主要指的是OS(操作系統(tǒng))、Docker等環(huán)境監(jiān)控,主要應用于運維監(jiān)控方面(包括CPU、內(nèi)存、進程、磁盤、網(wǎng)絡的監(jiān)控),這方面的開源平臺也挺多,比如Zabbix、open-falcon。但這里我還是推薦用輕量級的數(shù)據(jù)采集組件Telegraf,可以組合搭配的方式為 Telegraf + Influxdb + Grafana,由于Telegraf有Linux、Windows、Docker的運行模式,所以可以廣泛的采集多種服務器中的指標數(shù)據(jù)。

Linux監(jiān)控效果圖

Windows監(jiān)控效果圖

Docker監(jiān)控效果圖

Telegraf可以采集的數(shù)據(jù)是非常多樣的,可以見?https://github.com/influxdata/telegraf/tree/master/plugins/inputs

另外如果覺得要配置以上漂亮的面板很麻煩,那你可以到grafana的官網(wǎng)去下載面板模板,自己再進行修改調(diào)整也是可以的:https://grafana.com/grafana/dashboards?collector=Telegraf

源碼地址:https://github.com/influxdata/telegraf

五、數(shù)據(jù)庫監(jiān)控

? ? ? ?開源的數(shù)據(jù)庫監(jiān)控工具或平臺其實也不多,因為數(shù)據(jù)庫產(chǎn)品太多太復雜了,涉及到不同的數(shù)據(jù)庫(包括Nosql)用不同的采集組件就已經(jīng)讓人崩潰了。不過幸運的是上面的Telegraf組件就很強大,它可以監(jiān)控除Oracle以外的大部分常用數(shù)據(jù)庫,如Mysql、SQL Server、Postgresql、Mongodb、Redis、CouchDB等。以下就舉例Postgresql和Redis的監(jiān)控效果圖:

? ? ? ?前面說了Telegraf無法采集Oracle的監(jiān)控數(shù)據(jù),那么對于Oracle的監(jiān)控難道就沒有好的工具了(這里指的是開源的,不包括大量成熟的Oracle監(jiān)控工具如Spotlight On Oracle,另外像不開源但卻是免費的TreeSoft也能實現(xiàn)簡單的監(jiān)控)?嗎?答案是否定的,既然是開源,只要你愿意去探索就無所不能。這里可以嘗試用 Telegraf + InfluxDB + Grafana + Python 的方式來實現(xiàn),效果圖如下:

具體如何實現(xiàn)Oracle監(jiān)控,可以參考網(wǎng)上的一篇文章:?https://blog.csdn.net/zuozewei/article/details/89042921

Telegraf_mysql 監(jiān)控配置:https://github.com/influxdata/telegraf/tree/master/plugins/inputs/mysql

Telegraf_SqlServer 監(jiān)控配置:https://github.com/influxdata/telegraf/tree/master/plugins/inputs/sqlserver

Telegraf_Postgresql?監(jiān)控配置:https://github.com/influxdata/telegraf/tree/master/plugins/inputs/postgresql

https://github.com/influxdata/telegraf/tree/master/plugins/inputs/postgresql_extensible

Telegraf_Mongodb 監(jiān)控配置:https://github.com/influxdata/telegraf/tree/master/plugins/inputs/mongodb

Telegraf_Redis?監(jiān)控配置:https://github.com/influxdata/telegraf/tree/master/plugins/inputs/redis

六、CI/CD監(jiān)控

? ? ? ?現(xiàn)在最流行的話題是DevOps,這個方面的話題太高大上,涉及到監(jiān)控也是很難定義,但是對于CI/CD過程涉及的Jenkins我們是可以監(jiān)控的,比如采用 Jenkins_InfluxDB_Plugin + Influxdb + Grafana 組合方式來采集Jenkins的構(gòu)建數(shù)據(jù),并進行視圖分析:

?

Jenkins_Influxdb插件介紹:https://wiki.jenkins.io/display/JENKINS/InfluxDB+Plugin

Jenkins_Influxdb插件源碼:https://github.com/jenkinsci/influxdb-plugin

關(guān)于Jenkins結(jié)合influxdb插件收集數(shù)據(jù)交Grafana的具體介紹,可以參見我的另一篇文章:

https://smooth.blog.csdn.net/article/details/88551268

七、測試監(jiān)控

? ? ? ? 到這里我們已經(jīng)了解到?Influxdb + Grafana 組合的強大了,其實和Jmeter結(jié)合,我們就可以監(jiān)視性能測試的壓測請求,比起Jmeter本身所生成的html報告,這種方式實時性更好,輕量級的不占用過高資源,可以滿足長時間的壓測監(jiān)控。

? ? ? ? 我們通過Jmeter的Backend Listener組件,就可以將Jmeter的數(shù)據(jù)發(fā)送到Influxdb,交由Grafana分析展示:

?這種方式網(wǎng)上隨處能搜索到,也可以關(guān)注我的另一篇文章:https://blog.csdn.net/smooth00/article/details/79926294

八、日志監(jiān)控

? ? ? ?如今最流行的日志監(jiān)控分析框架是ELK(Elasticsearch + Logstash + Kibana),或者是搭配輕量級的日志采集分析框架Elasticsearch + Filebeat + Kibana。說下kibana作為日志展現(xiàn)方面的問題,Kibana往往在展現(xiàn)一條數(shù)據(jù)的時候效果是完美的,尤其是kibana4那種清淡的綠色讓人心曠神怡。 但很多時候我們要做多維度數(shù)據(jù)圖表展現(xiàn),這地方Kibana貌似沒有做圖表樣式的優(yōu)化。當很多條數(shù)據(jù)擁擠在一起時,很難區(qū)分出每個點的數(shù)值,換句話說很不直觀。另外Kibana更加適合日志類型的展現(xiàn), 雖然他也可以kv結(jié)構(gòu),但配置起來有些麻煩。所以現(xiàn)在還有一種搭配方式是?Elasticsearch + Logstash + Grafana 或 Elasticsearch? + Filebeat + Logstash + Granfa,比起來Grafana比Kibana部署還要輕量化。以下是ELK監(jiān)控Nginx日志,并通過Grafana展現(xiàn)的效果圖:

nginx log的grafana模板:https://grafana.com/grafana/dashboards/2292

ELK:https://www.elastic.co/cn/what-is/elk-stack

? ? ? 寫到這,我也差不多把我所了解的開源監(jiān)控產(chǎn)品梳理了一通,其中有一些在我的推薦下,已經(jīng)在公司內(nèi)部得到了應用,另外Skywalking和Telegraf、Jmxtrans也集成到我自己的監(jiān)控平臺中,而Influxdb、Grafana也往Jmeter壓測平臺中做了集成。當然,我還會繼續(xù)探索一些新的開源監(jiān)控技術(shù),爭取做一個受歡迎的搬運工。

總結(jié)

以上是生活随笔為你收集整理的全方位的开源监控工具链介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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