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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用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


本文出自 “zengestudy” 博客,请务必保留此出处http://zengestudy.blog.51cto.com/1702365/1857764

以上是关于用powershell脚本实现zabbix LLD 监控IIS站点的主要内容,如果未能解决你的问题,请参考以下文章

自定义zabbix中的普通KEY及LLD KEY

玩转 Zabbix: 用 LLD 完全自动化监控 Oracle

zabbix lld使用trapper方式(zabbix_sender)

Zabbix lld发现磁盘监控

使用iostat和LLD实现zabbix监控IO性能

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