12 ноября 2015

Zabbix agent installer

zabbix agent installer
Установка агента мониторинга на сервера и рабочие станции под виндой связана с некоторыми рутинными операциями. Исполняемый файл агента и файл конфигурации нужно скопировать, затем внести изменения в файл конфигурации, затем запустить инсталляцию из командной строки. Слишком много человеческого фактора. Есть решение в виде MSI установщика, но подойдет оно только для раскатывания через GPO, т.к. также требует указания параметров при установке.


В моем решении достаточно просто запустить CMD файл.









Для начала необходимо положить на сетевую шару файлы заббикс агента, разбив на 3 папки:

\\shara\
          INSTALL_zabbix_agentd.cmd
          zabbix_agentd.conf

\\shara\win32\
          zabbix_agentd.exe
          zabbix_get.exe
          zabbix_sender.exe

\\shara\win64\
          zabbix_agentd.exe
          zabbix_get.exe
          zabbix_sender.exe

В файле конфигурации необходимо указать неизменные данные- адреса серверов, порты, какие-то пользовательские параметры, если они есть.
Скрипт установки определит разрядность ОС, скопирует требуемые файлы, добавит разрешения в фаервол ОС и допишет в файл конфигурации хостнейм сервера.

Сам скрипт INSTALL_zabbix_agentd.cmd
@echo off

chcp 437

set FilePathDef=\\shara
set FilePath32=\\shara\win32
set FilePath64=\\shara\win64

if "%processor_architecture%"=="x86" (
 set FilePath=%FilePath32%
 ) else (
 set FilePath=%FilePath64%
 )

sc stop "Zabbix Agent"

netsh advfirewall firewall add rule name="Zabbix Agent" dir=in protocol=TCP localport=10050 action=allow
netsh advfirewall firewall add rule name="Zabbix Agent trapp" dir=out protocol=TCP localport=10051 action=allow

mkdir "C:\Program Files\zabbix-agent"

copy "%FilePathDef%\zabbix_agentd.conf" "C:\Program Files\zabbix-agent\zabbix_agentd.conf"
copy "%FilePath%\zabbix_agentd.exe" "C:\Program Files\zabbix-agent\zabbix_agentd.exe"
copy "%FilePath%\zabbix_get.exe" "C:\Program Files\zabbix-agent\zabbix_get.exe"
copy "%FilePath%\zabbix_sender.exe" "C:\Program Files\zabbix-agent\zabbix_sender.exe"
cd "C:\Program Files\zabbix-agent\"

SETLOCAL ENABLEDELAYEDEXPANSION
for /f "tokens=2 delims= " %%A in ('ping -4 -n 1 -a localhost ^|find /i "pinging"') do SET FQDN=%%A
CALL :LoCase FQDN

@echo off

ENDLOCAL
GOTO:EOF

:LoCase
SET %~1=!%1:A=a!
SET %~1=!%1:B=b!
SET %~1=!%1:C=c!
SET %~1=!%1:D=d!
SET %~1=!%1:E=e!
SET %~1=!%1:F=f!
SET %~1=!%1:G=g!
SET %~1=!%1:H=h!
SET %~1=!%1:I=i!
SET %~1=!%1:J=j!
SET %~1=!%1:K=k!
SET %~1=!%1:L=l!
SET %~1=!%1:M=m!
SET %~1=!%1:N=n!
SET %~1=!%1:O=o!
SET %~1=!%1:P=p!
SET %~1=!%1:Q=q!
SET %~1=!%1:R=r!
SET %~1=!%1:S=s!
SET %~1=!%1:T=t!
SET %~1=!%1:U=u!
SET %~1=!%1:V=v!
SET %~1=!%1:W=w!
SET %~1=!%1:X=x!
SET %~1=!%1:Y=y!
SET %~1=!%1:Z=z!
GOTO:NOTEND

:NOTEND

ECHO Hostname=%FQDN% >> "C:\Program Files\zabbix-agent\zabbix_agentd.conf"

zabbix_agentd.exe --install --config "C:\Program Files\zabbix-agent\zabbix_agentd.conf"

@echo on
sc start "Zabbix Agent"

pause

Также скрипт "нормализует" имя сервера(все буквы маленькие).
Запускать скрипт необходимо с правами администратора.
Ваш дедушка/