監控數據的存儲是由historysyncer進程負責寫入數據庫,historysyncer進程應對大流量數據的方式是,一方面通過批量插入來提高寫庫的效率,另一方面通過多進程的方式來擴展數據處理能力。在寫庫過程中,歷史數據寫入history表,即使數據變為冷數據也需要留在history表中供前端UI訪問。趨勢數據寫入trends表,相較于歷史數據,趨勢數據的寫庫負載要低的多,是因為對于每個監控項來說,平均每小時只需要寫庫一次,其他時間只需要更新趨勢緩存,不需要寫庫。在historysyncer進程的觸發器計算階段,主要訪問值緩存,但是如果值緩存不能命中則需要查詢history表,這種情況下就需要使用history表索引了。考慮索引對insert操作的影響,索引在提高查詢速度的同時也降低了寫入性能。觸發器計算之后生成的event信息也需要寫入數據庫,這些信息存儲在events表、problem、escalation等表中。因此,這些表的數據增長率取決于Zabbix生成的事件的數量,當事件數量陡增時,這些表的寫入壓力也會隨之增加。在數據存儲方面主要體現了熱數據和冷數據的轉換過程以及數據規模對讀寫性能的影響。集群節點發送到數據庫后端的心跳是非常小的消息,記錄在一個較小的Zabbix數據庫表中,故性能影響忽略不計。產品zabbix模板
對于大部分監控項而言,隨著時間流逝,監控數據會快速地脫離Zabbix server的使用范圍,進入冷數據區。雖然冷數據脫離了Zabbix server的使用范圍,但是Zabbix仍然不能對冷數據進行離線化,因為前端UI和網絡API需要訪問這些冷數據,這些訪問一般***于少量監控項的讀取。從Zabbix server的角度來說,對于任一特定監控項,數據的熱區和冷區分界線是固定的,并且熱區的數據量相對于冷數據要小得多。如果使用mysql來存儲監控數據,由于索引的存在,數據的寫入性能會隨著存儲規模的增加而降低,查詢性能也是一樣。因此,控制數據規模成為解決數據庫訪問性能的關鍵。如果將熱數據和冷數據分開存儲,并且在需要時讓數據在兩者之間進行流動,則對于Zabbix server而言,可以**降低數據規模。如果進一步考慮如何實現熱數據表的**小化,就需要建立一種動態機制,每次修改觸發器表達式后按照觸發器的數據需求量在冷熱數據之間進行雙向調整。北京zabbix功能如何利用Git對Zabbix監控模板進行版本管理及備份?
假設有一個監控系統存在100萬個監控項,30萬個觸發器,nvps值為一萬,意味著每秒需要處理1萬個值,而每處理1個值都需要從100萬個監控項中找到所對應的item狀態信息。同樣地,在計算觸發器時也需要從大量觸發器中查找目標。對于這一查找問題,Zabbix通過哈希表結構來解決,也就是,以itemid、hostid、triggerid等作為鍵,構建哈希表來組織這些需要頻繁查找的數據。哈希表結構存在于配置緩存、歷史緩存、歷史索引緩存、值緩存valuecache和趨勢緩存中,配置信息緩存中的哈希表主要是解決剛才說的頻繁查找大規模元數據的問題。歷史緩存和歷史索引緩存中也使用了哈希表,當有大量的監控數據來不及處理時,可以先放到歷史緩存的哈希表中,等待historysyncer進程處理。由于使用了哈希表,即使有大量監控項的數據進入緩存,historysyncer進程仍然可以以固定的時間復雜度來查找這些數據。
在默認的情況下,zabbix有6個工作進程;分別是zabbix_agentd,zabbix_get,zabbix_proxy,zabbix_sender,zabbix_server和zabbix_gateway。其中,zabbix_java_gateway是可選進程。這6個進程的作用如下:1、zabbix_agentdzabbix-agentd為zabbix客戶端守護進程,主要負責收集客戶端監控項數據。2、zabbix_serverzabbix_server為zabbix服務端守護進程,主要負責收集zabbix客戶端數據。(端口為10051)3、zabbix_proxyzabbix_proxy是zabbix的代理程序,其功能類似于server,作用上類似于一個中轉站,**終會把收集的數據再次提交給zabbix_server。4、zabbix_getzabbix_get作為zabbix工具,通常運行在zabbix_server或者zabbix_proxy上,用于遠程獲取客戶端信息,通常用于排錯。5、zabbix_senderzabbix_sender也是zabbix的一個工具,通常運行在zabbix的客戶端,用于耗時比較長的檢查,其作用是主動發送數據。6、zabbix_java_gatewayzabbix_java_gateway是zabbix2.0以后引入的新功能,可以用于JAVA方面的設備;但是只能主動獲取數據,而不能被動獲取數據。Zabbix 6.2將又一次提升新用戶和老用戶的用戶體驗。
zabbix主要由以下5個組件構成:1、Serverzabbixserver是zabbix的組件,server內部存儲了所有的配置信息、統計信息和操作信息。zabbixagent會向zabbixserver報告可用性、完整性及其他統計信息。2、web頁面web頁面也是zabbix的一部分,通常和zabbixserver位于一臺物理設備上,但是在特殊情況下也可以分開配置。web頁面主要提供了直觀的監控信息,以方便運維人員監控管理。3、數據庫zabbix數據庫內存儲了配置信息、統計信息等zabbix的相關內容。4、proxyzabbixproxy可以根據具體生產環境進行采用或者放棄。如果使用了zabbixproxy,則其會替代zabbixserver采集數據信息,可以很好的分擔zabbixserver的負載。zabbixproxy通常運用與架構過大、zabbixserver負載過重,或者是企業設備跨機房、跨網段、zabbixserver無法與zabbixagent直接通信的場景。5、Agentzabbixagent通常部署在被監控目標上,用于主動監控本地資源和應用程序,并將監控的數據發送給zabbixserver。集中化監控工具zabbix的安裝配置。zabbix各監控項類型的采集實現
成熟企業級開源監控解決方案Zabbix6.2關鍵功能實戰。產品zabbix模板
**近一直聽到小伙伴在問,zabbix和prometheus選擇哪一個開源產品好?還是用國內的商業產品呢?今年年初以來,prometheus的熱度就一直在往上增,同時也有不少國產商業產品替換。下面我就來給大家總結一下zabbix和prometheus以及商業產品的對比分析。
Zabbix官方的發行版本時間可以追朔到2012年,時間上比Prometheus早了四年,Zabbix是由Alexei Vladishev開源的分布式監控系統,是一個企業級的分布式開源監控方案。能夠監控各種網絡參數以及服務器健康性和完整性的軟件。使用靈活的通知機制,允許用戶為幾乎任何事件配置基于郵件的告警。這樣可以快速反饋服務器的問題。基于已存儲的數據,提供了出色的報告和數據可視化功能。 產品zabbix模板
上海觀縱科技有限公司是國內一家多年來專注從事webfunny前端監控,webfunny前端埋點,全鏈路應用性能監控,Argus-IT運維監控的老牌企業。公司位于上海市奉賢區望園南路1288弄80號1904、1909室,成立于2022-11-14。公司的產品營銷網絡遍布國內各大市場。公司主要經營webfunny前端監控,webfunny前端埋點,全鏈路應用性能監控,Argus-IT運維監控,公司與webfunny前端監控,webfunny前端埋點,全鏈路應用性能監控,Argus-IT運維監控行業內多家研究中心、機構保持合作關系,共同交流、探討技術更新。通過科學管理、產品研發來提高公司競爭力。webfunny,walkingfunny,argus嚴格按照行業標準進行生產研發,產品在按照行業標準測試完成后,通過質檢部門檢測后推出。我們通過全新的管理模式和周到的服務,用心服務于客戶。上海觀縱科技有限公司以誠信為原則,以安全、便利為基礎,以優惠價格為webfunny前端監控,webfunny前端埋點,全鏈路應用性能監控,Argus-IT運維監控的客戶提供貼心服務,努力贏得客戶的認可和支持,歡迎新老客戶來我們公司參觀。