添加 WEB Monitorings
Web Monitoring是用來監控web程序的,可以監控到web程序的下載速度、返回碼及響應時間,還支持把一組連續的web動作作為一個整體來監控。
下面我們以監控登陸zabbix的web程序為例,來展示如何使用web monitoring。
Configuration->web->Create Scenario 創建一個Scenario(注:必須選擇host后才能創建scenario,zabbix的所有items都必須創建在hosts上)
Application:選擇這個scenario所在的application組
Name:scenario的名字
Basic authentication:鑒權
Update interval:監控頻率,s為單位
Agent:選擇要使用的瀏覽器客戶端,可能同樣的web程序對不同的客戶端展示的內容會不一樣
Status:默認為active
Variables:變量定義,這里定義的變量可在后續的steps中使用,這里我們定義了用戶和密碼的變量
Steps:web 程序的各個步驟,選擇add新增一個Login的step,來模擬用戶登陸,傳遞用戶和密碼給index.php頁面
URL:監控的web頁面(注:必須是全路徑帶頁面名)
Post:傳遞給頁面的參數,多個參數之間用&連接,此處可引用前面定義的變量
Timeout:超時時間
Required:頁面中能匹配到字符,匹配不到即認為錯誤
Status codes:頁面返回碼
添加完step后,我們在Monitoring->web頁面即能看到監控的狀態和圖示
創建完scenario后,zabbix server會自動創建相關的items,所以我們只需為這些items添加triggers即可讓web scenario出錯時產生告警
Configuration->hosts->點擊scenario所在的host條目的trigger,直接create trigger,在select items的時候就可以看到系統自動創建的items(注:自動創建的items在host的items列表中直接是看不到的,需要在創建trigger時選擇items時才能看到)
可以在items列表中看到,系統為每個step創建了3個item,Download Speed/Response Code/Response Time,為整個scenario創建了一個test.fail的item,可以分別為其創建trigger
下例我們創建一個Login頁面返回碼的trigger,大於等於400即為錯誤
再創建一個整個scenario所有step運行是否成功的trigger,采集值為0表示整個scenario的所有step都執行成功了,第幾步的step執行失敗就返回數字幾,且后續的step都不會繼續執行下去。
這樣,一個完整的web monitoring就配置完成了。
Web monitoring還有更多強大的功能,未能一一研究了解,有待挖掘
Zabbix的Graphs功能很強大,可以為每一個item繪制圖表,也可以把多個items繪制在一張圖表內。
通過configuration->hosts選擇要繪制圖表的host,點擊graphs,create graphs即可創建圖表。
Graph type:圖表樣式,有線狀、柱狀、餅狀
還可以自定義圖表大小,及Y軸最大最小值
通過add items可以添加在同一個圖表中展示的多個items(注:注意每個item的顏色及取值范圍,范圍相差太大圖表會顯示不全)
配置好的graphs在monitoring->graphs中查看
在monitoring->last data下能快速查看每個host的每個item的graph
Screen將多種信息放在一起展示,便於集中展示某個host的多個信息,或是比較多個hosts的同一種信息,這些信息可以為graphs、maps、server infos等等,幾乎涵蓋zabbix所有的監控信息。
通過configuration->screen->creat screen來創建,創建時定義screen的行數和列數,點擊對應單元格內的change,添加相應的信息
一直在糾結用什么實例來給大家演示呢?想來想去還是官方的好,那我們怎么用zabbix監控web性能和可用性呢?我們這邊分為幾個步驟:打開網站、登陸、登陸驗證、退出,一共4個小step,看實例。
檢測流程
1. 打開網站:如果http code為200,並且響應的html中包含Zabbix SIA表示打開成功(zabbix頁面有這個標示)
2. 登陸后台:post用戶名和密碼到index.php,如果響應200,那表示post成功。並且通過正則表達式從響應的html中匹配sid,這個sid也就是一個宏變量,退出可以使用到
3. 驗證登陸:打開首頁,檢索html中是否包含Profile(只有登陸成功,才會有Profile出現)
4.退出賬號:傳遞參數sid給index.php即可退出,響應200即表示退出成功。
我們可以使用上節講到的item key來獲取每個step的速度以及響應時間或者說最新的一個錯誤消息,大家自己去研究吧,不難
創建WEB場景
configuration->Host->你的主機->web->右上角Create scenario
Create scenario - 01
Name:監控項的名稱
Application:放到哪個應用中,《什么是Application》
Authentication:是否有http的基本認證,大部分情況下是None,難不成用戶進來還需要經過一次認證?
Update interval:更新周期,默認60秒,多久跑一次
Retries:重試次數
Agetn:模擬瀏覽器
HTTP proxy:代理,如果你的站點有多台服務器,那么請寫上你目標服務器ip和端口,例如http://10.9.0.2:80,默認端口可不是80,別忘記80了
Variables:宏變量,后面會用到。想了解請點《zabbix用戶宏macro》
web監控階段1:打開首頁
Create scenario - 02
對step做一個說明:
name:當前step名稱,item key中可以用到
url:需要檢測的網址
POST:你需要post提交上去的內容,例如user=123&password=123456,,或者使用宏變量user={user}&password={password},如果支持GET,那么可以直接寫到URL里面
variables:變量,這邊定義宏變量后續的step可以使用
Timeout:超時時間,默認15秒
Required string:響應的內容中必須包含的字符串,否則失敗
Required status codes:響應代碼必須包含在里面,多個響應代碼用逗號分隔,例如200,301,302
web監控階段2:登陸
Create scenario - 03
post賬號和密碼上去,關於post在前面已經提過了。
WEB監控階段3:驗證登陸
Create scenario - 04
WEB監控階段4:退出賬號
Create scenario - 05
WEB網站檢測配置完成
記得保存賬號
Create scenario - 06
查看結果
monitorning->web->篩選出你的主機->查看“WEB性能監控_FOR_TTLSA”,結果如下圖
各個階段的響應時間、速度、返回狀態碼以及總的響應時間
Create scenario - 07
下圖是下載速度的圖表,包含各個階段
Create scenario - 08
下圖是響應時間的圖表
Create scenario - 09
以上是沒問題的信息,那么出現故障是什么樣子呢?我把密碼改掉,演示給大家看看下圖,在LOGIN IN這個step就出錯了,拿不到SID
Create scenario - 10
那么Required String不匹配又是什么樣子呢?我們把階段3Login CHECK的required string的Profile改成Profile1試試。看看結果
web scenario - 11
好了,web監控的實例就完成了。
通過monitoring-screen,可以查看之前配置好的信息。