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