zabbix結合批處理實現自發現規則

簡單的安裝就不作描述了,這裏主要是實現自發現程序並進行監控,程序放置在同一目錄下,文件名稱就是進程名,經過自發現規則來自動識別添加。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(注意若是腳本執行時間較長鬚要修改配置文件的timeout3d

    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

來進行測試

相關文章
相關標籤/搜索