前言zabbix是一個基于WEB界面的提供分布式系統(tǒng)監(jiān)控以及網(wǎng)絡(luò)監(jiān)視功能的企業(yè)級開源解決方案,。zabbix能監(jiān)視各種網(wǎng)絡(luò)參數(shù),,保證服務(wù)系統(tǒng)的安全運營,,并提供柔軟的通知機(jī)制以快速定位/解決存在的各種問題,是系統(tǒng)運維的常用神器之一,。 兩周前,,向老板提出自己的一個建議,想在我們自己的開發(fā)測試環(huán)境里,,搭建一套zabbix系統(tǒng),,把Local的環(huán)境監(jiān)控起來。之所以有這個想法,,主要基于以下幾點:
以前利用閑暇時間了解和簡單用過Nagios,因為沒有項目作支撐,,沒有深入研究,,但對于系統(tǒng)監(jiān)控有個基本的了解。這次研究和搭建zabbix基本沒有花太多的時間,。半天時間zabbix的安裝和部署,。一個星期不到完成zabbix的學(xué)習(xí),項目監(jiān)控,。 網(wǎng)上搜索zabbix的文章一大堆,,很多的都是把zabbix官網(wǎng)文檔的某個特性,某個應(yīng)用稍做翻譯而已,。感覺有點零散,,不夠系統(tǒng)。如果你想很深入的了解zabbix的特性,,建議直接看zabbix官網(wǎng)的英文文檔(http://www./documentation/),。本文主要從一個項目部署的角度一步一步來介紹zabbix 2.2,希望對于那些想利用zabbix來做監(jiān)控的初學(xué)者,,在短時間內(nèi)快速上手,。 1 項目+zabbix
1.1 zabbix能做什么簡單點說,zabbix是一個監(jiān)控數(shù)據(jù)的收集器和dashboard,。監(jiān)控數(shù)據(jù)中通用的數(shù)據(jù)可以由zabbix agent本身來負(fù)責(zé)收集,。對于應(yīng)用數(shù)據(jù),,需要應(yīng)用本身提供。zabbix提供接口給第三方應(yīng)用負(fù)責(zé)收集和做可視化,。 zabbix能監(jiān)控:
1.2 zabbix常用術(shù)語zabbix操作很簡單,如果你能深入理解這些術(shù)語,,甚至都不需要教程,,主機(jī)web界面多點點,多玩玩,。無師自通,。
1.3 zabbix安裝配置zabbix server上安裝zabbix-server組件,,被監(jiān)控主機(jī)上安裝zabbix-agent, zabbix-sender 官網(wǎng)提供兩種方式安裝,任選其一即可,。我比較傾向于從packages安裝,,簡單快速(快一點一兩個小時,慢一點半天到一天,。),。由于每個安裝環(huán)境不可能保證一樣,難免會遇到些安裝錯誤問題,。一句話:有什么錯誤,,直接google,你遇到的問題,,別人早就遇到過了,。
1.4 創(chuàng)建用戶組和主機(jī)監(jiān)控組
zabbix安裝好了后,打開zabbix web頁面(http://ZABBIX-SERVER-IP/zabbix),。我們可以根據(jù)項目信息(項目組成員,,項目中需要被監(jiān)控的機(jī)器,etc)來創(chuàng)建用戶組,,用戶,,主機(jī)監(jiān)控組,主機(jī),。創(chuàng)建用戶組和主機(jī)監(jiān)控組,,是為了方便項目的擴(kuò)展和管理。 1.4.1 創(chuàng)建主機(jī)監(jiān)控組和主機(jī)
1.4.2 創(chuàng)建用戶組和用戶
將主機(jī)加入到主機(jī)組,,將用戶加入到用戶組,。制定用戶組到主機(jī)組的讀寫權(quán)限,。主機(jī)填寫時,,根據(jù)Host類型鏈接相應(yīng)的template,,如Template_OS_Linux(可以完成對主機(jī)CPU/Memory/Disk/Network的監(jiān)控) 1.5 實現(xiàn)主機(jī)基本監(jiān)控
接下來配置下被監(jiān)控主機(jī): 配置完后,,重啟zabbix-agent,。通過zabbix web頁面我們,我們可以看到該主機(jī)的一些基本監(jiān)控信息(CPU/Memory/Disk/Network)數(shù)據(jù)了,。該主機(jī)已經(jīng)被監(jiān)控起來了,。 1.6 如何自定義監(jiān)控數(shù)據(jù)
通過1.4我們已經(jīng)實現(xiàn)了對主機(jī)一些基本系統(tǒng)信息的監(jiān)控。這一節(jié)進(jìn)一步擴(kuò)展如果監(jiān)控自定義的數(shù)據(jù),,如mysql的讀寫性能,,項目中我們關(guān)心的一些組件KPI等。 常用的兩種數(shù)據(jù)定義類型:zabbix agent和zabbix trapper,。因此方法也相應(yīng)的有兩種,。下面以監(jiān)控磁盤/dev/sda的disk IO讀寫速度為例。 1.6.1 zabbix agent:UserParameter
實際項目中,,可以把UserParameter寫到/etc/zabbix/zabbix_agentd(根據(jù)Include可配置)的一個新文件,。磁盤讀速度通過一行shell腳本取得。對于復(fù)雜點數(shù)據(jù)的獲取,,可以編寫相應(yīng)的腳本完成,。 重啟zabbix-agent后,我們可以看到web頁面已經(jīng)加入了對用戶自定義的磁盤/dev/sda讀的監(jiān)控,。 1.6.2 zabbix trapper
與zabbix agent方式不同的時,,zabbix trapper是由被監(jiān)控機(jī)器主動向zabbix server發(fā)送數(shù)據(jù)。因此不需要安裝zabbix agent,。也不需要配置host,。只需要發(fā)送數(shù)據(jù)即可。
zabbix_sender是zabbix項目中得一個客戶端。這里,,我們當(dāng)然不一定需要通過zabbix_sender發(fā)送給zabbix server,。我們可以自己寫一個zabbix sender功能模塊利用zabbix sender協(xié)議。這里有一篇很好的文章關(guān)于zabbix sender協(xié)議介紹和一個用Python實現(xiàn)zabbix sender的模塊(http://itnihao.blog.51cto.com/1741976/1343670),。 1.7 批量導(dǎo)入監(jiān)控數(shù)據(jù)通過1.6,,對于一般項目進(jìn)行簡單的監(jiān)控基本沒太大的障礙。實際項目當(dāng)中,,很多的監(jiān)控數(shù)據(jù)腳本,,監(jiān)控數(shù)據(jù)定義可以拿來直接應(yīng)用,沒必要重新造輪子,。還是拿磁盤disk io為例,,監(jiān)控數(shù)據(jù)的獲取方法通用,,我們沒必要每個item都自己定義,自己獲取,。圈內(nèi)很多好心人在網(wǎng)上把這些數(shù)據(jù)以模板方式共享,。因此我們直接導(dǎo)入,然后把我們需要監(jiān)控這disk io的主機(jī)鏈接這個模板就可以了,。這樣就可以完成zabbix server段批量數(shù)據(jù)的導(dǎo)入,。這里有個很好的例子(http://www./19/getting-hard-disk-performance-stats-from-zabbix) 1.8 數(shù)據(jù)可視化
通過web頁面Monitoring下面的子項Overview或Latest data我們可以查看到最新和歷史的監(jiān)控數(shù)據(jù)。但總感覺還少了點什么,,如果能夠講這些數(shù)據(jù)已圖形,,表格或者其他方式更加直觀的方式顯示就更好了。zabbix可以幫我們做到,,把這些數(shù)據(jù)繪制成圖形,。 1.8.1 Create Graph | Create Screen | Create Slide shows
在模板里創(chuàng)建圖形,每個鏈接了該模板的host都會自動加入創(chuàng)建的圖形,。 Host里創(chuàng)建圖形,,只有該Host才會加入該圖形。 Screen是可以由Graph,,issue, Map等組成,。 Slide shows由Screen組成。 1.9 報警通知和采取行動
當(dāng)你在用zabbix監(jiān)控一個實際項目時,。web界面有數(shù)據(jù),,有圖形,看上去很美,。但還不夠,。真正發(fā)現(xiàn)問題時,我們希望zabbix能夠及時報警通知和采取一定的行動,。當(dāng)然,,這些都是zabbix擅長的。 用戶場景: 我們的某個應(yīng)用A會在/log/下產(chǎn)生大量的log文件,,慢慢的會把磁盤空間占滿,。我們希望zabbix能幫我們監(jiān)控/log/下空間大小,當(dāng)空間大小大于一定值的時候,,我們希望能夠收到一份email通知,,刪掉以前的log,只保留一份正在被寫得log文件,。 步驟:
具體創(chuàng)建trigger和action直接看zabbix官方文檔,,很簡單。 總結(jié)
寫著寫著,,突然發(fā)現(xiàn)沒有附上一個截圖。對于這種工具類型的文章,,沒圖顯然不夠直觀,。回想這幾天自己邊學(xué)邊用心得,,當(dāng)時其實更多的是希望有這樣一篇項目向?qū)再|(zhì)的文章整體了解zabbix,。一些具體的操作,對于一個搞IT的人來說,,有針對性的看看官方文檔,,應(yīng)該是一件很簡單的事情。好吧,,王婆賣瓜自賣自夸,。不管怎么樣。還是希望對想用zabbix來做監(jiān)控的人有點幫助,。 結(jié)合我們production環(huán)境里zabbix的配置和監(jiān)控項目,,本文從一個項目的角度來分享部分zabbix的特性,對于普通的項目,,足夠了,。如果你想深入了解zabbix。請看zabbix官方文檔,。 |
|