沿用第5天Zabbix練習,使用Zabbix實現報警功能,實現如下目標:html
自定義的監控項默認不會自動報警,首頁也不會提示錯誤,須要配置觸發器與報警動做才能夠自定報警。nginx
什麼是觸發器(trigger)?web
表達式,如內存不足300M,用戶超過30個等vim
當出發條件發生後,會致使一個觸發事件bash
觸發事件會執行某個動做服務器
什麼是動做(action)?網絡
動做是觸發器的條件被觸發後所執行的行爲架構
能夠是發送郵件、也能夠是重啓某個服務等併發
參考以下操做步驟:curl
實現此案例須要按照以下步驟進行。
步驟一:建立觸發器規則
1)建立觸發器
建立觸發器時強烈建議使用英文的語言環境,經過Configuration--> Templates,找到咱們以前建立的count.line.passwd模板,點擊模板後面的triggers,如圖-1所示。
圖-1
2)觸發器表達式
建立觸發器時須要定義表達式,觸發器表達式(Expression)是觸發異常的條件,觸發器表達式格式以下:
{<server>:<key>.<function>(<parameter>)}<operator><constant>
{主機:key.函數(參數)}<表達式>常數
在如圖-2所示的藍色方框中編寫觸發器表達式,能夠直接手寫,也能夠經過add選擇表達式模板。
圖-2
下面,咱們看幾個表達式的案例:
{web1:system.cpu.load[all,avg1].last(0)}>5 //0爲最新數據
若是web1主機最新的CPU平均負載值大於5,則觸發器狀態Problem
{vfs.fs.size[/,free].max(5m)}<10G //5m爲最近5分鐘
根分區,最近5分鐘的最大容量小於10G,則狀態進入Problem
{vfs.file.cksum[/etc/passwd].diff(0)}>0 //0爲最新數據
最新一次校驗/etc/passwd若是與上一次有變化,則狀態進入Problem
大多數函數使用秒做爲參數,可使用#來表示其餘含義(具體參考表-1)。
avg, count, last, min and max 等函數支持額外的第二個參數time_shift(時間偏移量),這個參數容許從過去一段時間內引用數據。
3)配置觸發器
設置觸發器名稱,如圖-3所示,點擊add添加表達式,填寫表達式:監控項爲帳戶數量,最近300秒帳戶數量大於26(根據系統帳戶數量實際填寫),效果如圖-4所示。
圖-3
圖-4
選擇觸發器報警級別,如圖-5所示,Add建立該觸發器,如圖-6所示。
圖-5
圖-6
步驟二:設置郵件
1)建立Media
經過Administration(管理)-->Media Type(報警媒體類型)-->選擇Email(郵件),如圖-7所示。
圖-7
設置郵件服務器信息,設置郵件服務器及郵件帳戶信息,如圖-8所示。
圖-8
2)爲用戶添加Media
在Administration(管理)-->Users(用戶)中找到選擇admin帳戶,如圖-9所示。
圖-9
點擊Admin帳戶後,在彈出的界面中選擇Media(報警媒介)菜單-->點擊Add(添加)報警媒介,如圖-10所示。
圖-10
點擊Add(添加)後,在Meida Type中填寫報警類型,收件人,時間等信息,如圖-11所示。
圖-11
步驟三:建立Action動做
1)Action動做
Action(動做)是定義當觸發器被觸發時的時候,執行什麼行爲。
經過Configuration(配置)-->Actions(動做)-->Create action(建立動做),如圖-12所示。
圖-12
2)配置Action動做的觸發條件
填寫Action動做的名稱,配置什麼觸發器被觸發時會執行本Action動做(帳戶數量大於26),如圖-13所示。
圖-13
3)配置Action動做的具體行爲
配置動做的具體操做行爲(發送信息或執行遠程命令),無限次數發送郵件,60秒1次,發送給Admin用戶,如圖-14和圖-15所示。
圖-14
圖-15
4)測試效果
在被監控主機建立帳戶(讓帳戶數量大於26),而後登陸監控端Web頁面,在儀表盤中查看問題報警(須要等待一段時間),如圖-16所示。
圖-16
查看報警郵件,在監控服務器上使用mail命令查收報警郵件,如圖-17所示。
圖-17
沿用前面的練習,配置Zabbix的自動發現機制,實現如下目標:
什麼是自動發現(Discovery)?
當Zabbix須要監控的設備愈來愈多,手動添加監控設備愈來愈有挑戰,此時,能夠考慮使用自動發現功能,自動添加被監控主機,實現自動批量添加一組監控主機功能。
自動發現能夠實現:
自動發現(Discovery)流程:
實現此案例須要按照以下步驟進行。
步驟一:自動發現規則
1)建立自動發現規則
經過Configuration(配置)-->Discovery(自動發現)-->Create discovery rule(建立發現規則),如圖-18所示。
圖-18
2)填寫規則
填寫自動發現的IP範圍(逗號隔開能夠寫多個),多久作一次自動發現(默認爲1小時,僅實驗修改成1m),如圖-19所示。配置檢查的方式:HTTP、FTP、Agent的自定義key等檢查,如圖-20所示。
圖-19
圖-20
步驟二:建立動做
1)建立Action動做
經過Configuration(配置)--> Actions Event source(事件源):自動發現(Discovery)-->Create action(建立動做),如圖-21所示。
圖-21
2)配置Action動做具體行爲
配置動做,添加動做名稱,添加觸發動做的條件,如圖-22所示。
圖-22
點擊操做(觸發動做後要執行的操做指令),操做細節:添加主機到組,與模板連接(HTTP模板),如圖-23所示。
圖-23
步驟二:添加新的虛擬機
1)建立新的虛擬機
建立一臺新的主機,驗證zabbix是否能夠自動發現該主機,能夠從新部署一臺新的虛擬機(注意前面的課程,咱們已經建立了虛擬機web2,而且已經安裝部署了Zabbix agent,若是沒有該虛擬機或沒有安裝Agent,則須要前在web2部署Agent),也能夠將舊虛擬機的IP地址,臨時修改成其餘IP。
2)驗證結果
登錄Zabbix服務器的Web頁面,查看主機列表,確認新添加的主機是否被自動加入監控主機列表,是否自動綁定了監控模板。
沿用前面的練習,配置Zabbix主動監控,實現如下目標:
默認zabbix採用的是被動監控,主動和被動都是對被監控端主機而言的!
被動監控:Server向Agent發起鏈接,發送監控key,Agent接受請求,響應監控數據。
主動監控:Agent向Server發起鏈接,Agent請求須要檢測的監控項目列表,Server響應Agent發送一個items列表,Agent確認收到監控列表,TCP鏈接完成,會話關閉,Agent開始週期性地收集數據。
區別:Server不用每次須要數據都鏈接Agent,Agent會本身收集數據並處理數據,Server僅須要保存數據便可。
當監控主機達到必定量級後,Zabbix服務器會愈來愈慢,此時,能夠考慮使用主動監控,釋放服務器的壓力。
另外,Zabbix也支持分佈式監控,也是能夠考慮的方案。
實現此案例須要按照以下步驟進行。
步驟一:添加被監控主機
1)爲被監控主機安裝部署zabbix agent
注意:前面的實驗,咱們已經在web2主機安裝部署了zabbix agent,若是已經完成,則以下操做能夠忽略。
2)修改agent配置文件
將agent監控模式修改成主動模式。
步驟二:建立主動監控的監控模板
1)克隆Zabbix自動的監控模板
爲了方便,克隆系統自帶模板(在此基礎上就該更方便)。
經過Configuration(配置)-->Templates(模板)-->選擇Template OS Linux
-->全克隆,克隆該模板,新建一個新的模板。如圖-24所示。
新模板名稱爲:Template OS Linux ServerActive。
圖-24
2)修改模板中的監控項目的監控模式
將模板中的全部監控項目所有修改成主動監控模式,經過Configuration(配置)-->Templates(模板)-->選擇新克隆的模板,點擊後面的Items(監控項)-->點擊全選,選擇全部監控項目,點擊批量更新,將類型修改成:Zabbix Agent(Active主動模式),如圖-25所示。
圖-25
3)禁用部分監控項目
批量修改監控項的監控模式後,並不是全部監控項目都支持主動模式,批量修改後,會發現有幾個沒有修改主動模式成功,說明,這些監控項目不支持主動模式,關閉便可。
能夠點擊類型排序,方便操做,點擊狀態便可關閉。如圖-26所示。
圖-26
步驟三:添加監控主機
1)手動添加監控主機(主動模式監控)
在Zabbix監控服務器,添加被監控的主機(主動模式),設置主機名稱:zabbix_client_web2 (必須與被監控端的配置文件Hostname一致),將主機添加到Linux servers組,IP地址修改成0.0.0.0,端口設置爲0,如圖-27和圖-28所示。
圖-27
圖-28
爲主機添加監控模板,選擇剛剛建立的模板(主動模式),添加連接模板到主機,如圖-29所示。
圖-29
2)驗證監控效果
查看數據圖表,經過Monitoring-->Graphs菜單,選擇須要查看的主機組、主機以及圖形,查看效果,如圖-30所示。
圖-30
CPU、內存等其餘數據可用正常獲取,可是,查看分區圖表時並沒有數據,由於分區數據採用的是自動發現監控,與普通監控項同樣,修改成主動模式便可,選擇Template OS Linux ServerActive模板,修改Discovery自動發現爲主動模式。如圖-31所示。
圖-31
沿用前面的練習,熟悉zabbix拓撲圖與聚合圖形,實現如下目標:
實現此案例須要按照以下步驟進行。
步驟一:建立拓撲圖
1)建立拓撲
繪製拓撲圖能夠快速瞭解服務器架構,經過Monitoring(監控中)-->Maps(拓撲圖),選擇默認的Local network拓撲圖,編輯便可(也能夠新建一個拓撲圖),如圖-32所示。
圖-32
2)拓撲圖圖表說明
建立完拓撲圖,效果如圖-33所示。
圖-33
步驟二:建立聚合圖形
1)建立聚合圖形
聚合圖形能夠在一個頁面顯示多個數據圖表,方便了解多組數據。
經過Monitoring(監控中)-->Screens(聚合圖形)-->Create screen(建立聚合圖形)便可建立聚合圖形,如圖-34所示。
圖-34
修改聚合圖形參數以下:
2)爲聚合圖形中添加監控圖形
選擇剛剛建立的聚合圖形(web2_host),點擊後面的構造函數(constructor),點擊Change(更改),設置每行每列須要顯示的數據圖表,如圖-35所示。
圖-35
沿用前面的練習,使用自定義key監控經常使用監控項目,實現如下目標:
實現此案例須要按照以下步驟進行。
步驟一:監控Nginx服務狀態
1)準備環境,部署nginx軟件
安裝nginx軟件,開啓status模塊
2)自定義監控key
語法格式:
UserParameter=key,command
UserParameter=key[*],<command>
key裏的全部參數,都會傳遞給後面命令的位置變量
如:
UserParameter=ping[*],echo $1
ping[0], 返回的結果都是0
ping[aaa], 返回的結果都是aaa
注意:被監控端修改配置文件,注意要容許自定義key並設置Include!
建立自定義key
自定義監控腳本(僅供參考,未檢測完整狀態)
測試效果:
登錄Zabbix監控Web,建立監控項目item,點擊Configuration(配置)-->Hosts(主機),點擊主機後面的items(項目),點擊Create item(建立項目)。修改項目參數如圖-36所示。
圖-36
步驟二:監控網絡鏈接狀態
1)瞭解TCP協議
熟悉TCP三次握手,參考圖-37。
圖-37
熟悉TCP鏈接的四次斷開,參考圖-38。
圖-38
2)查看網絡鏈接狀態
模擬多人併發鏈接
查看網絡鏈接狀態,仔細觀察、分析第二列的數據
3)建立自定義key
注意:被監控端修改配置文件,注意要容許自定義key並設置Include。
自定義監控腳本(僅供參考,未檢測完整狀態)
測試效果:
4) 監控netstatus
在監控服務器,添加監控項目item,Configuration-->Hosts點擊主機後面的items
點擊Create item,如圖-39所示。
圖-39