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

    若是一臺windows server有許多個IIS站點,咱們想實現這樣一個監控目標:監控每一個站點的狀態、請求、流量、鏈接數,並且之後新增長的站點也能夠自動加入到監控裏,不須要再手動添加。
mysql

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

    先看一下監控的效果:web

wKioL1freg2x7hmnAAD8an9MQZM495.png

    上圖中的「Web Service(wskh)」是指IIS網站名稱爲wskh;「Web Service(_Total)」是指IIS下全部的站點。正則表達式

    網站流量:sql

wKiom1freiCy1bbuAANQh_IHAS8159.png

    網站請求:express

wKiom1frejKySVgXAAKxxKGb9_U419.png

    下面講一下監控方法:json

1、zabbix服務端配置
windows

   一、配置過濾正則表達式
服務器

    依次選擇Administration->General->Regular expressions。建立新的正則表達式「IIS Site for discovery」,會在後面的模板中引用。正則表達式的名字不能有錯,不然導入模板報錯。ide

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

   zabbix2.2版本配置方法:

wKioL1frekSwWog0AAB7vwyJGgM513.png

    zabbix3.0版本配置方法:

wKioL1frelygIOLUAABM_TsbYeo573.png

    二、導入模板

    如今能夠導入模板了,模板見本文的附件。下面介紹一下模板的監控項和告警的配置:

  • 監控項原型Item prototypes

wKioL1fremaTGiQuAAELvgvWKtU518.png

    這裏使用了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

wKiom1frenTztGuhAACWJ8O0iRw031.png

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

  • 圖形原型Graph prototypes

wKiom1freoCQw3x8AACRX_dm_lY340.png

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

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

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

2、zabbix客戶端配置

    下面要在被監控的IIS服務器上作配置。

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

    腳本內容以下:

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION 
echo {
echo     "data":[
for /F "tokens=* delims= " %%i IN ('typeperf -qx^|find "Web Service"^|find "Current Connections"') DO (
    set j=%%i
	for /F "tokens=1 delims=\" %%k in ("%%i") DO (
	echo         {
	echo             "{#WEB_SERVICE}": "%%k"
	echo         },
	)
)
echo         {
echo             "{#WEB_SERVICE}": "none"
echo         }
echo     ]
echo }

    而後修改zabbix agent的配置文件,增長自定義參數:

UserParameter=iis.site.discovery,C:\LLD_Web_Service.bat

wKioL1freo7C_mY6AABNTWheIjE788.png

    修改完畢重啓zabbix agent使配置生效。

    在zabbix server上測試一下客戶端是否配置成功:使用zabbix_get命令獲取腳本執行結果,腳本返回一段json數據。

wKioL1frepvi9sI5AABUYh1MNNQ192.png

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


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

zabbix應用之Low-level discovery監控磁盤IO:http://qicheng0211.blog.51cto.com/3958621/1599776

zabbix應用之nginx統一監控:http://qicheng0211.blog.51cto.com/3958621/1557695

zabbix應用之low-level discovery監控mysql:http://qicheng0211.blog.51cto.com/3958621/1539101

相關文章
相關標籤/搜索