zabbix结合批处理实现自发现规则

简单的安装就不做描述了,这里主要是实现自发现程序并进行监控,程序放置在同一目录下,文件名称就是进程名,通过自发现规则来自动识别添加。

第一步是编写批处理脚本

@echo off & setlocal EnableDelayedExpansion
::获取脚本后接的参数
set type=%1
::参数对比的值
set ifnameone=zcell
set ifnametwo=status
set file=C:\zcell
set writefile=C:\zabbix_agents\script\zcellpid.txt
set /a b=0
set /a c=0
::获取指定目录下的文件夹数量
for /f "delims=" %%a in ('dir /b %file%') do set/a b+=1
::返回json格式的统计数据
if %type% == %ifnameone% (
  echo {
  echo     "data":[
  for /f "delims=" %%i in ('dir /b %file%') do (
    set /a c+=1
    if %b% == !c! (
      echo         {"{#ZCELL}":"%%i"}
    )else echo         {"{#ZCELL}":"%%i"},
  )
  echo     ]
  echo }
)
::发送整理好的数据
if %type% == %ifnametwo% (
  for /f "delims=" %%i in ('dir /b %file%') do (
    for /f "usebackq" %%i in (`"tasklist | find /C "%%i""`) do set status=%%i
    echo - zcellname.pid[%%i] !status!>> %writefile%
  )
  C:\zabbix_agents\bin\win64\zabbix_sender.exe -z server端IP -s "zabbix页面中配置的主机名" -i %writefile% > nul
  DEL %writefile%
  echo 0
)

第二步添加zabbix配置文件userparameter_pid.conf(注意如果脚本执行时间较长需要修改配置文件的timeout

    UserParameter=zcellname.discovery[*],C:\zabbix_agents\script\autoPID.cmd zcell  #json数据返回
    UserParameter=zcellname.pid[*],C:\zabbix_agents\script\autoPID.cmd status $1 #触发主动发送的行为

第三步配置模板

03a764a73268e42945e11950f885e6326e1.jpg

监控项(主要作用就是来触发批处理进行主动发送

注意信息类型要字符型

e4ea51f2816e259f5784e4f0d87fda17993.jpg

自发现规则

全局配置

d90355b3878f142b0cf8775ec0c3bc857d5.jpg

 

监控项原型

主要注意的是两点:

    一是类型必须是采%器(敏感词,看图)

    二是键值【】中包含的是之前生成的json格式中的key

2758c90de0b1a09fde974fd54b8fc1cce8c.jpg

 

第四步就是重启agentd端并将模板绑定到指定主机上

最后可以通过

/usr/local/zabbix/bin/zabbix_get -s "agentd端IP" -k zcellname.discovery

/usr/local/zabbix/bin/zabbix_get -s "agentd端IP" -k zcellname.pid

来进行测试

 

 

 

转载于:https://my.oschina.net/u/3164044/blog/1920979

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值