天天看點

zabbix企業應用:利用自動發現監控IIS站點

    如果一台windows server有許多個IIS站點,我們想實作這樣一個監控目标:監控每個站點的狀态、請求、流量、連接配接數,而且以後新增加的站點也可以自動加入到監控裡,不需要再手動添加。

    利用zabbix的自動發現(LLD)功能結合腳本可以實作上面的需求,實作對IIS站點的動态添加,動态監控。

    先看一下監控的效果:

<a href="http://s4.51cto.com/wyfs02/M00/88/2F/wKioL1freg2x7hmnAAD8an9MQZM495.png" target="_blank"></a>

    上圖中的“Web Service(wskh)”是指IIS網站名稱為wskh;“Web Service(_Total)”是指IIS下所有的站點。

    網站流量:

<a href="http://s5.51cto.com/wyfs02/M02/88/33/wKiom1freiCy1bbuAANQh_IHAS8159.png" target="_blank"></a>

    網站請求:

<a href="http://s1.51cto.com/wyfs02/M00/88/33/wKiom1frejKySVgXAAKxxKGb9_U419.png" target="_blank"></a>

    下面講一下監控方法:

一、zabbix服務端配置

   1、配置過濾正規表達式

    依次選擇Administration-&gt;General-&gt;Regular expressions。建立新的正規表達式“IIS Site for discovery”,會在後面的模闆中引用。正規表達式的名字不能有錯,否則導入模闆報錯。

    表達式的内容填“^none$”,表達式類型選擇“Result is FALSE”,意思是過濾掉内容是none的結果。這麼填寫是為了配合自動發現的腳本,腳本内容見後面用戶端的配置。

   zabbix2.2版本配置方法:

<a href="http://s2.51cto.com/wyfs02/M02/88/2F/wKioL1frekSwWog0AAB7vwyJGgM513.png" target="_blank"></a>

    zabbix3.0版本配置方法:

<a href="http://s4.51cto.com/wyfs02/M00/88/2F/wKioL1frelygIOLUAABM_TsbYeo573.png" target="_blank"></a>

    2、導入模闆

    現在可以導入模闆了,模闆見本文的附件。下面介紹一下模闆的監控項和告警的配置:

監控項原型Item prototypes

<a href="http://s4.51cto.com/wyfs02/M01/88/2F/wKioL1fremaTGiQuAAELvgvWKtU518.png" target="_blank"></a>

    這裡使用了windows性能計數器來監控IIS站點各項名額。下面介紹下各監控項的含義:

{#WEB_SERVICE} Bytes Received/sec:IIS站點接收資料位元組的速率

{#WEB_SERVICE} Bytes Sent/sec:IIS站點發送資料位元組的速率

{#WEB_SERVICE} Bytes Total/sec:IIS站點的總傳輸資料位元組的速率,是Received/sec和Sent/sec的和。

{#WEB_SERVICE} Get Requests/sec:IIS站點的GET請求速率

{#WEB_SERVICE} Post Requests/sec:IIS站點的POST請求速率

    以上5個監控項是取的平均值,使監控資料更加準确、平滑。

{#WEB_SERVICE} Current Connections:目前與IIS站點建立連接配接的數量

{#WEB_SERVICE} Service Uptime:IIS站點的啟動時間

    以上2個監控項是取的目前瞬時值。

觸發器原型Trigger prototypes

<a href="http://s2.51cto.com/wyfs02/M02/88/33/wKiom1frenTztGuhAACWJ8O0iRw031.png" target="_blank"></a>

{#WEB_SERVICE} on {HOST.NAME} has just been restarted:重新開機IIS站點的報警

圖形原型Graph prototypes

<a href="http://s3.51cto.com/wyfs02/M02/88/33/wKiom1freoCQw3x8AACRX_dm_lY340.png" target="_blank"></a>

{#WEB_SERVICE} Bytes/sec:資料傳輸速率圖形,包括資料接收速率、發送速率、總的速率。

{#WEB_SERVICE} Requests/sec:http請求速率圖形,包括GET請求速率和POST請求速率。

    zabbix server會根據以上原型對發現出來的每一個站點建立相應的監控項、觸發器、圖形。

二、zabbix用戶端配置

    下面要在被監控的IIS伺服器上做配置。

    首先上傳IIS站點自動發現腳本LLD_Web_Service.bat到C槽根目錄。

    腳本内容如下:

<code>@echo off</code>

<code>SETLOCAL ENABLEDELAYEDEXPANSION </code>

<code>echo {</code>

<code>echo     "data":[</code>

<code>for /F "tokens=* delims= " %%i IN ('typeperf -qx^|find "Web Service"^|find "Current Connections"') DO (</code>

<code>    </code><code>set j=%%i</code>

<code>    </code><code>for /F "tokens=1 delims=\" %%k in ("%%i") DO (</code>

<code>    </code><code>echo         {</code>

<code>    </code><code>echo             "{#WEB_SERVICE}": "%%k"</code>

<code>    </code><code>echo         },</code>

<code>    </code><code>)</code>

<code>)</code>

<code>echo         {</code>

<code>echo             "{#WEB_SERVICE}": "none"</code>

<code>echo         }</code>

<code>echo     ]</code>

<code>echo }</code>

    然後修改zabbix agent的配置檔案,增加自定義參數:

<code>UserParameter=iis.site.discovery,C:\LLD_Web_Service.bat</code>

<a href="http://s2.51cto.com/wyfs02/M01/88/2F/wKioL1freo7C_mY6AABNTWheIjE788.png" target="_blank"></a>

    修改完畢重新開機zabbix agent使配置生效。

    在zabbix server上測試一下用戶端是否配置成功:使用zabbix_get指令擷取腳本執行結果,腳本傳回一段json資料。

<a href="http://s2.51cto.com/wyfs02/M02/88/2F/wKioL1frepvi9sI5AABUYh1MNNQ192.png" target="_blank"></a>

   最後在zabbix web上建立主機并導入模闆,監控完成!

    其他zabbix自動發現LLD的應用文章:

<a href="http://down.51cto.com/data/2368189" target="_blank">附件:http://down.51cto.com/data/2368189</a>

本文轉自 張斌_青島 51CTO部落格,原文連結:http://blog.51cto.com/qicheng0211/1857398