在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

主流監控系統技術選型

CodeSheep ? 來源:CodeSheep ? 2023-06-07 16:21 ? 次閱讀

今天這篇文章,我將對監控體系的基礎知識、原理和架構做一次系統性梳理,同時還會對幾款最常用的開源監控產品做下介紹,以便大家選型時參考。

內容包括3部分:

必知必會的監控基礎知識

主流監控系統介紹

監控系統的選型建議

01 必知必會的監控基礎知識

監控系統俗稱「第三只眼」,幾乎是我們每天都會打交道的系統,下面 4 項基礎知識我認為是必須要了解的。

1. 監控系統的7大作用 正所謂「無監控,不運維」,監控系統的地位不言而喻。不管你是監控系統的開發者還是使用者,首先肯定要清楚:監控系統的目標是什么?它能發揮什么作用?

759bc8e0-050a-11ee-90ce-dac502259ad0.png

實時采集監控數據:包括硬件、操作系統、中間件、應用程序等各個維度的數據。

實時反饋監控狀態:通過對采集的數據進行多維度統計和可視化展示,能實時體現監控對象的狀態是正常還是異常。

預知故障和告警:能夠提前預知故障風險,并及時發出告警信息。

輔助定位故障:提供故障發生時的各項指標數據,輔助故障分析和定位。

輔助性能調優:為性能調優提供數據支持,比如慢SQL,接口響應時間等。

輔助容量規劃:為服務器、中間件以及應用集群的容量規劃提供數據支撐。

輔助自動化運維:為自動擴容或者根據配置的SLA進行服務降級等智能運維提供數據支撐。

2.使用監控系統的正確姿勢

出任何線上事故,先不說其他地方有問題,監控部分一定是有問題的。

聽著很甩鍋的一句話,仔細思考好像有一定道理。我們在事故復盤時,通常會思考這3個和監控有關的問題:有沒有做監控?監控是否及時?監控信息是否有助于快速定位問題?

可見光有一套好的監控系統還不夠,還必須知道如何用好它」。一個成熟的研發團隊通常會定一個監控規范,用來統一監控系統的使用方法。

75afeb0e-050a-11ee-90ce-dac502259ad0.png

了解監控對象的工作原理要做到對監控對象有基本的了解,清楚它的工作原理。比如想對JVM進行監控,你必須清楚JVM的堆內存結構和垃圾回收機制。

確定監控對象的指標:清楚使用哪些指標來刻畫監控對象的狀態?比如想對某個接口進行監控,可以采用請求量、耗時、超時量、異常量等指標來衡量。

定義合理的報警閾值和等級:達到什么閾值需要告警?對應的故障等級是多少?不需要處理的告警不是好告警,可見定義合理的閾值有多重要,否則只會降低運維效率或者讓監控系統失去它的作用。

建立完善的故障處理流程:收到故障告警后,一定要有相應的處理流程和oncall機制,讓故障及時被跟進處理。

3. 監控的對象和指標都有哪些? 監控已然成為了整個產品生命周期非常重要的一環,運維關注硬件和基礎監控,研發關注各類中間件和應用層的監控,產品關注核心業務指標的監控。可見,監控的對象已經越來越立體化。 這里,我對常用的監控對象以及監控指標做了分類整理,供大家參考。

75cb3f26-050a-11ee-90ce-dac502259ad0.png

3.1 硬件監控

包括:電源狀態、CPU狀態、機器溫度、風扇狀態、物理磁盤、raid狀態、內存狀態、網卡狀態

3.2 服務器基礎監控

CPU:單個CPU以及整體的使用情況

內存:已用內存、可用內存

磁盤:磁盤使用率、磁盤讀寫的吞吐量

網絡:出口流量、入口流量、TCP連接狀態

3.3數據庫監控

包括:數據庫連接數、QPS、TPS、并行處理的會話數、緩存命中率、主從延時、鎖狀態、慢查詢

3.4中間件監控

Nginx:活躍連接數、等待連接數、丟棄連接數、請求量、耗時、5XX錯誤率

Tomcat:最大線程數、當前線程數、請求量、耗時、錯誤量、堆內存使用情況、GC次數和耗時

緩存:成功連接數、阻塞連接數、已使用內存、內存碎片率、請求量、耗時、緩存命中率

消息隊列:連接數、隊列數、生產速率、消費速率、消息堆積量

3.5應用監控

HTTP接口:URL存活、請求量、耗時、異常量

RPC接口:請求量、耗時、超時量、拒絕量

JVM :GC次數、GC耗時、各個內存區域的大小、當前線程數、死鎖線程數

線程池:活躍線程數、任務隊列大小、任務執行耗時、拒絕任務數

連接池:總連接數、活躍連接數

日志監控:訪問日志、錯誤日志

業務指標:視業務來定,比如PV、訂單量等

4. 監控系統的基本流程 無論是開源的監控系統還是自研的監控系統,監控的整個流程大同小異,一般都包括以下模塊:

75d7606c-050a-11ee-90ce-dac502259ad0.png

數據采集:采集的方式有很多種,包括日志埋點進行采集(通過Logstash、Filebeat等進行上報和解析),JMX標準接口輸出監控指標,被監控對象提供REST API進行數據采集(如Hadoop、ES),系統命令行,統一的SDK進行侵入式的埋點和上報等。

數據傳輸:將采集的數據以TCP、UDP或者HTTP協議的形式上報給監控系統,有主動Push模式,也有被動Pull模式。

數據存儲:有使用MySQL、Oracle等RDBMS存儲的,也有使用時序數據庫RRDTool、OpentTSDB、InfluxDB存儲的,還有使用HBase存儲的。

數據展示:數據指標的圖形化展示。

監控告警:靈活的告警設置,以及支持郵件、短信、IM等多種通知通道。

02 主流監控系統介紹 下面再來認識下主流的開源監控系統,由于篇幅有限,我挑選了3款使用最廣泛的監控系統:Zabbix、Open-Falcon、Prometheus,會對它們的架構進行介紹,同時總結下各自的優劣勢。

760136e4-050a-11ee-90ce-dac502259ad0.png

1. Zabbix(老牌監控的優秀代表)

761f86e4-050a-11ee-90ce-dac502259ad0.png

Zabbix 1998年誕生,核心組件采用C語言開發,Web端采用PHP開發。它屬于老牌監控系統中的優秀代表,監控功能很全面,使用也很廣泛,差不多有70%左右的互聯網公司都曾使用過 Zabbix 作為監控解決方案。

先來了解下Zabbix的架構設計:

762ea570-050a-11ee-90ce-dac502259ad0.png

Zabbix架構圖

Zabbix Server:核心組件,C語言編寫,負責接收Agent、Proxy發送的監控數據,也支持JMX、SNMP等多種協議直接采集數據。同時,它還負責數據的匯總存儲以及告警觸發等。

Zabbix Proxy:可選組件,對于被監控機器較多的情況下,可使用Proxy進行分布式監控,它能代理Server收集部分監控數據,以減輕Server的壓力。

Zabbix Agentd:部署在被監控主機上,用于采集本機的數據并發送給Proxy或者Server,它的插件機制支持用戶自定義數據采集腳本。Agent可在Server端手動配置,也可以通過自動發現機制被識別。數據收集方式同時支持主動Push和被動Pull 兩種模式。

Database:用于存儲配置信息以及采集到的數據,支持MySQL、Oracle等關系型數據庫。同時,最新版本的Zabbix已經開始支持時序數據庫,不過成熟度還不高。

Web Server:Zabbix的GUI組件,PHP編寫,提供監控數據的展現和告警配置。

下面是 Zabbix 的優勢:

產品成熟由于誕生時間長且使用廣泛,擁有豐富的文檔資料以及各種開源的數據采集插件,能覆蓋絕大部分監控場景。

采集方式豐富:支持Agent、SNMP、JMX、SSH等多種采集方式,以及主動和被動的數據傳輸方式。

較強的擴展性:支持Proxy分布式監控,有agent自動發現功能,插件式架構支持用戶自定義數據采集腳本。

配置管理方便:能通過Web界面進行監控和告警配置,操作方便,上手簡單。

下面是 Zabbix 的劣勢:

性能瓶頸機器量或者業務量大了后,關系型數據庫的寫入一定是瓶頸,官方給出的單機上限是5000臺,個人感覺達不到,尤其現在應用層的指標越來越多。雖然最新版已經開始支持時序數據庫,不過成熟度還不高。

應用層監控支持有限:如果想對應用程序做侵入式的埋點和采集(比如監控線程池或者接口性能),zabbix沒有提供對應的sdk,通過插件式的腳本也能曲線實現此功能,個人感覺zabbix就不是做這個事的。

數據模型不強大:不支持tag,因此沒法按多維度進行聚合統計和告警配置,使用起來不靈活。

方便二次開發難度大:Zabbix采用的是C語言,二次開發往往需要熟悉它的數據表結構,基于它提供的API更多只能做展示層的定制。

2. Open-Falcon

764d7478-050a-11ee-90ce-dac502259ad0.png

Open-falcon 是小米2015年開源的企業級監控工具,采用Go和Python語言開發,這是一款靈活、高性能且易擴展的新一代監控方案,目前小米、美團、滴滴等超過200家公司在使用它。

小米初期也使用的Zabbix進行監控,但是機器量和業務量上來后,Zabbix就有些力不從心了。因此,后來自主研發了Open-Falcon,在架構設計上吸取了Zabbix的經驗,同時很好地解決了Zabbix的諸多痛點。

先來了解下Open-Falcon的架構設計:

7661b05a-050a-11ee-90ce-dac502259ad0.png

Open-Falcon架構圖,來自網絡

Falcon-agent:數據采集器和收集器,Go開發,部署在被監控的機器上,支持3種數據采集方式。首先它能自動采集單機200多個基礎監控指標,無需做任何配置;同時支持用戶自定義的plugin獲取監控數據;此外,用戶可通過http接口,自主push數據到本機的proxy-gateway,由gateway轉發到server.

Transfer:數據分發組件,接收客戶端發送的數據,分別發送給數據存儲組件Graph和告警判定組件Judge,Graph和Judge均采用一致性hash做數據分片,以提高橫向擴展能力。同時Transfer還支持將數據分發到OpenTSDB,用于歷史歸檔。

Graph:數據存儲組件,底層使用RRDTool(時序數據庫)做單個指標的存儲,并通過緩存、分批寫入磁盤等方式進行了優化。據說一個graph實例能夠處理8W+每秒的寫入速率。

Judge和Alarm告警組件,Judge對Transfer組件上報的數據進行實時計算,判斷是否要產生告警事件,Alarm組件對告警事件進行收斂處理后,將告警消息推送給各個消息通道。

API:面向終端用戶,收到查詢請求后會去Graph中查詢指標數據,匯總結果后統一返回給用戶,屏蔽了存儲集群的分片細節。

下面是Open-Falcon的優勢:

自動采集能力Falcon-agent 能自動采集服務器的200多個基礎指標(比如CPU、內存等),無需在server上做任何配置,這一點可以秒殺Zabbix.

強大的存儲能力:底層采用RRDTool,并且通過一致性hash進行數據分片,構建了一個分布式的時序數據存儲系統,可擴展性強。

靈活的數據模型:借鑒OpenTSDB,數據模型中引入了tag,這樣能支持多維度的聚合統計以及告警規則設置,大大提高了使用效率。

插件統一管理:Open-Falcon的插件機制實現了對用戶自定義腳本的統一化管理,可通過HeartBeat Server分發給agent,減輕了使用者自主維護腳本的成本。

個性化監控支持:基于Proxy-gateway,很容易通過自主埋點實現應用層的監控(比如監控接口的訪問量和耗時)和其他個性化監控需求,集成方便。

下面是Open-Falcon的劣勢:

整體發展一般社區活躍度不算高,同時版本更新慢,有些大廠是基于它的穩定版本直接做二次開發的,關于以后的前景其實有點擔憂。

UI不夠友好:對于業務線的研發來說,可能只想便捷地完成告警配置和業務監控,但是它把機器分組、策略模板、模板繼承等概念全部暴露在UI上,感覺在圍繞這幾個概念設計UI,理解有點費勁。

安裝比較復雜:個人的親身感受,由于它是從小米內部衍生出來的,雖然去掉了對小米內部系統的依賴,但是組件還是比較多,如果對整個架構不熟悉,安裝很難一蹴而就。

3. Prometheus(號稱下一代監控系統)

7683771c-050a-11ee-90ce-dac502259ad0.png

Prometheus(普羅米修斯)是由前google員工2015年正式發布的開源監控系統,采用Go語言開發。它不僅有一個很酷的名字,同時它有Google與k8s的強力支持,開源社區異常火爆。

Prometheus 2016年加入云原生基金會,是繼k8s后托管的第二個項目,未來前景被相當看好。它和Open-Falcon最大不同在于:數據采集是基于Pull模式的,而不是Push模式,并且架構非常簡單。

先來了解下Prometheus的架構設計:

769e5e42-050a-11ee-90ce-dac502259ad0.png

Prometheus架構圖,來自網絡

Prometheus Server:核心組件,用于收集、存儲監控數據。它同時支持靜態配置和通過Service Discovery動態發現來管理監控目標,并從監控目標中獲取數據。此外,Prometheus Server 也是一個時序數據庫,它將監控數據保存在本地磁盤中,并對外提供自定義的 PromQL 語言實現對數據的查詢和分析。

Exporter:用來采集數據,作用類似于agent,區別在于Prometheus是基于Pull方式拉取采集數據的,因此,Exporter通過HTTP服務的形式將監控數據按照標準格式暴露給Prometheus Server,社區中已經有大量現成的Exporter可以直接使用,用戶也可以使用各種語言的client library自定義實現。

Push gateway:主要用于瞬時任務的場景,防止Prometheus Server來pull數據之前此類Short-lived jobs就已經執行完畢了,因此job可以采用push的方式將監控數據主動匯報給Push gateway緩存起來進行中轉。

Alert Manager:當告警產生時,Prometheus Server將告警信息推送給Alert Manager,由它發送告警信息給接收方。

Web UI:Prometheus內置了一個簡單的web控制臺,可以查詢配置信息和指標等,而實際應用中我們通常會將Prometheus作為Grafana的數據源,創建儀表盤以及查看指標。

下面是Prometheus的優勢:

輕量管理:架構簡單,不依賴外部存儲,單個服務器節點可直接工作,二進制文件啟動即可,屬于輕量級的Server,便于遷移和維護。

較強的處理能力:監控數據直接存儲在Prometheus Server本地的時序數據庫中,單個實例可以處理數百萬的metrics。

靈活的數據模型:同Open-Falcon,引入了tag,屬于多維數據模型,聚合統計更方便。

強大的查詢語句:PromQL允許在同一個查詢語句中,對多個metrics進行加法、連接和取分位值等操作。

很好地支持云環境:能自動發現容器,同時k8s和etcd等項目都提供了對Prometheus的原生支持,是目前容器監控最流行的方案。

下面是Prometheus的劣勢:

功能不夠完善:Prometheus從一開始的架構設計就是要做到簡單,不提供集群化方案,長期的持久化存儲和用戶管理,而這些是企業變大后所必須的特性,目前要做到這些只能在Prometheus之上進行擴展。

網絡規劃變復雜:由于Prometheus采用的是Pull模型拉取數據,意味著所有被監控的endpoint必須是可達的,需要合理規劃網絡的安全配置。

03監控系統的選型建議

通過上面的介紹,大家對主流的監控系統應該有了一定的認識。面對選型問題,我的建議是:

1、先明確清楚你的監控需求:要監控的對象有哪些?機器數量和監控指標有多少?需要具備什么樣的告警功能?

2、監控是一項長期建設的事情,一開始就想做一個 All In One 的監控解決方案,我覺得沒有必要。從成本角度考慮,在初期直接使用開源的監控方案即可,先解決有無問題。

3、從系統成熟度上看,Zabbix屬于老牌的監控系統,資料多,功能全面且穩定,如果機器數量在幾百臺以內,不用太擔心性能問題,另外,采用數據庫分區、SSD硬盤、Proxy架構、Push采集模式都可以提高監控性能。

4、Zabbix在服務器監控方面占絕對優勢,可以滿足90%以上的監控場景,但是應用層的監控似乎并不擅長,比如要監控線程池的狀態、某個內部接口的執行時間等,這種通常都要做侵入式埋點。相反,新一代的監控系統Open-Falcon和Prometheus在這一點做得很好。

5、從整體表現上來看,新一代監控系統也有明顯的優勢,比如:靈活的數據模型、更成熟的時序數據庫、強大的告警功能,如果之前對zabbix這種傳統監控沒有技術積累,建議使用Open-Falcon或者Prometheus.

6、Open-Falcon的核心優勢在于數據分片功能,能支撐更多的機器和監控項;Prometheus則是容器監控方面的標配,有Google和k8s加持。

7、Zabbix、Open-Falcon和Prometheus都支持和Grafana做快速集成,想要美觀且強大的可視化體驗,可以和Grafana進行組合。

8、用合適的監控系統解決相應的問題即可,可以多套監控同時使用,這種在企業初期很常見。

9、到中后期,隨著機器數據增加和個性化需求增多(比如希望統一監控平臺、打通公司的CMDB和組織架構關系),往往需要二次開發或者通過監控系統提供的API做集成,從這點來看,Open-Falcon或者Prometheus更合適。

10、如果非要自研,可以多研究下主流監控系統的架構方案,借鑒它們的優勢。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11005

    瀏覽量

    215062
  • 服務器
    +關注

    關注

    12

    文章

    9582

    瀏覽量

    86938
  • 監控系統
    +關注

    關注

    21

    文章

    4004

    瀏覽量

    180344

原文標題:主流監控系統技術選型,yyds!

文章出處:【微信號:CodeSheep,微信公眾號:CodeSheep】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    PoE交換機在安防監控系統中的關鍵作用

    ,在安全監控系統中的影響不容忽視。通過與先進技術集成并支持未來擴展,PoE交換機已成為現代監控系統中不可或缺的一部分。隨著安全挑戰的不斷增長
    發表于 03-24 16:41

    #分布式光伏監控系統#用電安全#儲能 光伏運維監控系統 您的優秀管家

    監控系統
    jf_94043819
    發布于 :2025年02月20日 16:54:37

    機房動環監控系統是什么?

    機房動環監控系統,全稱為動力環境監控系統(Supervision System,SS),是一種集成了傳感器技術、數據傳輸
    的頭像 發表于 02-17 16:50 ?334次閱讀

    Acrel-2000電力監控系統

    監控系統
    安科瑞繆志澄
    發布于 :2024年12月30日 16:23:52

    供水泵站遠程監控物聯網系統方案

    供水泵站遠程監控系統方案是集物聯網技術、傳感技術、自動化控制技術、無線通信技術、網絡
    的頭像 發表于 12-17 09:35 ?418次閱讀

    機房動環監控系統應用方案

    機房動力環境監控系統(簡稱“動環監控系統”)是確保數據中心、通信基站等關鍵設施穩定運行的重要技術手段。專門用于監測和管理機房、數據中心、通信
    的頭像 發表于 11-13 16:54 ?469次閱讀

    什么是動環監控系統?

    ,利用物聯網、云計算、大數據等技術,集成采集器/傳感器、動環主機、動環監控云平臺等部分,對機房的環境系統、供電動力、網絡、安防、消防等系統進行全面
    的頭像 發表于 10-12 16:12 ?1030次閱讀

    樓宇安防監控系統

    隨著5G、物聯網、AI等技術的深度融合,安防監控系統的智能化水平將進一步提升。對安全需求的不斷提高和個性化需求的增加,安防監控系統的定制化、
    的頭像 發表于 08-06 16:19 ?687次閱讀

    監控系統原理揭秘-數據運算篇

    一、監控系統概覽 監控系統在現代技術環境中扮演著至關重要的角色。運營同學每天檢查自己的活動數據,研發人員每天檢查
    的頭像 發表于 08-06 10:30 ?959次閱讀
    <b class='flag-5'>監控</b><b class='flag-5'>系統</b>原理揭秘-數據運算篇

    EMS/PCS/BMS/充電樁/逆變器新能源設備處理器選型-米爾嵌入式

    。本文旨在為新能源行業的開發者解決嵌入式處理器選型難題。 1.米爾嵌入式處理器在新能源行業應用 米爾嵌入式處理器模組在新能源行業主要在能量管理系統EMS、儲能變流器PCS、電池管理系統BMS、逆變器
    發表于 07-26 18:37

    ai智能視頻監控系統 OpenCV

    ai智能視頻監控系統選用數字圖像處理、計算機視覺和機器視覺技術性,利用軟件強勁的數據處理方法工作能力。ai智能視頻監控系統是一種集防盜報警
    的頭像 發表于 07-08 08:46 ?611次閱讀
    ai智能視頻<b class='flag-5'>監控</b><b class='flag-5'>系統</b> OpenCV

    智能SPD防雷監控系統的介紹與應用

    隨著現代電子設備和信息技術的快速發展,防雷擊保護成為各行各業確保設備安全和數據完整性的關鍵問題。 智能SPD(Surge Protective Device,浪涌保護器)防雷監控系統 是一種集成
    的頭像 發表于 05-30 11:05 ?1292次閱讀
    智能SPD防雷<b class='flag-5'>監控</b><b class='flag-5'>系統</b>的介紹與應用
    主站蜘蛛池模板: 女bbbbxxxx毛片视频 | 午夜看黄 | 狠狠操天天 | 欧美色视频在线观看 | 欧美精品xx | 种子天堂 | 午夜一级毛片看看 | 激情五月播播 | 日本三级午夜 | 婷婷丁香亚洲 | 免费一级片在线观看 | 色成人综合 | 免费人成在线观看视频播放 | 久久精品国产6699国产精 | 国产亚洲第一伦理第一区 | 日日操夜夜操免费视频 | 国模大胆一区二区三区 | 国产精品777 | 91极品反差婊在线观看 | 天天舔天天插 | 色天使色婷婷在线影院亚洲 | 免费人成在线观看视频色 | 天天干一干 | 美女午夜 | 免费看很黄很色裸乳视频 | 久久精品久久久久 | xxxxbbbb欧美| 午夜免费网址 | 国产一区二区三区夜色 | 国产精品李雅在线观看 | 日本国产高清色www视频在线 | 日本久操 | 高清不卡日本v在线二区 | 性色视频免费 | 欧美大黄| 五月婷婷免费视频 | 丁香婷婷在线 | 中国特黄一级片 | 男人操女人视频免费 | 三级国产在线观看 | 国产欧美日韩综合精品一区二区 |