45324 发表于 2016-9-29 09:43:02

zabbix自动发现监控IIS站点

   如果一台windows server有许多个IIS站点,我们想实现这样一个监控目标:监控每个站点的状态、请求、流量、连接数,而且以后新增加的站点也可以自动加入到监控里,不需要再手动添加。
    利用zabbix的自动发现(LLD)功能结合脚本可以实现上面的需求,实现对IIS站点的动态添加,动态监控。

    先看一下监控的效果:

    上图中的“Web Service(wskh)”是指IIS网站名称为wskh;“Web Service(_Total)”是指IIS下所有的站点。
    网站流量:

    网站请求:

    下面讲一下监控方法:
一、zabbix服务端配置

   1、配置过滤正则表达式

    依次选择Administration->General->Regular expressions。创建新的正则表达式“IIS Site for discovery”,会在后面的模板中引用。正则表达式的名字不能有错,否则导入模板报错。
    表达式的内容填“^none$”,表达式类型选择“Result is FALSE”,意思是过滤掉内容是none的结果。这么填写是为了配合自动发现的脚本,脚本内容见后面客户端的配置。
   zabbix2.2版本配置方法:


    zabbix3.0版本配置方法:

    2、导入模板
    现在可以导入模板了,模板见本文的附件。下面介绍一下模板的监控项和告警的配置:

[*]监控项原型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会根据以上原型对发现出来的每一个站点创建相应的监控项、触发器、图形。
二、zabbix客户端配置
    下面要在被监控的IIS服务器上做配置。
    首先上传IIS站点自动发现脚本LLD_Web_Service.bat到C盘根目录。
    脚本内容如下:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@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的配置文件,增加自定义参数:


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





    修改完毕重启zabbix agent使配置生效。

    在zabbix server上测试一下客户端是否配置成功:使用zabbix_get命令获取脚本执行结果,脚本返回一段json数据。

   最后在zabbix web上创建主机并导入模板,监控完成!






terramex 发表于 2016-9-30 16:41:48

模板里面都是空的,一个项目都没有

天磷1 发表于 2016-10-10 11:16:20

缺金币,回帖挣点

云保贝 发表于 2017-4-5 15:44:07

赚点金币,嘿嘿

天下123 发表于 2017-4-6 11:11:12

非常不错,楼主可以加精,学习了

天下123 发表于 2017-4-6 11:13:35

terramex 发表于 2016-9-30 16:41
模板里面都是空的,一个项目都没有

模板格式改下,可能楼主windows没有设置,模板格式都是以.xml,结尾的

hanhongwen 发表于 2017-4-11 09:57:26

支持一下,想下载

zxq920664709 发表于 2017-4-19 16:16:32

大神很牛,到此转载的都是这个,终于找到原版了,感谢

amin920113 发表于 2017-5-3 11:47:54

大神,请教一个,下面这两个监控数据怎么没有原型图呢
{#WEB_SERVICE} Current Connections:当前与IIS站点建立连接的数量
{#WEB_SERVICE} Service Uptime:IIS站点的启动时间

pengtai 发表于 2017-5-19 20:21:26

看起来不错 必须支持

yjwapdc@163.com 发表于 2017-8-16 15:32:19

我感觉有必要

Jenks 发表于 2018-9-10 15:31:11

找了很久,膜拜大神。。。。

huishangtianxia 发表于 2018-11-14 16:16:30

很好的东东,就是金币有点高了

gennis2008 发表于 2018-12-3 19:28:38

发个出去,能挣到钱吗

gennis2008 发表于 2018-12-3 19:28:49

再发一次,是不是又能挣一个

gennis2008 发表于 2018-12-3 19:28:56

真的是一句一分

gennis2008 发表于 2018-12-3 19:29:12

真的是大神,

gennis2008 发表于 2018-12-3 19:29:27

第5次了,我的分数够了吗

jamesyuan 发表于 2018-12-21 09:45:54

能让我下载试试吗

jamesyuan 发表于 2018-12-21 09:47:04

楼上的大哥试了吗?
页: [1] 2
查看完整版本: zabbix自动发现监控IIS站点