第3章Zabbix完整監控

Zabbix的監控流程可以簡單描述爲:數據採集-->數據存儲-->數據分析-->數據展示-->監控報警

數據採集:Zabbix通過SNMPAgentICMPSSHIPMI等進行數據採集

數據存儲:Zabbix存儲在MySQL上,也可以存儲在其他數據庫

數據展示:web界面展示、(移動APPjava_php開發一個web界面也可以)

數據報警:郵件報警、微信報警、短信報警、報警升級機制

Zabbix的監控配置流程可以簡單描述爲:

告警是由一系列的流程組成,首先是觸發器達到閥值,產生一個事件,接下來由Action對事件信息進行處理,其中包括兩部分:第一部分是發送消息,即將告警信息發送給用戶,第二部分是執行命令,即將事件用命令進行處理,達到對事件故障自動嘗試恢復的效果。

Host groups(主機組)→Hosts(主機)→template(模板)Applications(監控項組)→Items(監控項)→graph(圖形screen (圖形分組)Triggers(觸發器)→Event(事件)→Actions(處理動作)→Media types(告警升級|1.執行遠程命令2.發送告警郵件)User groups(用戶組)→Users(用戶)→Medias(告警郵件)

在實際生產使用的時候,ItemsTriggerGraph採用模板來進行監控,模板特點就是可以重複的事情一次完成,修改了模板等於修改了所有調用此模板的主機。這樣可解放運維的雙手

Graph不是必需的,因爲沒有配置圖形,數據獲取並不影響,獲取數據是Items的功能。但是對於使用ZabbixWeb界面用戶來說,沒有圖形等於沒有數據,因此重要的Items必須添加必要的圖形以做可視化展示。如果想集中查看圖形,可以通過screen功能。

1.1添加主機組

建議:對同一屬性的主機或模板,儘量歸納到分組,方便以後管理。分組原則建議如下。

q  以地理位置進行劃分。

q  以業務爲單位劃分組。

q  以機器用途劃分。

q  以系統版本劃分。

q  以應用程序分組。

q  其他方式等。

分組的目的是將同一屬性的主機歸類,如果你不想將新添加的主機歸納爲自定義的分組,可以使用默認的分組。

1.  點擊ConfigurationHost groups上的按鈕Create host group,如圖2-1所示。

image.png 

 2‑1

2.  單擊後會出現一個添加新主機組的界面,如圖2-2所示。

image.png

2-2

在圖2-2”Group name”是組的名稱:”Host Host in”是選擇那些設備屬於這個新添加的組。

3.  單擊Save保存,新添加的主機組就可以顯示在主機組列表中,如圖2-3所示。

image.png

2-3

1.2添加模板

監控項、觸發器、圖形、WebDiscovery等都是存在於主機之上的,由於多個主機都會用相同的監控配置,因此,可以對這部分同類的數據進行歸納抽象,即將這些數據做成模板。當我們需要對其他監控數據進行配置的時候,只需要對相對應的主句添加對應的模板即可。

1.  配置模板的步驟爲:單擊→ConfigurationTemplatesCreate template 如圖2-4所示。

group:可以選擇在哪個組創建該模板

import:可以導入模板

image.png

2-4

2.填入模板名稱和所屬的組,如圖2-5所示。

image.png

2-5

4.  模板具有繼承的功能(將一個模板在另外一個模板中使用),如圖2-6所示。

image.png

2-6

搜索當前已經存在的模板,然後單擊Add添加-點擊下面的Add

5.模板中也可以設置宏,如圖2-6所示。

宏主要是對變量定義,設置宏的作用是方便後面再ItemsTrigger中引用,在模板中配置一個宏,在不同的主機對該宏設置不同的變量值,從而達到模板通用的目的。

image.png

2-6

6.查看新建的模板,如圖2-7所示。

image.png

2-7

可以看到,Items中已經有32Items了,是繼承與trt-linux-basic模板的。以後會詳細講解如何在模板中添加其他的Items

1.3添加主機

1.  添加主機的目的是對具體的設備進行監控,步驟爲:依次單擊ConfigurationHostsCreate host,如圖2-8所示。

image.png

2-8

2.在圖2-8中單擊Create host,出現如圖2-9所示的界面。

2-9中各參數的詳細說明如表2-1所示。

image.png

2-9

2-1

參數

描述

主機名(Host name)

輸入一個不重複的主機名。編輯該名稱對應客戶端的配置文件時,主機名這一項必須與此處輸入的值相同。

訪問名(Visible   name)

如果設置該名字,那麼它將出現在主機列表、地圖等地方。

羣組(Group in groups)

選擇主機所屬的羣組。一個主機必須屬於至少一個主機組。

新建主機組(New group)

一個新的羣組將被 ,然後自動連接到該主機上。如果爲空,該項將被忽略。

接口協議(Agent   interfaces)

一個主機支持的主機接口協議包括:AgentSNMPJMXIPMI,如果想增加一個新的接口,單擊”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.可以搜索模板進行添加。

image.png

2-10

3.添加了一個bjstack-template新建的模板,單擊Add保存,然後update更新

1.4添加Graphs

Graphs是將數據展示爲圖像,以視覺化形式展示,Graphs的配置存在於主機和模板中。

1.在所在的主機模板中,選擇Graphs,如圖2-11所示。

image.png

2-11

2.針對web-node1-192.168.90.12這臺主機上的itmes進行配置Graph 單擊“Create graph”按鈕,如圖2-12所示。

image.png

2-12

3.出現新建圖形的界面,輸入Name,選擇所需要的Items,如圖2-13所示。

image.png

2-13

4.如果要查看所有的圖形,單擊MonitoringGraphs選擇對應的GroupHostGraph,查看cpu load如圖2-14所示。

image.png

2-14

1.5添加Screen

Screen將多種信息放在一起展示,便於集中展示某個Host的多個信息,或是將多個Host的同一種信息放在一起顯示,這些信息可以爲GraphsMapsServerinfo等,幾乎涵蓋Zabbix所有的監控信息。

1.通過單擊Configuration-ScreensCreate screen來創建,創建時定義Screen的行數和列數(如圖2-15至圖2-16所示)

image.png

2-15

image.png

2-16

2.單擊創建Screen名稱,如圖2-17所示

image.png

2-17

3.單擊單元格內的Change,選擇選擇cpuload圖形 添加相應的元素,如圖2-18、圖2-19所示

image.png

2-18

image.png

2-19

3.  配置好後,通過單擊MonitorScreen,選擇相應的Screen組,如圖2-20所示。

image.png

2-20

1.6添加Trigger

基於剛剛的web-node1創建觸發器,選擇對應的Host/Template(模板會自動關聯至主機),創建觸發器CPU Load如圖2-21、圖2-22、圖2-23、圖2-24是對觸發器進行設置的示例

image.png

2-21

image.png

2-22

image.png

2-23

image.png

2-24

最後效果如圖2-25、圖2-26

image.png

2-25

image.png

2-26

推薦更多Zabbix觸發器支持的函數說明:http://pengyao.org/zabbix-triggers-functions.html(來自姚炫偉翻譯)

推薦Zabbix Trigger表達式實例:http://pengyao.org/zabbix-trigger-example-1.html(來自姚炫偉)

添加完觸發器,可以打開Zabbix內置的報警鈴聲,如圖2-27

image.png

2-27

 

也可以修改items的報警時間間隔(不是必須),如圖2-28所示

image.png

2-28

1.7添加Media

步驟爲:登陸Zabbix Web頁面,單擊AdministrationMedia TypeCreate Media Type(右上角)-如圖2-29

image.png

2-29

用戶可以配置Media,發送告警的方式等,點擊Admin,也可以創建一個新用戶(我這裏只是一個例子)如圖2-30

image.png

2-30

2.配置一個用戶作爲接收如圖2-31

image.png

2-31

保存並開啓如圖2-32

image.png

2-32

1.8.添加Action

配置action,需要如下幾個步驟:

1.在菜單欄中單擊ConfigurationActions

2.Event source下拉菜單中選擇事件來源。

3.單擊Create action

4.設置Action參數,以及報警消息內容。

5.單機Conditions按鈕,設置Action的依賴條件。

6.單擊Operation按鈕,設置執行動作。

1.8.1配置Action

通過菜單ConfigurationActionsCreate Action來創建Action 如圖2-33、圖2-34

image.png

2-33

image.png

2-34

告警消息內容:

報警主機:{HOST.NAME1}

報警服務: {ITEM.NAME1}

報警Key: {ITEM.KEY1}{ITEM.VALUE1}

嚴重級別: {TRIGGER.SEVERITY}

恢復消息內容:

恢復主機:{HOST.NAME1}

恢復服務: {ITEM.NAME1}

恢復Key{ITEM.KEY1}{ITEM.VALUE1}

1.8.2配置Conditions

條件之間的邏輯運算符

1.不在維護期

2.Trigger狀態爲PROBLEM

3.主機是web-node1-192.168.90.12

4.以上條件必須全部滿足纔可以發送通知,如圖2-35所示例

image.png

2-35

1.8.3配置Operation

觸發器事件成立後有以下兩種動作。

1.發送消息(send message)

2.執行遠程命令(Remote command)

當然還有很多,比如:增加主機、刪除主機、開啓監控、關鍵監控、鏈接模板、取消模板鏈接等等。

當出現了Trigger狀態改變時,應嘗試自愈,如果無法修復,那麼報警升級發送消息通知相關人員。如圖2-36、圖2-37、圖2-38、圖2-39

image.png

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

 

image.png

2-37

image.png

2-38

image.png

2-39

1.8.4查看報警信息

如果達到閥值Zabbix會執行遠程執行命令(如果不成功)-最後發送告警郵件,如圖2-40、圖2-41

image.png

2-40

image.png

2-41


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章