簡單的安裝就不作描述了,這裏主要是實現自發現程序並進行監控,程序放置在同一目錄下,文件名稱就是進程名,經過自發現規則來自動識別添加。json
第一步是編寫批處理腳本測試
@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)3d
UserParameter=zcellname.discovery[*],C:\zabbix_agents\script\autoPID.cmd zcell #json數據返回
UserParameter=zcellname.pid[*],C:\zabbix_agents\script\autoPID.cmd status $1 #觸發主動發送的行爲code
第三步配置模板server
監控項(主要做用就是來觸發批處理進行主動發送)blog
注意信息類型要字符型進程
自發現規則ip
全局配置get
監控項原型cmd
主要注意的是兩點:
一是類型必須是採%器(敏感詞,看圖)
二是鍵值【】中包含的是以前生成的json格式中的key
第四步就是重啓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
來進行測試