用powershell脚本实现zabbix LLD 监控IIS站点

需求:

生产环境中需要实现IIS 站点监控自动化,需要获取到站点名和站点进程的PID。有了站点名可以用windows内置的key获取相关监控项的值。例如站点的get、post请求数,站点的版本信息等。但是还需要监控IIS站点的SQL连接数,这需要IIS站点被访问,并且有SQL进程。然后通过进程号来判断是各个站点的SQL连接数。

脚本内容:

get.sitename

[email protected]()
[System.Collections.ArrayList]$arraylist=$sitearray
$command=c:\windows\system32\inetsrv\appcmd.exe list vdir
foreach ($i in $command)
{
    $site=$i.split("")[1].split("/")[0].split(‘\"‘)[1].trim(‘‘)
    $arraylist.insert(0,$site)
}
#echo $arraylist
$a=$arraylist.count-1
#echo $a
echo    "{`n"
echo    `t‘"data"‘:[
foreach ($i in 0..$a)
{
     echo `n`t`t"{"
     $web=$arraylist[$i]
     $dir=‘"{#SITENAME}"‘+‘:‘+‘"‘+$web+‘"‘
     echo `t`t`t$dir
     echo `t`t"}"
     if ($i -lt $a)
     {
     echo `t`t‘,‘
     }
}
echo `t]
echo "}"

get.site.pid

[email protected]()
[email protected]()
[System.Collections.ArrayList]$arraylist=$sitearray
[System.Collections.ArrayList]$pidlist=$pidarray
$command=c:\windows\system32\inetsrv\appcmd.exe list wp
foreach ($i in $command)
{
   $site=$i.split(‘:‘)[1].replace(‘)‘,‘‘)
   $pidlist.insert(0,$i.split()[1])
   $arraylist.insert(0,$site)  
}
$a=$arraylist.count-1
#echo $arraylist
#echo $pidlist
echo    "{`n" 
echo    `t‘"data"‘:[
foreach ($i in 0..$a)
{
     echo `n`t`t"{"
     $web=$arraylist[$i]
     $id=$pidlist[$i]
     $dir1=‘"{#WP_NAME}"‘+‘:‘+‘"‘+$web+‘"‘
     $dir2=‘"{#WP_PID}"‘+‘:‘+$id
     echo `t`t`t$dir1‘,‘$dir2
     echo `t`t"}"
     if ($i -lt $a)
     {
     echo `t`t‘,‘
     } 
}
echo `t]
echo "}"

参考:

https://github.com/Yxnt/zabbix-w3wp

时间: 2024-08-27 06:07:42

用powershell脚本实现zabbix LLD 监控IIS站点的相关文章

zabbix企业应用:利用自动发现监控IIS站点

如果一台windows server有许多个IIS站点,我们想实现这样一个监控目标:监控每个站点的状态.请求.流量.连接数,而且以后新增加的站点也可以自动加入到监控里,不需要再手动添加. 利用zabbix的自动发现(LLD)功能结合脚本可以实现上面的需求,实现对IIS站点的动态添加,动态监控. 先看一下监控的效果: 上图中的"Web Service(wskh)"是指IIS网站名称为wskh:"Web Service(_Total)"是指IIS下所有的站点. 网站流量

Zabbix LLD监控之创建发现的Python脚本

#!/usr/bin/python import requests,json ip_list=[] data_json={} url = 'http://cmdb.cheyaoshicorp.com/api/ecs' r = requests.get(url) ecss = json.loads(r.text) for I in ecss:     ip_dic={}     host_ip = I.get('ip')     ip_dic["{#IP}"]=host_ip     i

shell脚本实现LLD监控

要实现Zabbix LLD监控,通常需要两个脚本,一个自定义发现check脚本,并输出成Json格式,另一个才是获取监控项valus的脚本. 自定义发现checks脚本输出结果为以下形式: {     "data": [         {             "{#APP_NAME}": "AppCMDB"         },          {             "{#APP_NAME}": "Ap

zabbix3.0自动发现监控IIS

说明此处配置针对的是zabbix3.0版本 利用zabbix的自动发现(LLD)功能结合脚本可以实现上面的需求,实现对IIS站点的动态添加,动态监控. 效果图: 具体配置步骤: 1.  zabbix服务端配置 配置过滤正则表达式: 依次选择Administration->General->Regular expressions.创建新的正则表达式"IISSite for discovery",会在后面的模板中引用.正则表达式的名字不能有错,否则导入模板报错. 导入模块 将内

shell编程之【zabbix自定义监控网卡流量脚本】

之前写了一篇文章主要介绍zabbix的搭建使用http://msiyuetian.blog.51cto.com/8637744/1705396 下面这篇文章主要介绍zabbix自定义监控网卡流量的脚本实现 前期准备 1.说明 server ip :192.168.0.115 client ip :192.168.0.114 2.开启服务 因为之前搭建过zabbix环境,这里就不重复了,直接开启服务端的所需服务: [[email protected] ~]# /etc/init.d/httpd s

Linux zabbix IO监控 步骤脚本和模板

Linux zabbix IO监控 监控原理 通过定时监控iostata -dx 1 输出数据采集硬盘IO 1.服务器安装 yum install sysstat #iostat 工具安装 2.设置本机计划任务 crontab -e */3 * * * *  /usr/bin/iostat -dxkt 1 500 >/tmp/iostat_output 3.增加监控脚本 mkdir  /etc/zabbix/scripts #上传硬盘发现脚本 disk_discovery.sh #上传硬盘脚本

zabbix自定义监控脚本配置

实验环境 环境 IP 服务端 192.168.24.168 客户端 192.168.24.188 实验条件: zabbix监控服务器.客户端都已经部署完成,被监控主机已添加完成,zabbix监控运行正常.zabbix服务器设置邮箱报警运行正常. 实现目的: zabbix自定义监控客户端用户量,当用户量大于三个以上,会自动发送报警邮件到指定的邮箱. 实验步骤 1.修改客户端配置文件 [[email protected] ~]# vim /usr/local/etc/zabbix_agentd.co

使用Zabbix批量监控网站可用性方案二

一 应用场景描述 在上一篇文章中介绍了 使用Zabbix批量监控网站可用性方案一 Zabbix自带的Web监控只是利用libcurl库在Zabbix server或者proxy端来检测所有的url,这样实际上是不能检查到区域访问各个url的网络质量的.本文则使用Zabbix LLD,pycurl模块以及Zabbix sender来收集不同区域的Zabbix agent访问各个url的网络质量. 二 编写脚本 三 制作Zabbix模板 参考文档: http://john88wang.blog.51

演示 zabbix LLD(Low-Level Discovery) 如何使用

2016/11/30 目的:以监控 couchbase 上多个 buckets 的需求来举例说明 zabbix lld 是如何工作的. 关于 lld,网络上的文章也挺多的,希望自己能写一个简单明了的 howto 来帮助初学者. 一.准备工作 1.[zabbix-agent] 1)脚本示例 [[email protected] scripts]# cat monitor_couchbase.sh    #!/bin/bash # #2016/11/25 #v1.3 #PC #echo "[`dat