若是一臺windows server有許多個IIS站點,咱們想實現這樣一個監控目標:監控每一個站點的狀態、請求、流量、鏈接數,並且之後新增長的站點也能夠自動加入到監控裏,不須要再手動添加。
mysql
利用zabbix的自動發現(LLD)功能結合腳本能夠實現上面的需求,實現對IIS站點的動態添加,動態監控。
nginx
先看一下監控的效果:web
上圖中的「Web Service(wskh)」是指IIS網站名稱爲wskh;「Web Service(_Total)」是指IIS下全部的站點。正則表達式
網站流量:sql
網站請求:express
下面講一下監控方法:json
1、zabbix服務端配置
windows
一、配置過濾正則表達式
服務器
依次選擇Administration->General->Regular expressions。建立新的正則表達式「IIS Site for discovery」,會在後面的模板中引用。正則表達式的名字不能有錯,不然導入模板報錯。ide
表達式的內容填「^none$」,表達式類型選擇「Result is FALSE」,意思是過濾掉內容是none的結果。這麼填寫是爲了配合自動發現的腳本,腳本內容見後面客戶端的配置。
zabbix2.2版本配置方法:
zabbix3.0版本配置方法:
二、導入模板
如今能夠導入模板了,模板見本文的附件。下面介紹一下模板的監控項和告警的配置:
監控項原型Item prototypes
這裏使用了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
{#WEB_SERVICE} on {HOST.NAME} has just been restarted:重啓IIS站點的報警
圖形原型Graph prototypes
{#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
修改完畢重啓zabbix agent使配置生效。
在zabbix server上測試一下客戶端是否配置成功:使用zabbix_get命令獲取腳本執行結果,腳本返回一段json數據。
最後在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