第3章Zabbix完整監控

Zabbix的監控流程能夠簡單描述爲:數據採集-->數據存儲-->數據分析-->數據展現-->監控報警php

數據採集:Zabbix經過SNMPAgentICMPSSHIPMI等進行數據採集html

數據存儲:Zabbix存儲在MySQL上,也能夠存儲在其餘數據庫java

數據展現:web界面展現、(移動APPjava_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

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

Graph不是必需的,由於沒有配置圖形,數據獲取並不影響,獲取數據是Items的功能。可是對於使用ZabbixWeb界面用戶來講,沒有圖形等於沒有數據,所以重要的Items必須添加必要的圖形以作可視化展現。若是想集中查看圖形,能夠經過screen功能。微信

1.1添加主機組

建議:對同一屬性的主機或模板,儘可能概括到分組,方便之後管理。分組原則建議以下。

q  以地理位置進行劃分。

q  以業務爲單位劃分組。

q  以機器用途劃分。

q  以系統版本劃分。

q  以應用程序分組。

q  其餘方式等。

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

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

 

說明: /Users/xuliangwei/Library/Containers/com.tencent.qq/Data/Library/Application Support/QQ/Users/552408925/QQ/Temp.db/D7FF1794-AEAA-4D91-BF80-B05F28364302.png

2‑1

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

說明: /Users/xuliangwei/Library/Containers/com.tencent.qq/Data/Library/Application Support/QQ/Users/552408925/QQ/Temp.db/4026312D-B0F6-49AF-B09C-2E6D7658544A.png

2-2

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

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

2-3

1.2添加模板

監控項、觸發器、圖形、WebDiscovery等都是存在於主機之上的,因爲多個主機都會用相同的監控配置,所以,能夠對這部分同類的數據進行概括抽象,即將這些數據作成模板。當咱們須要對其餘監控數據進行配置的時候,只須要對相對應的主句添加對應的模板便可。

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

group:能夠選擇在哪一個組建立該模板

import:能夠導入模板

說明: /Users/xuliangwei/Library/Containers/com.tencent.qq/Data/Library/Application Support/QQ/Users/552408925/QQ/Temp.db/3B82C7B9-88EF-4DC3-92E4-1BDF9EFF958D.png

2-4

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

2-5

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

2-5

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

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

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

2-6

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

2-7

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

1.3添加主機

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

說明: /Users/xuliangwei/Library/Containers/com.tencent.qq/Data/Library/Application Support/QQ/Users/552408925/QQ/Temp.db/C169BE95-DE6B-41C2-91E8-34D833DBE153.png

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)

一個主機支持的主機接口協議包括: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.能夠搜索模板進行添加。

2-10

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

1.4添加Graphs

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.若是要查看全部的圖形,單擊MonitoringGraphs選擇對應的GroupHostGraph,查看cpu load如圖2-14所示。

2-14

1.5添加Screen

Screen將多種信息放在一塊兒展現,便於集中展現某個Host的多個信息,或是將多個Host的同一種信息放在一塊兒顯示,這些信息能夠爲GraphsMapsServerinfo等,幾乎涵蓋Zabbix全部的監控信息。

1.經過單擊Configuration-ScreensCreate 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.  配置好後,經過單擊MonitorScreen,選擇相應的Screen組,如圖2-20所示。

2-20

1.6添加Trigger

基於剛剛的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

1.7添加Media

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

2-29

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

2-30

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

2-31

保存並開啓如圖2-32

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

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.8.2配置Conditions

條件之間的邏輯運算符

1.不在維護期

2.Trigger狀態爲PROBLEM

3.主機是web-node1-192.168.90.12

4.以上條件必須所有知足才能夠發送通知,如圖2-35所示例

2-35

1.8.3配置Operation

觸發器事件成立後有如下兩種動做。

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

說明: /Users/xuliangwei/Library/Containers/com.tencent.qq/Data/Library/Application Support/QQ/Users/552408925/QQ/Temp.db/64F8590B-CC22-487F-AF55-8597180E181C.png

2-38

2-39

1.8.4查看報警信息

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

2-40

2-41

相關文章
相關標籤/搜索