首页 > 代码库 > 用powershell脚本实现zabbix LLD 监控IIS站点
用powershell脚本实现zabbix LLD 监控IIS站点
需求:
生产环境中需要实现IIS 站点监控自动化,需要获取到站点名和站点进程的PID。有了站点名可以用windows内置的key获取相关监控项的值。例如站点的get、post请求数,站点的版本信息等。但是还需要监控IIS站点的SQL连接数,这需要IIS站点被访问,并且有SQL进程。然后通过进程号来判断是各个站点的SQL连接数。
脚本内容:
get.sitename
$sitearray=@() [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
$sitearray=@() $pidarray=@() [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
本文出自 “zengestudy” 博客,请务必保留此出处http://zengestudy.blog.51cto.com/1702365/1857764
用powershell脚本实现zabbix LLD 监控IIS站点
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。