zabbix监控windows dhcp server 作用域
这里省略 agent安装 和 zabbix添加主机步骤
步骤:
1、准备两个脚本,check_dhcpscop.ps1 和 check_dhcpscop_value.ps1
check_dhcpscop.ps1
#获取DHCP作用域,输出结果要为json格式,key值格式必须为{#NAME},必须大写
$scops = Get-DhcpServerv4Scope |select @{name="{#SCOPNAME}";expression={$_.Name.replace(' ','')}}|ConvertTo-Json
@"
{"data":$scops}
"@
check_dhcpscop_value.ps1
Param($scopname, $propname)
#获取DHCP作用域当前状态及IP分配情况
$scops = Get-DhcpServerv4Scope |select Name,@{name="ScopeID";expression={$_.ScopeID.IPAddressToString}},State
$scops_ipusages = Get-DhcpServerv4ScopeStatistics |Select @{name="ScopeID";expression={$_.ScopeID.IPAddressToString}},PercentageInUse
#将两个对象合并为一个
foreach ($scop in $scops)
{
$scop_ipusage = $scops_ipusages | Where-Object {$_.ScopeID -eq $scop.ScopeID}
$scop | Add-Member -MemberType NoteProperty -Name PercentageInUse -Value $scop_ipusage.PercentageInUse -Force
}
($scops | ? {$_.Name.replace(' ','') -eq ($scopname + $ID)}).$propname
两个脚本都放在dhcp服务器的 c:\zabbix\script\
2、zabbix_agentd.conf中自定义用户参数 UserParameter
找到zabbix Agent的安装目录,修改zabbix_agentd.conf文件
UserParameter=check_dhcpscop,powershell c:\zabbix\script\check_dhcpscop.ps1
UserParameter=check_dhcpscop_value[*],powershell c:\zabbix\script\check_dhcpscop_value.ps1 $1 $2
zabbix的用户参数限制使用特殊字符和空格,假设你的作用域名字是Vlan 10(带有空格),则会出现传参错误。
这里在check_dhcpscop.ps1里做了修改,会将空格去除。
3、在zabbix监控windows模板里创建自动发现规则
创建模板 windows DHCP Server by Zabbix agent —> 创建自动发现规则 DHCP Scope Discovery
4、创建监控项
创建监控项 DHCP Scope State_{#SCOPNAME}
创建监控项 DHCP Scope PerCentageInUse_{#SCOPNAME}
5、创建触发器
创建触发器{#SCOPNAME} Scope Static Inactice 和 {#SCOPNAME} Scope usag95%