Zabbix既想作好監控和告警,還想作好可視化分析?看看創始人怎麼說

「咱們的目標不是要分離Zabbix中不一樣的功能組件,並且要使之水平可擴展以適應不一樣的需求和負載,在新版本研發中,咱們正在朝着這個方向努力。」javascript

——Zabbix創始人&CEO Alexei Vladishevphp



Zabbix創始人&CEO Alexei Vladishev 連續5年參加Zabbix中國峯會!今年以視頻形式給你們帶來精彩分享——《Zabbix5.0新功能介紹和5.2簡介》,同時回答了兩個「犀利」的提問,來看看有多犀利~前端

  互動問答  
java

社區夥伴程序員

如今看來Zabbix既想作好監控和告警,同時也想作好可視化分析。你能把二者都作好嗎?正則表達式

謝謝你的問題。咱們的目標不是要分離Zabbix中不一樣的功能組件,並且要使之水平可擴展以適應不一樣的需求和負載,在新版本研發中,咱們正在朝着這個方向努力。redis


Zabbix 5.2將引入API和UI(用戶界面)的負載平衡功能。它將使在雲和容器環境中啓動這些組件成爲可能,以實現高可用性和更高的性能。另外,若是您查看路線圖,您可能注意到咱們已經計劃在Zabbix 5.4中分離數據收集和數據分析組件,咱們但願使它們更加獨立。
算法


這僅僅是轉換工做的開始,咱們但願使大多數Zabbix組件獨立,而且更加模塊化。它有助於更好地擴展Zabbix,並以更快的速度實現新功能。sql

 Alexei數據庫


社區夥伴

在將來的版本中,Zabbix是否支持多服務器管理?這對於百萬級的大型實例很重要。

是的,我但願在Zabbix的將來版本中實現它。我認爲第一個重要的階段是使Zabbix儀表盤和問題視圖可以顯示來自各類Zabbix服務器的信息。我不知道具體何時能夠實施,但它確定在咱們的長期路線圖中。


此功能將有助於使Zabbix真正成爲分佈式監控解決方案,而不會出現單點故障。

 Alexei


從這兩個問題,能看出Zabbix既仰望星空又腳踏實地。着眼當下,Zabbix5.0具體有什麼新功能,它如何幫助你的工做更便捷有效?以及5.2的路線圖的簡介。小Z整理了Alexei長達1小時的精選文字,便於夥伴們閱讀,歡迎收藏起來慢慢看。

還可點擊視頻觀看,在路上的夥伴能夠聽起來。

點擊跳轉至Bilibili,觀看完整視頻


  演講正文  

1024,祝程序員比我還帥~


你們早上好,很高興可以參加這次Zabbix峯會,這是咱們在中國的第五屆峯會,很高興能參加並向你們介紹Zabbix產品。首先,我要感謝咱們的贊助商們,沒有贊助商們的鼎力支持,咱們也沒法成功舉辦,感謝各位一直伴咱們同行。固然,我還要感謝此次會議的主辦方,咱們的中國的合做夥伴——上海宏時數據系統有限公司,感謝團隊爲這次峯會所作的努力和付出。

01- 回顧Zabbix 4.2和4.4版本


今天我想和你們分享一些關於目前Zabbix最新版本——Zabbix 5.0的功能和介紹。在正式介紹Zabbix 5.0以前,我先帶着你們簡單回顧一下Zabbix 4.2和4.4版本。Zabbix 4.2於去年4月份正式發佈,距今已有一年半的時間。Zabbix4.2版本中也發佈了一系列很是好的功能,可以使運維人員、系統管理員和開發人員更輕鬆地實現監控須要。


藉助數據節流的功能,Zabbix可實現高頻監控,實現亞秒級的數據採集,利用這一特性可實現對某些核心業務系統的實時監控。

除此以外,Zabbix 4.2還支持http agent,支持使用http協議進行數據採集。這個功能使得Zabbix能夠從不一樣的API採集數據,如雲API,不一樣的應用和服務API等等。對於業務監控,這是很是重要的一個功能。


除此以外,還引入了加強的預處理功能,引入了數據格式校驗和自定義腳本預處理,使用Javascript語言進行數據處理。藉助Javascript可以使預處理變得很是靈活。只要你能想象到的邏輯和處理方式,使用Javascript腳本均可以在預處理實現。任何類型的數據(二進制數據、文本數據和數字數據)均可以經過多種不一樣的方式進行轉換,從而使其符合數據採集的須要。同時Zabbix Proxy可對監控指標進行預處理,可有效下降Zabbix Server的壓力,以上就是Zabbix4.2版本的主要功能介紹。


半年以後,去年9月份,距今也有一年多的時間了,咱們正式發佈了Zabbix 4.4,在4.2版本原有的功能以外,Zabbix 4.4又推出了不少新功能,讓Zabbix使用變得更加靈活、更加易用。

同時還推出了Zabbix下一代Agent,Zabbix Agent2。Zabbix Agent2目前已經獲得了官方支持,Zabbix Agent2的插件和調度器等特性,我稍後會進行詳細介紹。Zabbix 4.4版本可以使用Webhook發送告警和通知,我我的很是喜歡這個功能,這個功能讓咱們社區的用戶、合做夥伴能夠直接對接其餘系統,加強Zabbix的集成性,而無需對Zabbix自己進行任何代碼更改,這是一個頗有價值的功能。你只需根據須要集成的接口邏輯,使用Javascript語言編寫,並將其包含添加到Zabbix之中便可實現告警和消息的對接。


Zabbix 4.4也支持時序數據庫,後面我會作詳細介紹。剛剛提到可經過Webhook進行告警或通知,Zabbix內置了一些簡單的知識庫,鼠標懸停,便可在Zabbix中看到觸發器和指標的一些描述性介紹。咱們還發布了Zabbix模板創建標準,以文檔的形式把模板建立最佳實踐分享給你們。

02- Zabbix 5.0新功能

接下來,我將向你們介紹Zabbix 5.0。該版本於今年正式發佈,這是一個LTS版本,LTS 版本意味着長期的支持,Zabbix 5.0有長達五年的支持期。Zabbix5.0是今年五月份正式發佈的。


在正式介紹產品功能以前,我想給你們說一下咱們當前正努力實現的目標。能夠先看一下Zabbix提供的集成列表,能夠看到,目前Zabbix已經集成和提供了數百個集成方案,數百個模板用於監控不一樣的服務、應用和網絡設備,不一樣的技術平臺。咱們還支持不少系統的集成,讓Zabbix和其餘系統互聯。因此,一方面咱們能夠看到,咱們提供了不少監控的模板和插件,隨着Zabbix agent2的引入,插件的開發難度也下降了,使用 Zabbix採集數據將變得更加簡單和快速。另外一方面,基於Webhook功能集成了衆多工單管理系統,故障管理系統,事件平臺等等。這就是咱們想要實現的目標:讓Zabbix更加靈活可擴,使其適用於不一樣的公司、不一樣的行業以及不一樣的企業規模等各類業務場景。


Webhook,在Zabbix 5.0中開箱即用不少集成,其中包括工單系統如OTRS,Zendesk,Jira,Redmine,ServiceNow等等。除此以外,還支持多種告警通知方式,如Slack、Pushover、Victorops、PagerDuty、Matterost、Microsoft teams等等。一旦有新的集成測試經過,咱們都會在Zabbix官網上發佈給用戶,發佈到官網以後,你們能夠搜索感興趣的集成插件,下載 XML文件,導入Zabbix便可使用。


再來看看Zabix Agent2,咱們已開發並內置了一些插件。已經能夠利用現成的插件監控不少主流的應用和服務,好比redis,NGNIX,Windows,Memcached,Elasticsearch,HAproxy,postgreSQL,MySQL等,後續咱們將會集成更多的插件。這一切不能僅僅歸功於Zabbix,還要感謝咱們的合做夥伴,咱們的用戶和社區成員,感謝你們的付出。所以,若是你有好想法和建議,能夠隨時與社區交流分享。社區能夠幫你改進和提高,也能夠給你助力。

03- 成爲Zabbix產品的貢獻者


如今,咱們發佈了一個簡單的流程,讓用戶能夠成爲Zabbix產品的貢獻者。若是你有一個好主意,或是你寫了一個插件、開發了一個模板,那麼你隨時能夠成爲Zabbix的貢獻者--只需簽署一份協議,很是簡單易懂的貢獻者協議。你就能夠提出一個Pull Request,而後Zabbix團隊會審覈。若是綜合評估下來,以爲你作的功能很好,能夠被不少社區成員使用,被不少Zabbix用戶使用,那麼咱們可能會將其歸入到Zabbix產品之中,你作的功能被歸入Zabbix產品的好處就是這個功能將受到咱們的全面支持,任何使用Zabbix的用戶均可以避免費使用這個功能。

04- Zabbix Agent 2

Zabbix是一個免費開源通用的企業級監控解決方案,每一個人,不管身在何處,均可以在咱們的網站下載,並用於任何場景。同時,咱們也一直在努力讓Zabbix儘量兼容多個平臺,在多個平臺上可獲取,讓用戶可以更容易的使用。咱們一直致力於增長兼容的操做系統列表,咱們爲不一樣的Linux發行版(例如redhat、Centos或Debian Ubuntu)等多個平臺構建了相應的軟件包。除此以外,咱們還提供了Docker鏡像和其餘容器技術的鏡像包。而且咱們還提供了能夠用於不一樣虛擬化平臺的鏡像和系統鏡像。咱們在許多公有云平臺以及OpenStack和Redhat OpenShift中發佈了Zabbix。簡而言之,一方面咱們正在盡最大努力讓Zabbix儘量開放。它是免費開源的軟件。另外一方面,咱們也正在努力讓儘量多的用戶能夠更便捷的使用到Zabbix。


還有,隨着Zabbix 5.0的發佈,Zabbix Agent2目前已有官方支持。什麼是Zabbix Agent2,這是咱們官方發佈的一個新的監控agent,適用於Linux和Windows的更增強大的agent,我相信將來會支持更多的平臺。

與原來的Agent相比,agent2具備許多顯著的優勢。至少在當前,我認爲咱們開發的Agent2是市場上最早進的監控agent之一。它支持各類類型的數據採集,它支持推拉方式,同時支持主動或被動檢查。Agent2支持長鏈接和併發檢查,使數據採集更高效,在數據庫等監控應用場景尤其適用。Zagent Agent2爲開箱即用,可直接替換現有Agent。Zabbix Agent2是一個模塊化、高性能和可拓展的監控agent,可適用於各類不一樣場景。在Zabbix 5.0中, Agent2支持監控數據的本地持久化存儲。是什麼意思呢?這就意味着若是Zabbix agent和Zabbix server或Zabbix proxy之間鏈接中斷,Zabbix agent會將收集到的數據存儲在內存緩存中。但若是中斷時間過長,採集的數據可能會丟失,由於內存緩存空間是有限的,老的數據將會丟失。


但在Zabbix 5.0中,這種狀況並不會出現,咱們能夠經過調整Zabbix agent2的配置文件,啓用持久緩衝區, 這樣Zabbix agent採集的全部數據都會持久保存至本地磁盤。如今若是Zabbix agent和Zabbix server之間鏈接中斷,全部採集數據會被保留,並存儲在本地文件系統中。鏈接恢復後,好比當Zabbix server和agent正常鏈接時,採集了1h的數據,而後Zabbix server和agent連接斷了數小時以後又恢復正常,從新啓用agent後,agent會將全部數據發送回Zabbix server,以此來保證監控數據是絕對安全的,永不丟失。

05- 安全性


在Zabbix5.0中,咱們針對Zabbix的安全性作了不少工做,其中不乏一些重要的改進。這展現的是一個比較的小的改進點,關於Webhook,前面提到了咱們使用Webhook方式使Zabbix與外部系統進行集成和對接。好比告警系統、故障管理系統、事件管理系統和通知系統。這時Zabbix是須要和外部系統對接,但對於一些企業客戶來說,可能會顧慮安全性,因此咱們如今支持http proxy,因此若是你有云服務等須要對接,可經過Zabbix的http proxy方式,以保證傳輸和數據的安全,這也是對安全性的一個很好的小改進。

另外一項改進是,如今能夠在Zabbix agent端限制指標採集。你能夠定義採集指標的白名單或黑名單,例如,若是你只想啓用與MySQL相關的採集指標,可使用特別的參數-Allow Key,而後使用通配符,就像個人示例中的Allow Key=MySQL[*],這樣全部帶MySQL Key的指標均可以採集,除此以外其餘指標就都會被拒絕。對於黑名單,只需配置不想要採集的監控指標Key便可。這樣能夠大大提升Zabbix agent端的安全性,提高你監控的服務的安全性。


咱們還引入了可配置的密碼,提升了加密傳輸的安全性,對於TLS加密通訊,用戶可靈活配置各類加密方式 。在對安全性有高要求的多業務場景下,這個功能很是有用。若是安全審計部門的人員告訴你在現行標準下你使用的密碼太弱,Zabbix如今可支持根據須要,來配置加密方式。


除此以外,在Zabbix5.0中,支持數據庫連接加密,如MySQL數據庫和Postgres數據庫連接,你須要在MySQL和Postgres中配置支持並接受安全鏈接,在這種狀況下,Zabbix與MySQL和Postgres的鏈接都將被加密。一樣還支持數據庫鏈接的可配置證書加密,安全性將大幅度提高。


咱們提升了Zabbix數據庫中用戶密碼存儲方面的安全性。因爲歷史緣由,以前咱們使用MD五、哈希算法(Hash algorithms)對用戶密碼進行加密,而MD5目前廣泛被認爲是不安全的加密算法,這也是咱們爲何改用Blowfish加密算法的緣由,現今Blowfish被認爲是業界標準。這就是爲何咱們不用MD5的緣由,就是簡單的從一個不太安全的算法切換到更加安全的算法。用戶登陸過程當中,Zabbix 5.0若是發現仍然使用MD5,Zabbix會根據您在登陸表單中提供的密碼進行適配,可進行無縫升級和兼容。


在Zabbix 5.0中,咱們還引入了對保密宏的支持,我認爲這是一個巨大的安全性改進,這意味着,如今咱們有了兩種類型的宏。一個就是已經有的文本宏,如今咱們也支持保密文本宏了。因此若是宏被配置爲祕密文本,type是祕密文本的話,基本就意味着該信息只支持寫入。保密宏可配置爲例如密碼、令牌或身份驗證ID等信息,在前端它是不可見的,會顯示爲星號,且沒法被識別,會被隱藏。對於關注宏安全性的用戶這是一個很重要的功能,是一個巨大的進步。固然,它能夠用於隱藏你不但願外部系統或Zabbix其餘用戶看到的信息。即便在告警消息和通知中調用加密宏,也是使用星號代替顯示,沒法獲取保密宏的數據。


因此說能夠看到,在Zabbix中,一切都變的更加安全。咱們在幾乎全部的地方都使用遠程鏈接的通訊加密,好比幾乎Zabbix UI和API與數據庫之間的全部通訊,Zabbix server、Zabbix server之間、Zabbix proxy、Zabbix server和Proxy和agent 之間都是用了TLS。咱們還可使用白名單和黑名單,以便僅容許agent進行特定的指標採集。在告警通知中咱們支持Webhook,而且Webhook也可使用HTTPS協議。在Zabbix中目前已經再也不有明文通訊。


在Zabbix 5.0中,咱們還爲單點登陸引入了SAML身份驗證。是什麼意思呢?如今你能夠進入Zabbix界面中的配置,選擇身份驗證方法,選擇啓用SAML便可配置使用。這意味着你能夠將Zabbix鏈接到不一樣的身份提供商,如Azure或可從公共雲身份提供商,或來自不一樣軟件供應商的身份提供商,如Microsoft、聯合服務或OpenAM等。在這種狀況下,單點登陸具備很大優點,只需輸入密碼一次,使用單向或雙向因子受權,便可免輸入密碼。

06- 易用性


Zabbix5.0的易用性在多處都作了提高。其中一個就是Zabbix界面的外觀。5.0中作了哪些改變呢,來看一下,咱們優化了5.0前端界面佈局,修改成寬屏佈局了。如今大多數人都使用寬屏,呈現信息並以優化的方式呈現信息很是的重要,咱們作了哪些改動呢?頂層菜單移到了左側,能夠在三種不一樣的模式下使用,你能夠將其隱藏,也能夠根據須要將其展開。頂部菜單欄原來佔用的空間如今能夠用於展現信息了,這就是新的界面。

對於儀表板,咱們引入了複製粘貼功能。如今若是你想將小部件從一個儀表板複製到同一儀表板或另外一個儀表板,只需單擊該小部件,按複製,而後使用粘貼功能將其粘貼到相同或不一樣的儀表板。很是簡單,有助於更快地構建新儀表板和/或修改現有儀表板。

如今你還能夠將Dashboard中的圖形導出爲PNG圖像,很是簡單,看到須要導出的圖形,單擊儀表板小部件,而後點擊下載便可下載圖形的PNG文件,這樣就能夠更方便的分享你的Dashboard。

如今還能夠按嚴重性篩選一些儀表板小部件、問題小部件,以及按標籤篩選問題主機,例如,若是我想要查看單個數據中心中發生的狀況,我只需選擇一個數據中心,並且我能夠看到哪些服務可用,在實際使用中能夠看到,我這個數據中心,可能有多少問題存在,這是另一個數據中心。這裏有更詳細的環境信息。因此說,經過標籤過濾是一個很強大的功能,我能夠篩選掉我不想看的問題。

07- UI模塊化、預處理、監控設備狀態及批量更新


UI模塊化,這是另一個擴展Zabbix的方法。以前講了Webhooks,咱們還有Zabbix agent插件,接下來爲你們介紹UI模塊,它能夠幫助咱們靈活擴展Zabbix前端的功能。怎麼作呢?


咱們能夠開發本身的模塊,而後在Zabbix前端建立一個新的菜單項。也能夠會建立一些新的頁面,好比要開發一個新的狀態報告頁面、一個新的Zabbix可視化特性、一個新頁面,或者是擴展示有頁面的功能,這都得益於Zabbix5.0中引入的UI模塊化的功能。能夠去看一看,以上功能在官網在線文檔中都有詳細的介紹和說明,你們能夠去官網文檔頁面查看。下面以一個小模塊的製做爲例,介紹如何建立自定義UI模塊,能夠參考這個例子,基於此代碼構建你本身的功能模塊。具體看下怎麼作,該模塊的文件結構很是簡單。有幾個php文件,幾個json文件,這些文件可以大體描述模型的內容、版本、建立者等信息,都在json文件,module.php是整個邏輯都構建在幾個php文件中來表示邏輯的數據,這樣就能夠實現。所以,在Zabbix的前端建立一個新頁面並不須要太多編碼便可實現。

08- 監控設備狀態總覽


在Zabbix5.0中,咱們引入了一個新視圖來查看咱們監控的全部設備和服務的狀態列表,稱爲監控設備狀態總覽。到Zabbix頁面,單擊監控-主機,就能夠在列表中看到全部設備及其屬性的列表。如你所見,有設備的名稱、接口的IP地址、標記和有關問題的信息,以及設備問題統計。此外,此頁面還能夠很是輕鬆地導航到與主機相關的資源,所以,若是你要轉到此特定設備或服務的最新數據或問題,或轉到screen查看圖表,只需單擊,單擊一下,咱們就能夠當即看到這臺特定的主機有多少問題,有哪些問題,很是很是容易。監控設備的列表有高級的篩選選項,若是我全部的設備都有問題,我想看災難問題或者高優先級的問題,經過篩選過濾,能夠很容易的作到這一點。如你所見,也有按標籤過濾的功能,這是一個很是實用的功能。如何篩選,如何操做不一樣的設備列表,具體的能夠看一下,我以爲這是5.0裏很是很是不錯的一個功能。

09- 新預處理選項


預處理功能也作了改進,引入了稱爲替換的新預處理選項,聽起來只是小小的改變,僅僅是用一個字符串替換另外一個字符串,實際使用過程當中,有很大做用。使用替換選項能夠幫助咱們在文本及其數字表示之間建立數據映射。例如,咱們能夠刪除或替換不一樣的字符和字符串。固然,咱們可使用正則表達式來實現一樣的功能,不過我認爲預處理更方便也更容易實現。

10- JSON路徑的新運算符


另外一個小改進是JSON路徑的新運算符,增長了波浪號。它的功能是返回匹配元素的屬性名。例如,若是我想要獲取consul服務列表,使用API鏈接到consul,要求獲取consul服務列表,則會返回一個服務列表。而後咱們可使用這個運算符來提取服務名稱。在個人例子中,結果是consul, content, login和mail,很是容易處理。

11- 對與同一問題相關的電子郵件進行分組


Zabbix5.0還有另外一個小的易用性改進,很小,可是很是實用,那就是對與同一問題相關的電子郵件進行分組。所以,在你的電子郵件客戶端中,您能夠看到按事件ID和媒體類型分組的全部電子郵件。例如,若是我收到一故障告警消息,個人服務ABC有問題,而後我收到一條恢復消息,問題已恢復,此這兩條消息將被納入同一組。所以,雖然這種改進至關小,但它確實很是有用。

12- 支持IPMI用戶和密碼的用戶宏


此外,還有支持IPMI用戶和密碼的用戶宏新功能,很是有助於維護安全相關的信息,也更加的規範,不要忘了這裏也支持保密宏,保密標記在這裏也是支持的。批量更新主機和模板的用戶宏,能夠很是有效地對用戶標籤進行各類操做。咱們只需選擇主機數量或更接近的一組模板,而後就能夠從一組主機或一組模板添加、更新、刪除或刪除全部宏和用戶宏。這個很是棒。還有什麼?

13- 媒介消息模板

媒介消息模板,也是最新的功能之一,能夠幫助咱們更高效的配置Zabbix告警,來看看怎麼操做的。從Zabbix 5.0開始,在媒介類型的配置裏,例如本例中的電子郵件媒介類型,將會有一個名爲message templates的新選項卡。你能夠爲問題通知、問題恢復通知或問題更新通知、發現通知等每種消息類型定義一個消息模板。所以,如今你能夠在媒體類型級別執行操做,這基本上意味着,能夠看到這些消息類型,當你定義消息模板時,能夠像咱們一般所作的那樣定義主題,定義消息自己。以前,咱們只能在操做級別維護這些模板。若是監控大型環境,有不少用戶,咱們可能會定義不少不少操做,可能會有數百數千個不一樣的操做。以標準方式維護模板和全部消息將是一場噩夢。對於咱們想要發送給用戶的消息類型,很難強制執行一些標準,有了媒介消息模板,這就很容易實現。


在Zabbix5.0中,增長了一個新的命令行程序,來調試Javascript腳本。在Zabbix中JavaScript語言如今用的不少了,能夠用來作預處理,也能夠用來建立Webhook。這個新工具能夠幫助咱們測試咱們的Webhook腳本,或預處理腳本,也能夠用來調試數據,瞭解預處理的複雜流程。命令行可執行程序的名稱爲Zabbix_js,若是咱們執行Zabbix_js help,你能夠看到命令的幫助選項,能夠指定js腳本的名稱,並指定輸入的參數及輸入的文件。這裏爲你們舉例,例如我有一個名爲test.js的JavaScript文件。test.js只是一行js代碼,內容爲返回輸入的對數值。在這種狀況下,我能夠進行很簡單的測試,-p 指定輸入的數據爲10,便可看處處理的結果。第二個例子,在不少狀況下,js腳本執行可能須要很長的時間,輸入參數也可能須要不少行,固然也能夠是一個1M左右的文件,爲何不呢?這種狀況下,能夠指定從文件讀取輸入數據。在個人示例中,個人輸入爲一個my.json文件。在第三個示例中,我引入了Zabbix.log函數,來簡化個人腳本的故障排除和調試,很是的簡單易用。只需調用Zabbix.log函數,並指定日誌級別,指定要做爲輸出查看的值,就能夠將其用於故障排除。

恭喜你,已經看了一半啦,繼續加油!


14- 觸發器對文本操做的支持


5.0版本引入了觸發器對文本操做的支持,因此如今觸發器支持文本操做,這是個很好很好的消息!這使得以前觸發器表達式不支持的許多用例如今能夠支持了。讓我來舉幾個典型的例子,來講明何時會使用到文本觸發器。有時候,咱們但願驗證軟件版本是否與預期的軟件版本相匹配,在許多狀況下,軟件版本是文本字符串。或者在日誌文件監控時,咱們須要將一項的最新值與另外一項的最新值進行比較。也可能但願將先前的值與當前的值進行比較,文本值,咱們如今指的是文本值。對於文本值可支持等於或不等於的邏輯運算,讓我再來舉幾個例子。


正如你在第一個示例中看到的,咱們在比較期間收到的最後一個值是文本常量,如今咱們也支持文本常量了,只須要用雙引號引發來就能夠用來判斷。如檢查版本5.0.0是否等於5.0,或者是否等於定義爲用戶宏的Zabbix版本,能夠這樣來實現。因而可知將宏做爲常量配置,是一種很是好的用法。咱們還能夠將上一個值與前一個值進行比較,看看如今的值是否不一樣。例如,有人安裝了新版本的軟件,咱們想要檢測咱們是否有新版本的軟件,校驗和是否已更改或相似的狀況。或者咱們也能夠比較不一樣項的值。例如,咱們再須要確保不一樣的服務器和不一樣的羣集節點運行的軟件版本徹底相同,在這種狀況下,咱們可使用這樣的觸發器。

15-自動發現

自動發現,這也是多個更新中的一項,在Zabbix 5.0引入了對JMX發現的支持,對JMX計數器的發現,咱們有兩個新的檢查,jmx.get[]和jmx.discovery[]。這一功能可以返回JMX檢查的json數組,咱們能夠將其用於數據收集,或數據收集和低級發現。還有什麼?咱們還引入了Windows性能計數器的發現,又是一個很是有用的功能。


例如,若是你想要了解有多少個CPU,或者在Windows註冊表中有多少其餘資源,那麼就可使用發現性能計數器。更好的ODBC監控,在Zabbix5.0以前,爲了進行ODBC監控,咱們必須在odbc.ini文件中定義和配置大量參數,並且這都是須要在Zabbix外部進行獨立的文件配置,並且配置是比較麻煩的。若是配置發生變動,須要更改2個地方,一個是ODBC配置文件,另一個是監控指標配置。如今關於ODBC的配置,只須要在監控指標上配置相應的屬性便可。好比定義驅動程序名稱、服務器IP地址、密碼、用戶名等,ODBC鏈接所需的全部內容均可以在監控指標上配置實現,因此對於那些使用Zabbix,經過ODBC驅動程序進行數據庫監控的人來講,這是一個很是很是好的消息。


還有ipmi.get,這是新增長的IPMI傳感器發現,與jmx發現的實現很是類似,它會以json格式返回IPMI傳感器列表,能夠將其用於自動發現和數據收集。

16- 監控指標測試


另外一個很好的功能就是能夠在UI界面進行監控指標的測試。建立了一個新的監控採集項以後,具體怎麼操做呢?配置參數和輸入選項以後,如何判斷這些指標是否配置正確,而且採集正常的呢?從Zabbix 5.0開始,咱們有一個很好的解決方案,在前端界面會有一個測試的按鈕。只要點擊這個測試按鈕,Zabbix會當即顯示從agent、SNMP agent或jmx agent採集到的內容,以及全部預處理步驟的結果,而且還會顯示每一個步驟以後的數據結果,以及最後採集的數據是怎樣的,這是一個很是好的功能。


在出現問題的時候,好比因地址配置錯誤致使主機不可用,或agent不可用,就能夠收到直觀的告警消息。不要忘記咱們也能夠對媒介類型進行測試,在4.2或4.4中已經引入了這個功能,在媒介類型列表,點擊測試按鈕便可,就能夠看到你的 媒介類型、集成的告警系統或者信息系統是否正常工做。


此外咱們還引入了對原型的用戶宏支持,在某些狀況下,這個功能頗有用。例如,當咱們在進行低級別發現時,咱們須要收到一些值,這些值可用於這些宏,我認爲這是一個很是很是好的功能,特別是對於Zabbix的高級用戶。


除此以外,咱們還引入了對Float 64數據類型的支持。事實上,咱們這樣作的緣由有不少。首先,Float 64容許咱們保留更大的數字。第二個緣由是Float64數據類型的兼容性,你能夠在不一樣的數據庫和不一樣的系統中找到這些數據類型。例如 Prometheus也使用Float 64數據類型,所以它們如今能夠兼容。爲了使用新的數據類型,若是要從之前版本的Zabbix升級,須要爲MySQL、Postgres和Oracle執行double.sql文件,這樣你的數據庫結構將升級,而且能夠利用Float64的優點。

17- 可擴展性提高


此外,咱們還有大量的可擴展性方面的改進,以確保Zabbix能夠支持擴展處處理數百萬臺設備。這些變化包括咱們去掉了下拉菜單,下拉菜單是一個UI元素,可是可擴展性不強,特別是對於那些想要顯示幾百臺、幾千臺甚至幾萬臺設備的人來講,這是不能實現的。所以,咱們採用了一個高性能的開源工具來實現。此外,咱們有一個硬編碼的最大尺寸概覽網格。咱們還對監控主機的圖形進行了從新設計,如引入了多選圖形、顯示降低曲線圖、一些限制等。咱們還引入了儘量多的分頁功能,因此如今全部頁面、全部視圖頁都支持分頁。因此如今若是你有數十萬設備,Zabbix UI依然能很好的工做。

18- 時序數據庫


能夠經過壓縮數據來提升效率。這是什麼呢?你們已經知道Zabbix目前支持時序數據庫。時序數據庫實際是在PostgreSQL數據庫的基礎上加上一個擴展插件,TimescaleDB在PostgreSQL上安裝時序數據庫擴展插件便可實現。時序數據庫有諸多優勢,好比實現了自動分區。這個很是好,這樣的話使用Zabbix和TimescaleDB的組合,TimescaleDB會自動管理與分區相關的全部事情,不須要任何人爲干預和配置,全部與數據分區相關的操做都由數據庫自動管理和控制,所有自動。時序數據庫的另外一個巨大優點,是它是面向高性能場景的數據庫。在某種意義上,不管什麼數據庫的大小,它均可以提供相同級別的性能。假設您有一個100G的數據庫,隨着數據庫的大小的增加,大小到了 1TB,所能提供的性能是同樣的。TimescaleDB是一個很是好的時序數據庫,可擴展性很強。

19- 數據壓縮功能


如今咱們還引入了對數據壓縮功能的支持。這是一個很是好的消息。這意味着能夠對存儲的數據進行壓縮。你只須要指定須要壓縮的數據,在個人例子裏,壓縮的數據是儲存時間超過7天的數據,這樣超過7天的數據、趨勢數據和歷史數據都會被壓縮。


這一功能很是不錯。有什麼意義呢?這意味着數據將佔用更少的磁盤空間。咱們作了一些測試,在生產環境中,使用Zabbix 4.x版本的一個用戶,數據爲355GB。但在切換到時序數據庫並啓用數據壓縮功能後,數據大小減小到43GB。如你所見,壓縮比約爲5倍多,是很是不錯的一個功能。

20- 將SNMP設置項移動到主機接口配置項


除此以外,咱們在Zabbix5.0中實現的另外一個改進是將SNMP設置項移動到主機接口配置項。目前,對於SNMP類型,一個SNMP主機接口只有一種SNMP類型,而不是SNMP版本一、SNMP版本二、SNMP 版本3幾個版本;對於監控指標類型,也只有一種項類型,全部SNMP相關參數都移到了Zabbix接口。SNMP版本或上下文名稱、安全名稱、安全級別等均可以在主機接口級別設置。那咱們爲何要這麼作呢?首先,這固然能夠幫助簡化模板配置,這樣只需一個模板便可,而不是配置三個不一樣SNMP版本的模板。另外一個好處就是從一個版本的SNMP切換到另外一個版本要容易得多。對於那些使用Zabbix進行網絡監控,或網絡設備監控的人而言,這是一個很是有用的功能。

21- proxy可用性

還有什麼?可用性監控將關注proxy可用性,這是一個巨大的變化。讓我向你們介紹一下具體的細節,假設咱們想要監視主機A、主機B和主機C的可用性,它們是經過Zabbix proxy監控。如今先讓咱們瞭解Zabbix proxy如何檢查主機是否不可用,可使用nodata函數,例如,若是一分鐘沒有收到數據,咱們就認爲主機不可用,出現了問題。可是也可能有這種場景,因爲咱們正在進行Zabbix proxy升級,或者Zabbix proxy因某些網絡問題致使不可用。proxy不可用以後,咱們會收到什麼告警消息呢?在Zabbix 4.x中,咱們將收到四條不一樣的消息,主機a、主機b、主機c不可用,proxy不可用。在版本5.0中,狀況大不相同,由於5.0版更加智能,知道主機A、B和C是經過Zabbix proxy代理監控的,如今沒法肯定被proxy監控的主機是否不可用,但能夠100%肯定該Zabbix proxy不可用。所以,Zabbix5.0會生成Zabbix proxy不可用的一條消息,對於其餘主機主機的狀態是沒法判斷的。


若是你想要監控主機可用性,咱們仍然可使用nodata函數。如今默認狀況下,它反映Zabbix proxy可用性。可是,若是您想要使用nodata函數,但你不關心是Zabbix proxy不可用仍是host不可用。無論發生什麼,你都但願接收警報。那麼你可使用strict選項。在這種狀況下,Zabbix在使用nodata函數時判斷主機可用性時不會考慮Zabbix proxy的狀態。

22 -全局管理低級別發現規則


Zabbix 5.0容許咱們全局管理低級別發現規則。是什麼意思呢?低級別發現規則列表,如今支持不一樣選項的過濾,例如狀態,例如本例中的主機組選擇、主機選擇等。若是你想要在一個地方看到哪些低級別發現規則不受支持,或者有一些問題,或者被禁用,咱們可使用這些過濾選項,這確實有助於咱們清楚地瞭解系統的總體運行狀況。

23- 支持取消確認事件的功能


Zabbix5.0支持取消確認事件的功能。你們知道事件是能夠確認的,可是如今能夠取消確認。那麼它是如何工做的呢?在問題更新頁面彈出窗口,能夠看到不少選項,能夠更改嚴重性、添加一些註釋,或確認問題,若是問題已確認,如今也能夠取消確認。咱們爲何須要這個功能?我認爲有不少場景是須要的。首先,很明顯,能夠修復問題,因爲咱們操做失誤,或者因爲咱們由於某些緣由確認了問題,如今咱們能夠取消確認。或者,咱們可使用這個功能來建立一個可能更好、更復雜的工做流,進行對應的處理。

24- 對低級別發現規則覆蓋的支持


Zabbix 5.0引入了對低級別發現規則覆蓋的支持。這是一個很是強大的功能。若是你使用低級別發現規則,必定要看一看,這個功能會大大簡化你的配置。具體如何操做呢?舉個簡單的例子,假設我發現了不一樣的文件系統,可是我想以獨立配置發現Oracle文件系統。那我該怎麼作?首先須要建立一個覆蓋規則,並指定文件系統是oradata。文件系統將Oracle數據庫保存在數據文件系統上,那麼在本例中,我但願與此先關的觸發器具備不一樣的問題嚴重級別,而不是默認狀況下的警告嚴重級別,而是將與Oracle文件系統相關的問題配置爲較高嚴重級別。基本上是這個原理,它能覆蓋監控項和觸發器的特定屬性。


再舉一個例子,假設我不想發現臨時文件系統。首先我須要定義一個篩選器,文件系統與tmp匹配。而後,若是它與tmp匹配,那麼我設置Zabbix不發現那個項原型。只須要在原型操做選項裏,自動發現,設置爲否。這種狀況下,則不會建立項,也不會發現它們。但正如你所看到的,咱們也能夠更改不一樣的選項,例如,能夠設置特殊的更新間隔,或者設置特殊的歷史存儲選項,或趨勢存儲選項,建立默認禁用或啓用。實際上有不少不一樣的操做方式,容許咱們在多個場景中使用此功能。因此若是發現選項設置爲否,則這個項不會被建立。

25- 其餘小功能更新

好了,這就是一些主要的功能,在5.0中也引入了大量的小功能更新,這裏我給你們快速的過一下。咱們增長了新的宏,如今咱們在告警通知中支持新的宏{HOST.ID},能夠幫助咱們構建URL,指向Zabbix的主機地址。還支持新的宏{EVENT.TAGSJSON},支持宏事件持續時間。我很是喜歡這個功能。舉個例子,一個簡單的例子,恢復主題中可使用這個宏來顯示事件持續時間。在個人示例中,我將收到一條消息,「設備宕機已解決,故障持續5分鐘」。能夠看到問題已經獲得解決,那麼我能夠清楚地知道停機時間是何時,宕機持續了5分鐘。


還有不少其餘的改進,我將介紹其中的一些,javascript中支持base64編碼處理。在某些場景下,這可能會頗有用。還增長了一個新的API來訪問審計日誌,支持監控Zabbix組件的版本。支持SNMP緩存,這對於那些使用SNMP v3監控的人很是有好處。增長了監控指標key的長度,以前是255個字符,如今已經擴展到2048個字節。


此外,咱們還刪除了一些遺留問題。例如,再也不支持IE瀏覽器,我認爲這對咱們全部人都有好處,特別是對Zabbix開發人員來講,由於他們再也不須要支持IE11了。咱們還放棄了對IBM DB2數據庫的支持,所以不能再使用DB2做爲Zabbix的後端數據庫了。php如今支持的最低版本是7.2,因此若是你要從之前的Zabbix版本升級到Zabbix 5.0,請確保您的系統運行的是php版本7.2或更高版本。


升級依舊很是簡單,只需安裝新的服務器二進制文件、代理二進制文件和前端文件便可完成。但歷史數據升級到Float64可能須要一些時間,不過這只是一個可選項。正如我在前面提到的,須要提早升級php到7.2版本,數據庫無需作任何升級。同時Zabbix 5.0再也不支持IBM DB2數據庫,更多細節能夠查看官方文檔的版本發佈說明。

最後- Zabbix 5.2簡介

如今,我想給你們簡單介紹一下Zabbix 5.2的新功能。Zabbix 5.2即將發佈,咱們計劃於今年10月中旬正式發佈Zabbix 5.2。不過具體時間要取決於實際的進展,正常來講的話,目前距離5.2的發佈還有大約兩三週的時間,所以我會作一個很是很是簡短的概述,讓你們知道一下版本5.2中會有什麼樣的功能。


首先我須要再次強調的是,產品路線圖已經在Zabbix官網發佈了,是的,你能夠訪問zabbix.com來獲取相關信息,在路線圖頁面能夠看到Zabbix 5.二、5.4和6.0的新功能的描述,其中,版本5.2的說明中包含至關詳細的信息,所以你能夠看到5.2中可能會實現哪些功能,用戶很快就能用到哪些功能。


首先能夠看到Zabbix 5.2支持智能問題異常檢測,事實上,這是咱們好久之前就已經開始作的功能。咱們將這一新功能稱爲Zabbix Insight,它確實有助於Zabbix以一種智能的方式來比較當前狀況。例如,對比上個月的狀況,和一個月前的狀況。是的,可以生成像平均交易數量這樣的消息,好比,9月份交易增長了24%,這是一個很是強大的功能。


還有Zabbix UI和API將支持負載均衡,這很是很是好,特別是對於那些在Kubernetes或Docker Swarm環境中部署Zabbix的用戶。數據、收集和觸發器處理的清晰分離,我不肯定可否在5.2中作實現,但它可能會出如今Zabbix 5.4版本中。這是爲了更好的提升性能和橫向可擴展性。開箱便可支持監控IoT設備,支持MQTT協議和Modbus協議。


更安全的監控,咱們在Zabbix 5.0中已經投入了大量精力來提高Zabbix的安全性,5.2中咱們將引入兩個有趣的功能。一個是對Zabbix用戶角色的升級,能夠更精細地管理Zabbix用戶對Zabbix UI、API等的訪問權限。此外,Zabix5.2還將支持在外部數據庫中存儲一些保密信息,這也是爲了解決安全性的問題。好比保密宏、用戶密碼、token、api key都會存儲到外部安全的數據庫中,而再也不存儲在Zabbix數據庫中。我也很是喜歡這個功能。


另外將會有許多與可用性和用戶體驗相關的新功能。首先是在一些頁面,好比監控問題,或者主機維護等頁面添加篩選器,以便更好的篩選主機。另外就是會支持用戶配置不一樣時區,這個功能對於一些跨國公司或企業會特別有用。模版的版本,我但願在新版中能實現這個功能,但說實在的,我目前還不可以肯定。

對於全部的導入和導出操做,咱們將從JSON和XML格式切換到YAML,並將其做爲默認格式。因此,若是你想要共享模板,模版將被導出爲YAML,而不是XML。所以,從Zabbix5.2開始,您能夠更輕鬆地對其進行編輯。Zabbix5.2還有一些其餘的改進,但我在這裏就不做詳細介紹了,由於Zabbix5.2目前尚未發佈。

最後感謝你們的聆聽,但願你們在2020Zabbix中國峯會度過難忘的時光,咱們2021年見!

想聽我分享什麼主題,或有什麼想知道的,歡迎留言,說不定我會回答你哦!

點擊預報名2021Zabbix峯會

Zabbix峯會是一年一度的技術盛會,2021Zabbix中國峯會將在上海舉辦!傳承幾大固定精彩板塊:演講分享、Workshop實踐操做課、圓桌晚宴和趣味活動。悄悄告訴你,如今報名確定比早鳥票還優惠~



聯繫咱們

電話:13817720274(微信同號)

郵箱:china@zabbix.com

網站:www.zabbix.com/cn  www.grandage.cn

一鍵關注

關注公衆號

加入社區羣


點擊在看,把好文章分享給你的朋友(•̀ᴗ•́)و ̑̑

本文分享自微信公衆號 - Zabbix開源社區(china_zabbix)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索