溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》
  • 首頁 > 
  • 教程 > 
  • 數(shù)據(jù)庫 > 
  • 處理Zabbixl歷史數(shù)據(jù)庫解決辦法三---使用MySQL中間件為Zabbix數(shù)據(jù)庫擴(kuò)容

處理Zabbixl歷史數(shù)據(jù)庫解決辦法三---使用MySQL中間件為Zabbix數(shù)據(jù)庫擴(kuò)容

發(fā)布時(shí)間:2020-07-03 20:13:47 來源:網(wǎng)絡(luò) 閱讀:3940 作者:自由linux 欄目:數(shù)據(jù)庫

一 應(yīng)用場景描述

 前面介紹了兩種處理Zabbix歷史數(shù)據(jù)的解決辦法,但是如果當(dāng)監(jiān)控?cái)?shù)據(jù)繼續(xù)增長的話是不足以解決問題的。

 處理Zabbix歷史數(shù)據(jù)庫辦法二---使用MySQL表分區(qū)

 處理Zabbix歷史數(shù)據(jù)庫辦法一

 

 辦法一適合在沒有做表分區(qū)的情況下,只保留一段時(shí)間的數(shù)據(jù),比如一個(gè)月,然后把老的數(shù)據(jù)刪除再使用方法二,這種操作執(zhí)行時(shí)間長。

 辦法二是使用MySQL自帶的表分區(qū)功能,將history等表按照日期進(jìn)行分區(qū),然后只保留一段時(shí)間的數(shù)據(jù)。但是即使使用表分區(qū)功能定期刪除不用的分區(qū)數(shù)據(jù),也會(huì)有瓶頸產(chǎn)生。比如,監(jiān)控?cái)?shù)據(jù)量大了,一個(gè)月的歷史數(shù)據(jù)都有好幾百G,繼續(xù)增長就會(huì)把服務(wù)器磁盤撐爆了。所以,縱向擴(kuò)展不是最好的選擇。由于Zabbix設(shè)計(jì)的是單庫結(jié)構(gòu),所有的表操作都是在同一個(gè)數(shù)據(jù)庫中執(zhí)行,這樣像history這樣的大表操作必然會(huì)影響其他的表操作,如何將history這個(gè)幾個(gè)大表隔離出來放到其他數(shù)據(jù)庫服務(wù)器上才是解決問題的關(guān)鍵。由此想到可以使用MySQL中間件來對Zabbix數(shù)據(jù)庫進(jìn)行分表操作,同時(shí)可以借助于MySQL中間件提供的讀寫分離功能,對這些大表進(jìn)行讀寫分離,進(jìn)一步減輕壓力。


二 MySQL中間件選型

 在選擇使用哪一款MySQL中間件之前先確定我們的需求:

 最好是開源產(chǎn)品,同時(shí)是出于活躍開發(fā)的產(chǎn)品

 盡量在不更改Zabbix代碼的情況下可以直接使用---重點(diǎn)

 提供分庫分表的功能

 提供讀寫分離的功能

 性能穩(wěn)定,線上使用案例多

 SQL語句解析豐富 


 明白了這些需求之后,就可以開始查資料選型了。幾種可選的MySQL中間件如下:

 Cobar   阿里巴巴開源的產(chǎn)品,3年多沒有維護(hù)了,直接放棄

 Mycat   Cobar的改良版本,由社區(qū)維護(hù),功能豐富,有線上案例參考。同時(shí)文檔和資料齊全。

       《分布式數(shù)據(jù)庫架構(gòu)及企業(yè)實(shí)踐——基于Mycat中間件》

                   可以測試

 OneProxy 前支付寶DBA開發(fā)的商業(yè)產(chǎn)品,社區(qū)版本有限制。不過,他們有現(xiàn)成的Zabbix數(shù)據(jù)庫擴(kuò)容方案。直接放棄

 Kingshard 用Go語言開發(fā)的MySQL中間件,支持分庫分表和讀寫分離等功能。可以測試

 DBProxy  美團(tuán)最近開源的MySQL中間件,支持分表和讀寫分離。 可以測試



 由此我們需要測試3個(gè)MySQL中間件:Mycat,Kingshard和DBProxy


 首先部署兩個(gè)MySQL數(shù)據(jù)庫實(shí)例

 172.28.2.231:3306  默認(rèn)DB1

 172.28.2.227:3306   存放history幾個(gè)大表的DB2


 兩個(gè)DB實(shí)例都建好Zabbix數(shù)據(jù)庫和帳號(hào),然后按照3個(gè)中間件的文檔部署

 history,history_uint,history_str,history_text,history_log,trends,trends_uint 這幾張表按照文檔分配到DB2,其他的表默認(rèn)走DB1


 1.測試Mycat

  Zabbix server日志沒有報(bào)錯(cuò),但是Zabbix頁面有報(bào)錯(cuò),主要都是SELECT DISTINCT h.* 這種SQL Mycat無法解析。在終端下測試SELECT DISTINCT * 就不報(bào)錯(cuò),同時(shí)如果history幾個(gè)表不走DB2而是走默認(rèn)的DB1也不會(huì)報(bào)錯(cuò)。


 2.測試Kingshard

  Zabbix server錯(cuò)誤日志刷新頻繁,同時(shí)Kingshard的錯(cuò)誤日志刷新較多,Zabbix頁面錯(cuò)誤較多。

 

 3.測試DBProxy

  編譯安裝不成功,直接放棄


 所以,接下來我們重點(diǎn)測試如果使用Mycat來擴(kuò)容數(shù)據(jù)庫。關(guān)于MySQL中間件的資料網(wǎng)上很多,大家可以自行查找。分表功能包括




三 使用Mycat來為Zabbix數(shù)據(jù)庫分表
















參考文檔:

https://github.com/flike/kingshard

http://www.open-open.com/news/view/1708e64

https://github.com/alibaba/cobar

https://github.com/MyCATApache/Mycat-Server

http://mycat.io/

http://www.onexsoft.com/zh/oneproxy-scale-out-zabbix.html

https://github.com/flike/kingshard

https://github.com/Meituan-Dianping/DBProxy






向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI