Web監控
您可以使用Zabbix對多個網站進行可用性方面監控:
若要使用Web監控,必須編譯(configured)安裝時加入cURL(libcurl)庫支持要使用Web監控,您需要定義web場景。Web場景包括一個或多個HTTP請求或“步驟”。Zabbix服務器根據預定義的命令周期性的執行這些步驟,如果主機是通過Proxy代理監控的話,這些步驟將由proxy代理執行。
從Zabbix2.2開始,Web場景和Items,Triggers等一樣,是依附在Hosts/Templates上的。這意味著web場景也可以創建到一個模板里,然后應用于多個主機
任何web場景都會收集下列數據:
- 整個場景中所有步驟的平均下載速度
- 失敗的步驟數量
- 最近的錯誤信息
對于web場景的所有步驟,都會收集下列數據:
- 平均下載速度
- 響應時間
- HTTP狀態碼
更多詳情,請參見webmonitoringitems.
執行web場景收集的數據保存在數據庫中。數據自動用于圖形、觸發器和通知。
Zabbix還支持獲取HTML內容中是否存在設置的字符串。還可以模擬登錄動作和模擬鼠標單擊。
Zabbixweb監控同時支持HTTP和HTTPS。當運行web場景時,Zabbix將選擇跟蹤重定向(請參見下面的選擇跟蹤重定向)。重定向硬編碼的最大數量為10(使用cURL選項CURLOPT_MAXREDIRS)。在執行web場景時,所有Cookie都會保存。
web監控使用HTTPS協議請參閱已知問題
配置Web場景配置web場景:
- 轉到:配置(Configuration)–>主機(或者模板)
- 點擊主機(host)/模板(template)行中的Web
- 點擊右上角創建web場景(或點擊場景名字進行編輯現有的場景)
- 在場景的表單中輸入參數
場景選項卡允許您配置此Web場景的通用參數。
所有必填字段都用紅色型號標注。
場景參數:
參數說明主機(Host)場景所屬的主機名或模板的名字。名稱(Name)唯一的場景名稱。Zabbix2.2開始,這個名字支持用戶宏和{HOST.*}宏。應用(Application)選擇一個場景屬于的應用。Web場景監控項在監測中(Monitoring)→最新數據(Latestdata)欄中將會分組在選擇的應用中。新的應用(Newapplication)對場景創建個新的應用名字。更新間隔(Updateinterval)(秒)Web場景時間間隔,以秒為單位。支持時間的后綴,例如30s,1m,2h,1d,自從Zabbix3.4.0開始。支持用戶宏,自從Zabbix3.4.0開始。注意,如果用戶使用宏變量來改變值(如5m→30s),將在下一個執行周期執行更新(這是一個比較好例子)。重試次數(Attempts)嘗試執行web場景中步驟的次數。對于網絡問題(超時,沒有連接,等等)Zabbix可以多次重復執行步驟。這個數字對場景的中的所有步驟都會生效。嘗試次數最大可以設置為10,默認值為1。注意:Zabbix不會因為一個錯誤的響應代碼或者期望的字符串沒有出現就會觸發這個重試。Zabbix2.2開始支持此參數。代理(Agent)選擇一個客戶端。zabbix會模擬選擇的瀏覽器,當一個網站對不同的瀏覽器返回不同的內容的時候是非常有用的。zabbix2.2開始,這塊可以使用用戶自定義宏。HTTP代理(HTTPproxy)您可以指定要使用一個HTTP代理,使用格式http://[username[:password]@]proxy.mycompany.com[:port]默認使用1080端口。如果指定,代理將覆蓋代理相關聯的環境變量,比如http_proxyHTTPS_PROXY。如果沒有指定,那么代理將不會覆蓋代理相關的環境變量。輸入的值是通過“是(asis)”,不需要進行完整性檢查。你也可以輸入SOCKS代理地址。如果您指定了錯誤的協議,連接會失敗,項目將成為不受支持的。沒有指定的協議,代理將被視為一個HTTP代理、\注意:HTTP代理僅支持簡單身份驗證。此字段中可以使用用戶宏。Zabbix2.2開始支持此參數。變量(Variables)可以在場景中的步驟(URL,POST變量)中使用變量。它們具有以下格式:{macro1}=value1{macro2}=value2{macro3}=regex:<regularexpression>例如:{username}=Alexei{password}=kj3h5kJ34bd{hostid}=regex:hostidis([0-9]+)然后可以在{username},{password}和{hostid}的步驟中引用宏。Zabbix將自動將其替換為實際值。請注意,使用的變量:需要一個步驟來獲取正則表達式的值,因此提取的值只能應用于后續步驟。如果值部分以regex:開頭,那么它之后的部分將被視為正則表達式,將搜索網頁,如果找到,則將匹配存儲在變量中。注意,必須存在至少一個子組,以便可以提取匹配的值。Zabbix2.2開始支持變量中的正則表達式匹配。Zabbix2.2開始,{HOST.*}宏和用戶宏可以在此字段中使用。在查詢字段或提交表單數據時,變量會自動進行URL編碼,但使用raw方式提交數據或者直接在URL中使用時,必須手動進行URL編碼HTTP頭(Headers)執行請求時將發送的自定義的HTTPheaders。應使用與在HTTP協議中出現的語法相同的語法列出標題,可選地使用CURLOPT_HTTPHEADERcURL選項支持的一些其他功能。例如:Accept-Charset=utf-8Accept-Language=en-USContent-Type=application/xml;charset=utf-8用戶宏和{HOST.*}宏和可以在此字段中使用。從Zabbix2.4開始支持指定自定義頭。啟用(Enabled)如果選中此復選框,則此場景處于啟用狀態,否則禁用。注意,當編輯一個現有的場景時,會出現兩個額外的按鈕
基于現有場景的屬性創建另一個場景。
刪除場景的歷史記錄和趨勢數據。這將使zabbix服務器在刪除數據后立即執行該web場景
如果HTTPproxy字段留空,使用HTTP代理的另一種方法是設置代理相關的環境變量。對于HTTP檢查-為Zabbix服務器用戶設置http_proxy環境變量。例如,http_proxy=http://proxy_ip:proxy_port.
對于HTTPS檢查-設置HTTPS_PROXY環境變量。例如,HTTPS_PROXY=http://proxy_ip:proxy_port.通過運行shell命令可以獲得更多詳細信息:#mancurl.
“步驟”選項卡允許您配置Web場景步驟。要添加Web場景步驟,請在步驟(Steps)單擊添加(Add)。
配置步驟
步驟參數:
參數說明名稱(Name)唯一步驟名稱。Zabbix2.2開始,該名稱可以支持用戶宏和{HOST.*}宏。網址(URL)用于連接和檢索數據的網址。例如:https://www.google.comhttp://www.zabbix.com/downloadZabbix3.4以后,可以以Unicode編碼指定域名。執行Web場景步驟時,它們將自動被禁止轉換為ASCII。解析按鈕可用于從URL中分離可選的查詢字段(例如?name=Admin&password=mypassword),將屬性和值放到查詢字段以進行自動URL編碼。變量可以在URL中使用,使用{macro}語法。變量可以使用{{macro}.urlencode()}語法手動進行URL編碼。Zabbix2.2開始,{HOST.*}宏和用戶宏可以在此字段中使用。Zabbix2.4開始,最多字符為2048個。查詢字段(Queryfields)URL的HTTPGET變量。指定屬性和值對。值將自動進行URL編碼。來自場景變量,用戶宏或{HOST。*}宏的值將被解析,然后自動進行URL編碼。使用{{macro}.urlencode()}語法將對其進行雙重URL編碼。從Zabbix2.2開始開始支持用戶宏和{HOST.*}宏。PostHTTPPOST變量。在Formdata模式下,指定屬性和值。值被自動進行URL編碼。來自場景變量、用戶宏或{HOST.*}宏的值將被解析,然后自動進行URL編碼。在Rawdata模式中,屬性/值顯示在一條線上,并與&符號連接。Raw方式的值可以使用{{macro}.urlencode()}或{{macro}.urldecode()}手動進行URL編碼/解碼。例如:id=2345&userid={user}如果{user}被定義為web場景的變量,則當執行步驟時,它的值會被替換。如果你想對變量進行URL編碼,用{{user}.urlencode()}替換{user}。Zabbix2.2開始支持用戶宏和{HOST.*}宏。變量(Variables)可用于GET和POST方法的步級變量。指定屬性和值。步驟變量覆蓋之前的場景變量或步驟變量。然而,一個步驟變量的值僅影響之后的步驟(而不是當前步驟)。它們具有以下格式:{macro}=value{macro}=regex:<regularexpression>有關更多信息,請參閱場景(scenario)級別上的變量描述。Zabbix2.2開始支持步驟變量。Zabbix2.2開始,{HOST.*}宏和用戶宏可以在此字段中使用。在查詢字段或提交表單數據時,變量會自動進行URL編碼,但使用raw方式提交數據或者直接在URL中使用時,必須手動進行URL編碼HTTP頭(Headers)執行請求時將發送的自定義HTTPheaders。指定屬性和值步驟級別上的headers將覆蓋為該場景指定的headers。例如,設置“User-Agent:”為空時,將覆蓋在場景上設置的User-Agent名稱。支持用戶宏和{HOST.*}宏、\這將設置CURLOPT_HTTPHEADERcURL選項。Zabbix2.4開始,支持指定自定義HTTP頭跟蹤重定向(Followredirects)選中該復選框以跟蹤HTTP重定向。將會設置CURLOPT_FOLLOWLOCATIONcURL選項。Zabbix2.4開始支持此選項。僅檢索標頭(Retrieveonlyheaders)選中復選框,僅從HTTP響應中檢索標題。這將設置CURLOPT_NOBODYcURL選項。Zabbix2.4開始支持此選項。超時時間(Timeout)Zabbix根據設置的秒數以內來處理URL。實際上,此參數定義為連接到URL的最大時間和執行HTTP請求的最長時間。因此,Zabbix不會在步驟上花費超過2x超時時間。支持時間的后綴,例如30s,1m,2h,1d,自從Zabbix3.4.0開始。支持用戶宏,自從Zabbix3.4.0開始必需的字符串(Requiredstring)必需的正則表達式。除非檢索到的內容(HTML)匹配所需的模式,否則步驟將失敗。如果為空,則不執行檢查。例如:Zabbix的主頁、\Welcome.*admin注意:在此字段中不支持引用在Zabbix前端中創建的正則表達式(regularexpressions)。Zabbix2.2開始,支持用戶宏和{HOST.*}宏狀態碼(Requiredstatuscodes)可以設置預期的HTTP狀態代碼列表。如果Zabbix獲取的HTTP狀態碼不在列表中,該步驟將認為為失敗。如果為空,則不執行檢查。例如:200,201,210-299Zabbix2.2開始,支持用戶宏。Web場景步驟中的任何更改只有在保存整個場景時才會保存。另請參見如何配置Web監控步驟的示例。
配置身份驗證身份驗證選項卡允許您配置場景身份驗證選項。
認證參數:
參數說明驗證(Authentication)驗證參數。None-未使用身份驗證。基本認證-使用基本認證。NTLMauthentication-使用NTLM(WindowsNTLANManager)身份驗證。選擇身份驗證方法將提供兩個附加字段,用于輸入用戶名和密碼。從Zabbix2.2開始,用戶宏可以在用戶和密碼字段中使用。對等SSL驗證(SSLverifypeer)選中復選框以驗證Web服務器的SSL證書。服務器證書將自動從系統的證書頒發機構(CA)位置獲取。您可以使用Zabbix服務器或代理配置參數SSLCALocation覆蓋CA文件的位置。這將設置CURLOPT_SSL_VERIFYPEERcURL參數.Zabbix2.4開始支持此選項。SSL驗證主機(SSLverifyhost)選中復選框以驗證Web服務器證書的公用名稱(CommonName)字段或主題備用名稱(SubjectAlternateName)字段是否匹配、\這將會設置CURLOPT_SSL_VERIFYHOSTcURL參數。Zabbix2.4開始支持此選項。SSL證書文件(SSLcertificatefile)用于客戶端認證的SSL證書文件的名稱。證書文件必須為PEM1格式。如果證書文件還包含私鑰,請將SSL密鑰文件(SSLkeyfile)字段留空。如果密鑰加密,請在SSL密鑰密碼(SSLkeypassword)字段中指定密碼。包含此文件的目錄由Zabbix服務器或代理配置參數SSLCertLocation指定。宏和用戶宏可以在此字段中使用。這將會設置CURLOPT_SSLCERTcURL參數、Zabbix2.4開始支持此選項。SSL密鑰文件(SSLkeyfile)用于客戶端認證的SSL私鑰文件的名稱。私鑰文件必須為PEM1格式。包含此文件的目錄由Zabbix服務器或代理配置參數SSLKeyLocation指定。宏和用戶宏可以在此字段中使用。這將設置CURLOPT_SSLKEYcURL參數。Zabbix2.4開始支持此選項。SSL密鑰密碼(SSLkeypassword)SSL私鑰文件密碼。用戶宏可以在此字段中使用。這將設置CURLOPT_KEYPASSWDcURL參數.Zabbix2.4開始支持此選項。[1]Zabbix僅支持PEM格式的證書和私鑰文件。如果您在PKCS#12格式文件(通常具有擴展名*.p12或*.pfx)中具有您的證書和私鑰數據,您可以使用以下命令從中生成PEM文件:opensslpkcs12-inssl-cert.p12-clcerts-nokeys-outssl-cert.pemopensslpkcs12-inssl-cert.p12-nocerts-nodes-outssl-cert.keyZabbix服務器對證書的更改無需重啟。如果在單個文件中有客戶端證書和私鑰,只需在“SSL證書文件”字段中指定它,并將“SSL密鑰文件”字段留空即可。證書和密鑰必須仍為PEM格式。組合證書和密鑰很容易:catclient.crtclient.key>client.pem顯示要查看定義的Web場景的詳細數據,請轉到監控中(Monitoring)→Web或最新數據(Latestdata)。單擊方案名稱以查看更詳細的統計信息。
可以在監控中(Monitoring)→儀表板(Dashboard)中查看Web監控場景的概述。
擴展監控有時需要記錄接收的HTML頁面內容。如果某些Web方案步驟失敗時是非常有用的。調試級別5(跟蹤)用于此目的。此級別可以在服務端(server)和代理(proxy)代理配置文件中設置或使用運行時控制選項(,其中N是進程號)。以下示例說明如果調試級別4已設置,監控擴展如何啟動:
Increaseloglevelofallhttppollers:shell>zabbix_server-Rlog_level_increase="httppoller"Increaseloglevelofsecondhttppoller:shell>zabbix_server-Rlog_level_increase="httppoller,2"如果不需要擴展Web監控,可以使用選項來停止。