Windows zabbix監控遠程進程實現機制


  最近負責zabbix監控部署方面的工作,需要完成本地服務端監控遠程虛擬機的運行狀態(CPU、打開的進程等),與大家分享下我的實現方法。

  (1) 首先,需要實現記錄zabbix客戶端的進程的批處理:zabbix_task.bat;

  zabbix_task.bat內容如下:

  @echo off

  chcp 65001

  tasklist /v |findstr "%username%" > c:/zabbix_temp.txt  #進程路徑根據個人習慣設置

  pause

  (2) 其次,實現實時監控遠程的進程的批處理,使用VBS腳本調用腳本1實現定時刷新進程,腳本命名為:zabbix_monitor.vbs

  本地電腦遠程創建遠程電腦的計划任務程序(當每次登陸時自動運行腳本zabbix_monitor.vbs),進行實時監控電腦進程

  zabbix_monitor.vbs內容如下:

  Set ws = CreateObject("Wscript.shell")

  do
  ws.run left(Wscritp.Scritpfullname,instrrev(wscript.Scriptfullname,"\")-1)&"\zabbix_task.bat",vbhide

  Wscript.sleep 5000 

  loop

  (3) 最后,實現過濾篩選zabbix服務端需要監控的進程腳本:zabbix_tasklist.bat

  @echo off

  setlocal enabledelayedexpansion
  chcp 65001
  echo {
  echo "data" :[
  for /f "tokens = 9*" %%i in (c:\zabbix_temp.txt)
  do(
  set "str=%%j"
  set "str=!str:\=\\!"
  if"!str!"=="!str:暫缺=!" if"!str!"=="!str:Wnd=!" if"!str!"=="!str:N/A=!" if"!str!"=="!str:MCI=!" if"!str!"=="!str:dwn=!" if"!str!"=="!str:taskeng=!"   if"!str!"=="!str:KSafeTray=!" if"!str!"=="!str:6EBF21D6BA1F=!" if"!str!"=="!str:jusched=!" if"!str!"=="!str:HwUvPUpgrade=!"                   if"!str!"=="!str:SPES=!" if"!str!"=="!str:Windows Update=!" if"!str!"=="!str:cmd.exe=!" if"!str!"=="!str:SysFader=!"
  echo {"{#TASK_NAME}":"!str!"},
  )
  echo {"{#TASK_NAME}":"NULL"}
  echo]
  echo
  }

 PS:本地電腦訪問遠程電腦創建計划任務程序,可以使用批處理schtask命令完成訪問遠程電腦 

 

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM