回覆列表
  • 1 # 奔波的IT人

    Web 監控

    您可以使用 Zabbix 對多個網站進行可用性方面監控:

    若要使用Web監控,必須編譯(configured)安裝時加入cURL (libcurl) 庫支援

    要使用 Web 監控,您需要定義 web 場景。Web 場景包括一個或多個 HTTP 請求或“步驟”。Zabbix 伺服器根據預定義的命令週期性的執行這些步驟,如果主機是透過Proxy代理監控的話,這些步驟將由proxy代理執行。

    從 Zabbix2.2 開始,Web 場景和 Items,Triggers 等一樣,是依附在 Hosts/Templates 上的。這意味著 web 場景也可以建立到一個模板裡,然後應用於多個主機

    任何web場景都會收集下列資料:

    整個場景中所有步驟的平均下載速度失敗的步驟數量最近的錯誤資訊

    對於web場景的所有步驟,都會收集下列資料:

    平均下載速度響應時間HTTP狀態碼

    更多詳情,請參見 web monitoring items.

    執行 web 場景收集的資料儲存在資料庫中。資料自動用於圖形、觸發器和通知。

    Zabbix 還支援獲取HTML內容中是否存在設定的字串。還可以模擬登入動作和模擬滑鼠單擊。

    Zabbix web 監控同時支援 HTTP 和 HTTPS。當執行 web 場景時,Zabbix 將選擇跟蹤重定向(請參見下面的選擇跟蹤重定向)。重定向硬編碼的最大數量為 10 (使用 cURL 選項 CURLOPT_MAXREDIRS)。在執行 web 場景時,所有 Cookie 都會儲存。

    web 監控使用 HTTPS 協議請參閱 已知問題

    配置 Web 場景

    配置 web 場景:

    轉到: 配置 (Configuration)–>主機 (或者 模板 )點選主機 (host)/ 模板 (template) 行中的 Web點選右上角 建立 web 場景 (或點選場景名字進行編輯現有的場景)在場景的表單中輸入引數

    場景選項卡允許您配置此 Web 場景的通用引數。

    所有必填欄位都用紅色型號標註。

    場景引數:

    引數說明 主機 (Host) 場景所屬的主機名或模板的名字。 名稱 (Name) 唯一的場景名稱。Zabbix 2.2 開始,這個名字支援使用者宏和 {HOST.*} 宏 。 應用 (Application) 選擇一個場景屬於的應用 。Web 場景監控項在 監測中 (Monitoring)→最新資料 (Latest data) 欄中將會分組在選擇的應用中。 新的應用 (New application) 對場景建立個新的應用名字。 更新間隔 (Update interval) (秒) Web場景時間間隔,以秒為單位。支援時間的字尾,例如30s,1m,2h,1d,自從Zabbix 3.4.0 開始。支援使用者宏,自從Zabbix 3.4.0 開始。注意,如果使用者使用宏變數來改變值(如5m → 30s),將在下一個執行週期執行更新(這是一個比較好例子) 。 重試次數 (Attempts) 嘗試執行 web 場景中步驟的次數。對於網路問題(超時,沒有連線,等等) Zabbix 可以多次重複執行步驟。這個數字對場景的中的所有步驟都會生效。嘗試次數最大可以設定為 10,預設值為 1。 注意 : Zabbix 不會因為一個錯誤的響應程式碼或者期望的字串沒有出現就會觸發這個重試。Zabbix 2.2 開始支援此引數。 代理 (Agent) 選擇一個客戶端。zabbix 會模擬選擇的瀏覽器,當一個網站對不同的瀏覽器返回不同的內容的時候是非常有用的。zabbix 2.2 開始 ,這塊可以使用使用者自定義宏。 HTTP 代理 (HTTP proxy) 您可以指定要使用一個 HTTP 代理,使用格式 http://[username[:password]@]proxy.mycompany.com[:port]預設使用 1080 埠。如果指定,代理將覆蓋代理相關聯的環境變數,比如 http_proxy HTTPS_PROXY。如果沒有指定,那麼代理將不會覆蓋代理相關的環境變數。輸入的值是透過“是 (as is)”, 不需要進行完整性檢查。你也可以輸入 SOCKS 代理地址。如果您指定了錯誤的協議,連線會失敗,專案將成為不受支援的。沒有指定的協議,代理將被視為一個 HTTP 代理、\ 注意 : HTTP 代理僅支援簡單身份驗證。此欄位中可以使用使用者宏。Zabbix 2.2 開始支援此引數。 變數 (Variables) 可以在場景中的步驟(URL,POST 變數)中使用變數。它們具有以下格式:{macro1}=value1{macro2}=value2{macro3}=regex:<regular expression>例如:{username}=Alexei{password}=kj3h5kJ34bd{hostid}=regex:hostid is ([0-9]+)然後可以在{username},{password}和{hostid}的步驟中引用宏。 Zabbix 將自動將其替換為實際值。請注意,使用的變數:需要一個步驟來獲取正則表示式的值,因此提取的值只能應用於後續步驟。如果值部分以 regex: 開頭,那麼它之後的部分將被視為正則表示式,將搜尋網頁,如果找到,則將匹配儲存在變數中。 注意,必須存在至少一個子組,以便可以提取匹配的值。Zabbix 2.2 開始支援變數中的正則表示式匹配。Zabbix 2.2 開始,{HOST.*} 宏 和使用者宏可以在此欄位中使用。在查詢欄位或提交表單資料時,變數會自動進行URL編碼,但使用 raw 方式提交資料或者直接在URL中使用時,必須手動進行URL編碼 HTTP 頭 (Headers) 執行請求時將傳送的自定義的 HTTP headers。應使用與在 HTTP 協議中出現的語法相同的語法列出標題,可選地使用 CURLOPT_HTTPHEADER cURL 選項支援的一些其他功能。例如:Accept-Charset=utf-8Accept-Language=en-USContent-Type=application/xml; charset=utf-8使用者宏和 {HOST.*} 宏 和可以在此欄位中使用。從 Zabbix 2.4 開始支援指定自定義頭。 啟用 (Enabled) 如果選中此複選框,則此場景處於啟用狀態,否則禁用。

    注意,當編輯一個現有的場景時,會出現兩個額外的按鈕

    基於現有場景的屬性建立另一個場景。

    如果 HTTP proxy 欄位留空,使用 HTTP 代理的另一種方法是設定代理相關的環境變數。

    對於 HTTP 檢查 - 為 Zabbix 伺服器使用者設定 http_proxy 環境變數。 例如, http_proxy=http://proxy_ip:proxy_port.

    對於 HTTPS 檢查 - 設定 HTTPS_PROXY 環境變數。 例如, HTTPS_PROXY=http://proxy_ip:proxy_port. 透過執行 shell 命令可以獲得更多詳細資訊:# man curl.

    “步驟”選項卡允許您配置 Web 場景步驟。 要新增 Web 場景步驟,請在 步驟 (Steps) 單擊 新增 (Add)。

    配置步驟

    步驟引數:

    引數說明 名稱 (Name) 唯一步驟名稱。Zabbix 2.2 開始,該名稱可以支援使用者宏和 {HOST.*} 宏。 網址 (URL) 用於連線和檢索資料的網址。 例如: https://www.google.com http://www.zabbix.com/download Zabbix 3.4 以後,可以以 Unicode 編碼指定域名。 執行 Web 場景步驟時,它們將自動被禁止轉換為 ASCII。 解析 按鈕可用於從URL中分離可選的查詢欄位(例如?name = Admin&password = mypassword),將屬性和值放到查詢欄位以進行自動URL編碼。變數可以在URL中使用,使用 {macro} 語法。 變數可以使用 {{macro}.urlencode()}語法手動進行URL編碼。Zabbix 2.2 開始,{HOST.*} 宏 和使用者宏可以在此欄位中使用。Zabbix 2.4 開始,最多字元為 2048 個。 查詢欄位 (Query fields) URL的 HTTP GET 變數。指定屬性和值對。值將自動進行URL編碼。來自場景變數,使用者宏或{HOST。*}宏的值將被解析,然後自動進行URL編碼。 使用{{macro}.urlencode()}語法將對其進行雙重URL編碼。從 Zabbix 2.2 開始開始支援使用者宏和 {HOST.*} 宏 。 Post HTTP POST 變數。在 Form data 模式下,指定屬性和值。值被自動進行URL編碼。 來自場景變數、使用者宏或 {HOST.*} 宏的值將被解析,然後自動進行URL編碼。在 Raw data 模式中,屬性 / 值顯示在一條線上,並與 & 符號連線。Raw 方式的值可以使用 {{macro}.urlencode()} 或 {{macro}.urldecode()} 手動進行URL編碼 / 解碼。例如:id=2345&userid={user} 如果 {user} 被定義為 web 場景的變數,則當執行步驟時,它的值會被替換。如果你想對變數進行URL編碼,用 {{user}.urlencode()} 替換 {user} 。 Zabbix 2.2 開始支援使用者宏和 {HOST.*} 宏 。 變數 (Variables) 可用於 GET 和 POST 方法的步級變數。指定屬性和值。步驟變數覆蓋之前的場景變數或步驟變數。 然而,一個步驟變數的值僅影響之後的步驟(而不是當前步驟)。 它們具有以下格式:{macro}=value{macro}=regex:<regular expression>有關更多資訊,請參閱 場景 (scenario) 級別上的變數描述。Zabbix 2.2 開始支援步驟變數。Zabbix 2.2 開始,{HOST.*} 宏 和使用者宏可以在此欄位中使用。在查詢欄位或提交表單資料時,變數會自動進行URL編碼,但使用 raw 方式提交資料或者直接在URL中使用時,必須手動進行URL編碼 HTTP 頭 (Headers) 執行請求時將傳送的自定義 HTTP headers。指定屬性和值 步驟級別上的 headers 將覆蓋為該場景指定的 headers。例如,設定“User-Agent:”為空時,將覆蓋在場景上設定的 User-Agent 名稱。支援使用者宏和 {HOST.*} 宏、\ 這將設定 CURLOPT_HTTPHEADER cURL 選項。Zabbix 2.4 開始,支援指定自定義 HTTP 頭 跟蹤重定向 (Follow redirects) 選中該複選框以跟蹤 HTTP 重定向。將會設定 CURLOPT_FOLLOWLOCATION cURL 選項。Zabbix 2.4 開始支援此選項。 僅檢索標頭 (Retrieve only headers) 選中複選框,僅從 HTTP 響應中檢索標題。這將設定 CURLOPT_NOBODY cURL 選項。Zabbix 2.4 開始支援此選項。 超時時間 (Timeout) Zabbix 根據設定的秒數以內來處理 URL。 實際上,此引數定義為連線到URL的最大時間和執行 HTTP 請求的最長時間。 因此,Zabbix 不會在步驟上花費超過 2x 超時時間。支援時間的字尾,例如30s,1m,2h,1d,自從Zabbix 3.4.0 開始。支援使用者宏,自從Zabbix 3.4.0 開始 必需的字串 (Required string) 必需的正則表示式。除非檢索到的內容(HTML)匹配所需的模式,否則步驟將失敗。 如果為空,則不執行檢查。例如:Zabbix 的主頁、\ Welcome.*admin 注意 : 在此欄位中不支援引用在 Zabbix 前端中建立的 正則表示式 (regular expressions)。 Zabbix 2.2 開始,支援使用者宏和 {HOST.*} 宏 狀態碼 (Required status codes) 可以設定預期的 HTTP 狀態程式碼列表。 如果 Zabbix 獲取的 HTTP 狀態碼不在列表中,該步驟將認為為失敗。如果為空,則不執行檢查。例如:200,201,210-299Zabbix 2.2 開始,支援使用者宏。 Web 場景步驟中的任何更改只有在儲存整個場景時才會儲存。

    另請參見如何配置 Web 監控步驟的 示例。

    配置身份驗證

    身份驗證選項卡允許您配置場景身份驗證選項。

    認證引數:

    引數說明 驗證 (Authentication) 驗證引數。 None - 未使用身份驗證。基本認證 - 使用基本認證。NTLM authentication - 使用 NTLM (Windows NT LAN Manager) 身份驗證。選擇身份驗證方法將提供兩個附加欄位,用於輸入使用者名稱和密碼。 從 Zabbix 2.2 開始 ,使用者宏可以在使用者和密碼欄位中使用 。 對等 SSL 驗證 (SSL verify peer) 選中複選框以驗證 Web 伺服器的 SSL 證書。伺服器證書將自動從系統的證書頒發機構(CA)位置獲取。 您可以使用 Zabbix 伺服器或代理配置引數 SSLCALocation 覆蓋 CA 檔案的位置。這將設定 CURLOPT_SSL_VERIFYPEER cURL 引數.Zabbix 2.4 開始支援此選項。 SSL 驗證主機 (SSL verify host) 選中複選框以驗證 Web 伺服器證書的 公用名稱 (Common Name) 欄位或 主題備用名稱 (Subject Alternate Name) 欄位是否匹配、\ 這將會設定 CURLOPT_SSL_VERIFYHOST cURL 引數。Zabbix 2.4 開始支援此選項。 SSL 證書檔案 (SSL certificate file) 用於客戶端認證的 SSL 證書檔案的名稱。 證書檔案必須為 PEM1格式。 如果證書檔案還包含私鑰,請將 SSL 金鑰檔案 (SSL key file) 欄位留空。 如果金鑰加密,請在 SSL 金鑰密碼 (SSL key password) 欄位中指定密碼。 包含此檔案的目錄由 Zabbix 伺服器或代理配置引數 SSLCertLocation 指定。 宏和使用者宏可以在此欄位中使用。這將會設定 CURLOPT_SSLCERT cURL 引數、Zabbix 2.4 開始支援此選項。 SSL 金鑰檔案 (SSL key file) 用於客戶端認證的 SSL 私鑰檔案的名稱。 私鑰檔案必須為 PEM1格式。 包含此檔案的目錄由 Zabbix 伺服器或代理配置引數 SSLKeyLocation 指定。 宏和使用者宏可以在此欄位中使用。這將設定 CURLOPT_SSLKEY cURL 引數。Zabbix 2.4 開始支援此選項。 SSL 金鑰密碼 (SSL key password) SSL 私鑰檔案密碼。使用者宏可以在此欄位中使用。這將設定 CURLOPT_KEYPASSWD cURL 引數.Zabbix 2.4 開始支援此選項。 [1] Zabbix 僅支援 PEM 格式的證書和私鑰檔案。 如果您在 PKCS#12 格式檔案(通常具有副檔名* .p12 或* .pfx)中具有您的證書和私鑰資料,您可以使用以下命令從中生成 PEM 檔案:openssl pkcs12 -in ssl-cert.p12 -clcerts -nokeys -out ssl-cert.pem openssl pkcs12 -in ssl-cert.p12 -nocerts -nodes -out ssl-cert.keyZabbix 伺服器對證書的更改無需重啟。如果在單個檔案中有客戶端證書和私鑰,只需在“SSL 證書檔案”欄位中指定它,並將“SSL 金鑰檔案”欄位留空即可。 證書和金鑰必須仍為 PEM 格式。 組合證書和金鑰很容易:cat client.crt client.key > client.pem顯示

    要檢視定義的 Web 場景的詳細資料,請轉到 監控中 (Monitoring)→Web 或 最新資料 (Latest data)。 單擊方案名稱以檢視更詳細的統計資訊。

    可以在 監控中 (Monitoring)→儀表板 (Dashboard) 中檢視 Web 監控場景的概述。

    擴充套件監控

    有時需要記錄接收的HTML頁面內容。 如果某些 Web 方案步驟失敗時是非常有用的。 除錯級別 5(跟蹤)用於此目的。 此級別可以在 服務端 (server) 和 代理 (proxy) 代理配置檔案中設定或使用執行時控制選項 (,其中 N 是程序號)。 以下示例說明如果除錯級別 4 已設定,監控擴充套件如何啟動:

    Increase log level of all http pollers: shell> zabbix_server -R log_level_increase="http poller"Increase log level of second http poller: shell> zabbix_server -R log_level_increase="http poller,2"

    如果不需要擴充套件 Web 監控,可以使用選項來停止。

  • 中秋節和大豐收的關聯?
  • 肉鬆做完沒有絨怎麼回事?