一直在糾結用什么實例來給大家演示呢?想來想去還是官方的好,那我們怎么用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
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:打開首頁
對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:登陸
post賬號和密碼上去,關於post在前面已經提過了。
WEB監控階段3:驗證登陸
WEB監控階段4:退出賬號
WEB網站檢測配置完成
記得保存賬號
查看結果
monitorning->web->篩選出你的主機->查看“WEB性能監控_FOR_TTLSA”,結果如下圖
各個階段的響應時間、速度、返回狀態碼以及總的響應時間
下圖是下載速度的圖表,包含各個階段
下圖是響應時間的圖表
以上是沒問題的信息,那么出現故障是什么樣子呢?我把密碼改掉,演示給大家看看下圖,在LOGIN IN這個step就出錯了,拿不到SID
那么Required String不匹配又是什么樣子呢?我們把階段3Login CHECK的required string的Profile改成Profile1試試。看看結果
好了,web監控的實例就完成了。