|
需求:
生产环境中需要实现IIS 站点监控自动化,需要获取到站点名和站点进程的PID。有了站点名可以用windows内置的key获取相关监控项的值。例如站点的get、post请求数,站点的版本信息等。但是还需要监控IIS站点的SQL连接数,这需要IIS站点被访问,并且有SQL进程。然后通过进程号来判断是各个站点的SQL连接数。
脚本内容:
get.sitename
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| $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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| $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
zabbix监控模板和脚本.rar
(7.61 KB, 下载次数: 24)
|
|