Zabbix的監控流程能夠簡單描述爲:數據採集-->數據存儲-->數據分析-->數據展現-->監控報警php
數據採集:Zabbix經過SNMP、Agent、ICMP、SSH、IPMI等進行數據採集html
數據存儲:Zabbix存儲在MySQL上,也能夠存儲在其餘數據庫java
數據展現:web界面展現、(移動APP、java_php開發一個web界面也能夠)node
數據報警:郵件報警、微信報警、短信報警、報警升級機制linux
Zabbix的監控配置流程能夠簡單描述爲:web
告警是由一系列的流程組成,首先是觸發器達到閥值,產生一個事件,接下來由Action對事件信息進行處理,其中包括兩部分:第一部分是發送消息,即將告警信息發送給用戶,第二部分是執行命令,即將事件用命令進行處理,達到對事件故障自動嘗試恢復的效果。數據庫
Host groups(主機組)→Hosts(主機)→template(模板)→Applications(監控項組)→Items(監控項)→graph(圖形) →screen (圖形分組)→Triggers(觸發器)→Event(事件)→Actions(處理動做)→Media types(告警升級|1.執行遠程命令2.發送告警郵件)→User groups(用戶組)→Users(用戶)→Medias(告警郵件)vim
在實際生產使用的時候,Items、Trigger、Graph採用模板來進行監控,模板特色就是能夠重複的事情一次完成,修改了模板等於修改了全部調用此模板的主機。這樣可解放運維的雙手服務器
Graph不是必需的,由於沒有配置圖形,數據獲取並不影響,獲取數據是Items的功能。可是對於使用ZabbixWeb界面用戶來講,沒有圖形等於沒有數據,所以重要的Items必須添加必要的圖形以作可視化展現。若是想集中查看圖形,能夠經過screen功能。微信
建議:對同一屬性的主機或模板,儘可能概括到分組,方便之後管理。分組原則建議以下。
q 以地理位置進行劃分。
q 以業務爲單位劃分組。
q 以機器用途劃分。
q 以系統版本劃分。
q 以應用程序分組。
q 其餘方式等。
分組的目的是將同一屬性的主機歸類,若是你不想將新添加的主機概括爲自定義的分組,可使用默認的分組。
1. 點擊Configuration→Host groups上的按鈕Create host group,如圖2-3所示。
圖 2‑1
2. 單擊後會出現一個添加新主機組的界面,如圖2-2所示。
圖2-2
在圖2-2中」Group name」是組的名稱:」Host Host in」是選擇那些設備屬於這個新添加的組。
3. 單擊Save保存,新添加的主機組就能夠顯示在主機組列表中,如圖2-3所示。
圖2-3
監控項、觸發器、圖形、Web、Discovery等都是存在於主機之上的,因爲多個主機都會用相同的監控配置,所以,能夠對這部分同類的數據進行概括抽象,即將這些數據作成模板。當咱們須要對其餘監控數據進行配置的時候,只須要對相對應的主句添加對應的模板便可。
1. 配置模板的步驟爲:單擊→Configuration→Templates→Create template 如圖2-4所示。
group:能夠選擇在哪一個組建立該模板
import:能夠導入模板
圖2-4
2.填入模板名稱和所屬的組,如圖2-5所示。
圖2-5
4. 模板具備繼承的功能(將一個模板在另一個模板中使用),如圖2-6所示。
圖2-5
搜索當前已經存在的模板,而後單擊Add添加-點擊下面的Add。
5.模板中也能夠設置宏,如圖2-6所示。
宏主要是對變量定義,設置宏的做用是方便後面再Items、Trigger中引用,在模板中配置一個宏,在不一樣的主機對該宏設置不一樣的變量值,從而達到模板通用的目的。
圖2-6
6.查看新建的模板,如圖2-7所示。
圖2-7
能夠看到,Items中已經有32Items了,是繼承與trt-linux-basic模板的。之後會詳細講解如何在模板中添加其餘的Items。
1. 添加主機的目的是對具體的設備進行監控,步驟爲:依次單擊Configuration→Hosts→Create host,如圖2-8所示。
圖2-8
2.在圖2-8中單擊Create host,出現如圖2-9所示的界面。
圖2-9中各參數的詳細說明如表2-1所示。
圖2-9
表2-1
參數 |
描述 |
||
主機名(Host name) |
輸入一個不重複的主機名。編輯該名稱對應客戶端的配置文件時,主機名這一項必須與此處輸入的值相同。 |
||
訪問名(Visible name) |
若是設置該名字,那麼它將出如今主機列表、地圖等地方。 |
||
羣組(Group in groups) |
選擇主機所屬的羣組。一個主機必須屬於至少一個主機組。 |
||
新建主機組(New group) |
一個新的羣組將被 ,而後自動鏈接到該主機上。若是爲空,該項將被忽略。 |
||
接口協議(Agent interfaces) |
一個主機支持的主機接口協議包括:Agent、SNMP、JMX、IPMI,若是想增長一個新的接口,單擊」Add」按鈕,而後輸入IP/DNS、鏈接項、端口等信息。 |
||
IP地址(IP address) |
要監控主機的IP地址(可選項、默認是IP) |
||
DNS名稱(DNS name) |
要監控主機DNS能扣解析的名稱(可選項) |
||
與Agent通訊方式(Connect to) |
單擊對應名稱的按鈕 |
IP |
鏈接要監控主機的IP地址(推薦) |
DNS |
要監控主機可以正常解析的DNS |
||
端口(Port) |
TCP協議的端口,Zabbix客戶端使用的默認值是10050 |
||
經過代理服務器進行監控 (Monred by proxy) |
主機能夠經過Zabbix服務器或者Zabbix的一個代理去監控客戶端 |
||
狀態(enabled) |
勾選則開啓 |
2. 選擇模板,如圖2-10所示。
1.能夠添加多個模板。
2.能夠搜索模板進行添加。
圖2-10
3.添加了一個bjstack-template新建的模板,單擊Add保存,而後update更新
Graphs是將數據展現爲圖像,以視覺化形式展現,Graphs的配置存在於主機和模板中。
1.在所在的主機模板中,選擇Graphs,如圖2-11所示。
圖2-11
2.針對web-node1-192.168.90.12這臺主機上的itmes進行配置Graph 單擊「Create graph」按鈕,如圖2-12所示。
圖2-12
3.出現新建圖形的界面,輸入Name,選擇所須要的Items,如圖2-13所示。
圖2-13
4.若是要查看全部的圖形,單擊Monitoring→Graphs選擇對應的Group、Host、Graph,查看cpu load如圖2-14所示。
圖2-14
Screen將多種信息放在一塊兒展現,便於集中展現某個Host的多個信息,或是將多個Host的同一種信息放在一塊兒顯示,這些信息能夠爲Graphs、Maps、Serverinfo等,幾乎涵蓋Zabbix全部的監控信息。
1.經過單擊Configuration-→Screens→Create screen來建立,建立時定義Screen的行數和列數(如圖2-15至圖2-16所示)
圖2-15
圖2-16
2.單擊建立Screen名稱,如圖2-17所示
圖2-17
3.單擊單元格內的Change,選擇選擇cpuload圖形 添加相應的元素,如圖2-18、圖2-19所示
圖2-18
圖2-19
3. 配置好後,經過單擊Monitor→Screen,選擇相應的Screen組,如圖2-20所示。
圖2-20
基於剛剛的web-node1建立觸發器,選擇對應的Host/Template(模板會自動關聯至主機),建立觸發器CPU Load如圖2-21、圖2-22、圖2-23、圖2-24是對觸發器進行設置的示例
圖2-21
圖2-22
圖2-23
圖2-24
最後效果如圖2-25、圖2-26
圖2-25
圖2-26
推薦更多Zabbix觸發器支持的函數說明:http://pengyao.org/zabbix-triggers-functions.html(來自姚炫偉翻譯)
推薦Zabbix Trigger表達式實例:http://pengyao.org/zabbix-trigger-example-1.html(來自姚炫偉)
添加完觸發器,能夠打開Zabbix內置的報警鈴聲,如圖2-27
圖2-27
也能夠修改items的報警時間間隔(不是必須),如圖2-28所示
圖2-28
步驟爲:登錄Zabbix Web頁面,單擊Administration→Media Type→Create Media Type(右上角)-如圖2-29
圖2-29
用戶能夠配置Media,發送告警的方式等,點擊Admin,也能夠建立一個新用戶(我這裏只是一個例子)如圖2-30
圖2-30
2.配置一個用戶做爲接收如圖2-31
圖2-31
保存並開啓如圖2-32
圖2-32
配置action,須要以下幾個步驟:
1.在菜單欄中單擊Configuration→Actions。
2.在Event source下拉菜單中選擇事件來源。
3.單擊Create action。
4.設置Action參數,以及報警消息內容。
5.單機Conditions按鈕,設置Action的依賴條件。
6.單擊Operation按鈕,設置執行動做。
經過菜單Configuration→Actions→Create Action來建立Action 如圖2-33、圖2-34
圖2-33
圖2-34
告警消息內容:
報警主機:{HOST.NAME1}
報警服務: {ITEM.NAME1}
報警Key: {ITEM.KEY1}:{ITEM.VALUE1}
嚴重級別: {TRIGGER.SEVERITY}
恢復消息內容:
恢復主機:{HOST.NAME1}
恢復服務: {ITEM.NAME1}
恢復Key:{ITEM.KEY1}:{ITEM.VALUE1}
條件之間的邏輯運算符
1.不在維護期
2.Trigger狀態爲PROBLEM
3.主機是web-node1-192.168.90.12
4.以上條件必須所有知足才能夠發送通知,如圖2-35所示例
圖2-35
觸發器事件成立後有如下兩種動做。
1.發送消息(send message)
2.執行遠程命令(Remote command)
固然還有不少,好比:增長主機、刪除主機、開啓監控、關鍵監控、連接模板、取消模板連接等等。
當出現了Trigger狀態改變時,應嘗試自愈,若是沒法修復,那麼報警升級發送消息通知相關人員。如圖2-36、圖2-37、圖2-38、圖2-39
圖2-36
告警信息將氛圍兩個等級梯度發送,以下圖2-33、圖2-34
第一梯度:1-2步,遠程執行命令重啓Apache,間隔時間爲60s,發送執行2次知道故障恢復。
第二梯度:3-4步,發送給Admin用戶,間隔時間爲60s,發送兩次,知道故障恢復。
首先要支持遠程執行命令,必須開啓遠程執行命令,以及sudo權限
[root@linux-node2 ~]# vim /etc/zabbix/zabbix_agentd.conf
EnableRemoteCommands=1
[root@linux-node2 zabbix_agentd.d]# systemctl restart zabbix-agent
[root@linux-node2 ~]# visudo
zabbix ALL=NOPASSWD: /usr/bin/systemctl restart httpd
圖2-37
圖2-38
圖2-39
若是達到閥值Zabbix會執行遠程執行命令(若是不成功)-最後發送告警郵件,如圖2-40、圖2-41
圖2-40
圖2-41