用于监控的开源软件
幾種常見的用于監控的開源軟件
Grafana
Grafana是一款高顏值并且兼具高性能的監控展示工具
Grafana監控體系的四部分,包括Graphite + Grafana + Seyren +Collectd。
Graphite是一款企業級的監控工具,其采用Django框架,可以運行在廉價的硬件資源之上。Graphite采用簡單的文本協議和繪圖功能可以方便地使用在任何操作系統上。
? ?安裝Graphite本身及其依賴的一些工具:graphite-carbon、grephit-web依賴PosetgreSQL數據庫、配置Apache用于web訪問Graphite
Grafana支持很多的數據源,主要支持的有如下數據源:
Zabbix
zabbix:整合了四種功能的監控系統
? ? 1.支持多種接口完成數據采集:agent,SNMP,IPMI(英特爾智慧平臺接口),jmx
? ? 2.數據存儲:mysql,pgsql
? ? 3告警:email,script腳本(短信,微信)
? ? ? (1)可以告警升級,剛開始出故障時,發短信給運維工程師,隔兩小時后沒有解決問題,就發給他的領導,再隔兩小時沒解決,發給領導的領導
? ? ? (2)可以發遠程命令,剛開始出故障時,尤其是服務級故障,先不要立即發告警,在第一個周期內,試圖嘗試去解決問題,遠程指揮目標主機重啟一下服務,如果問題解決,就不用發警報了,如果沒有解決,那就開始發警報
? ? 4.展示:簡單圖,圖形,screen,slide,show,map
? Zabbix的特點:
? ? ?1.開源免費,社區支持。 它沒有社區版和商業版之分。
? ? ?2.分布式高可用。很多監控軟件是單點,沒有緩存,沒有HA等這些技術。而Zabbix支持分布式。
? ? ?3.低級別發現和自動發現。 隨著監控設備數量越來越多,手動添加監控很煩,可能重復或遺漏。低級別發現和自動發現這兩個功能非常有用,能大大提升監控的準確性和及時性。
? ? ?4.全棧級監控。 我們需要監控的平臺以及每個平臺上有不同的產品。可以搭建多套獨立的監控平臺去完成,也可以用Zabbix實現全棧級統一的監控。
? ? ?5.可定制。 引入DevOps的時候,Zabbix提供了標準的API可以和DevOps流水線進行集成。監控中整個DevOps流水線中應該是一個重要構成部分,因為CI/CD更偏向持續交付,但是交付后,還需要進行持續監控。
?
Grafana和與Zabbix結合,獲得酷炫的監控界面
結合grafana展示接口形成監控系統
? ? 1.statsd+influxdb(時序數據庫)+grafana
? ? 2.promethues(自身就相當于時序數據庫,可收集數據,存儲下來,并展示,但展示界面不好看,所以可結合grafana)+grafana
? ? 3.graphite+grafana
Prometheus
在業務層用作埋點系統
? ? Prometheus支持多種語言(Go,java,python,ruby官方提供客戶端,其他語言有第三方開源客戶端)。我們可以通過客戶端方面的對核心業務進行埋點。如下單流程、添加購物車流程。
在應用層用作應用監控系統
? ? 一些主流應用可以通過官方或第三方的導出器,來對這些應用做核心指標的收集。如redis,mysql。
在系統層用作系統監控
? ? 除了常用軟件, prometheus也有相關系統層和網絡層exporter,用以監控服務器或網絡。
集成其他的監控
? ? prometheus還可以通過各種exporte,集成其他的監控系統,收集監控數據,如AWS CloudWatch,JMX,Pingdom等等
ElasticSearch
? ? ElasticSearch是一個基于Lucene的搜索服務器。它提供了一個分布式多用戶能力的全文搜索引擎,基于RESTful web接口。它的特點有:分布式、零配置、自動發現、索引自動分片、索引副本機制、restful風格接口等。
? ? 可以用于日志搜索和格式化?
Logstash
? ? Logstash數據分析工具,它可以對系統生成的日志進行采集、分析、存儲。2013年,Logstash被ElasticSearch公司收購,ELK Stack正式成為官方用語。
? ? Logstash能夠把多個日志文件匯總為一個日志文件,它使用JRuby編寫。Logstash的理念很簡單,只做三件事:1.Collect:數據輸入? 2.Enrich:數據加工,如過濾、改寫等? 3.Transport:數據輸出。
Kibana
? ? Kibana是一個開源的分析與可視化平臺,用來搜索、查看存儲在ElasticSearch索引中的數據。
Consul
? ? Consul有多個組件,但是整體來看,它是你基礎設施中用于發現和配置服務的一個工具。它提供如下幾個關鍵功能:
? ? 服務發現:Consul的某些客戶端可以提供一個服務,比如api和mysql,其他客戶端可以使用Consul去發現這個服務的提供者。使用DNS或者HTTP,應用可以很容易找到他們所依賴的服務。
? ? 健康檢查:Consul客戶端可以提供一些健康檢查,這些健康檢查可以關聯到一個指定的服務(服務是否返回200 OK),也可以關聯到本地節點(內存使用率是否在90%一下)。這些信息可以被一個操作員用來監控集群的健康狀態,被服務發現組件路由時用來遠離不健康的主機。
? ? 鍵值存儲:應用可以使用Consul提供的分層鍵值存儲用于一些目的,包括動態配置、特征標記、協助、leader選舉等等。通過一個簡單的HTTP API可以很容易的使用這個組件。
? ? 多數據中心:Consul對多數據中心有非常好的支持,這意味著Consul用戶不必擔心由于創建更多抽象層而產生的多個區域。
? ? Consul被設計為對DevOps群體和應用開發者友好,非常適合現代的、可伸縮的基礎設施。
總結
- 上一篇: 不在沉默中爆发就在沉默中死亡,处于沉寂状
- 下一篇: 魔塔之拯救白娘子~我的第一个VB6+DX