zabbix批量添加被監控windows客戶端

因爲公司大部分用的是windows服務器,大概有50多臺。若是是一臺一臺添加的話非常麻煩,若是數量更多的話那工做量可想而知。因此網絡管理員一般都是很是懶的。
環境:公司雖是域環境,可是除了幾臺域服務器成員服務器外其它大部分服務器都沒有加入域。
處理思路:
  • 在zabbix server端建立自動註冊
  • 在被監控端使用腳本安裝zabbix agent
在zabbix server端建立自動註冊
打開zabbix web控制檯 添加一條以下的自動註冊項。
zabbix_auto_regin
其中主機元數據須要在被監控端的conf配置文件中配置
zabbix_auto_regin-metadata-1
上圖中2個選項只能啓用其中一個,不然服務沒法啓動。這裏啓用HostMetadataItem=system.uname
system.uname會讀取當前系統的主機名等系統信息,自動識別windows或linux,若是是windows就添加主機元數據似windows.
添加完主機元數據後,再添加相應的操做動做,即識別出windows後要執行的操做,如:加入主機組,連接模板等
zabbix_auto_regin-actition
被控端安裝腳本

@echo off
set OsVersion=0
set OsProcessor=0
echo 操做系統版本:
ver|findstr /r /i " [版本 5.1.*]" > NUL && goto WindowsXP
ver|findstr /r /i " [版本 6.1.*]" > NUL && goto Windows7
goto UnknownVersion
:WindowsXP
set OsVersion="WindowsXP"
goto GetProcessor
:Windows7
set OsVersion="Windows7"
goto GetProcessor
:UnknownVersion
set OsVersion="UnknownVersion"
goto GetProcessor
:GetProcessor
if /i "%processor_architecture%" equ "x86" (
set OsProcessor="X86"
) else (
if /i "%processor_architecture%" equ "amd64" (
set OsProcessor="X64"
) else (
set OsProcessor="UnknownProcessor"
)
)
echo "The system arch:" %OsProcessor%
cd c:\
if not exist c:\zabbix (
mkdir zabbix
xcopy \\tsclient\E\zabbix\conf\* c:\zabbix /e /r /c /y
if /i %OsProcessor% equ "x86" (
xcopy \\tsclient\e\zabbix\bin\win32\* c:\zabbix /e /r /y /c
)
if /i %OsProcessor% equ "x64" (
xcopy \\tsclient\E\zabbix\bin\win64\* c:\zabbix /e /r /y /c
)
)else (
echo "zabbix文件夾已存在"
)
dir c:\zabbix

rem 安裝並註冊zabbix服務
C:\zabbix\zabbix_agentd.exe -i -c C:\zabbix\zabbix_agentd.win.conf
C:\zabbix\zabbix_agentd.exe -s -c C:\zabbix\zabbix_agentd.win.conf
pause

這是一個半自動化的腳本,須要在每臺終端上執行,因爲我用的是remote desktop manager遠程管理軟件,打開遠程會話後會自動映射本地盤符到目標器,因此在使用xcopy的時候很方便。你們根據本身的環境修改一下。

過一會在主機列表中就會自動添加進來
zabbix_auto_regin-hosts
相關文章
相關標籤/搜索