ZabbixAgentのインストールの半自動化

 ZabbixAgentもたくさん入れるとなると面倒なので、極力コピペとか避けたいと思って準備した。WindowsがサービスからZabbixAgentとSNMPトラップ有効化してあげないといけなくてなんか残念感はあるけど、他のGUIいじくらなくてよくなってたので少し楽(AWSのWindowsServer2022のみで確認)


■Linux側のAgentインストール

$ cat << '_EOF_' > zabbix_agent.sh
#!/bin/bash
ZABBIX_DL_URL=https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb
ZABBIX_PKG=zabbix-release_6.4-1+ubuntu22.04_all.deb
ZABBIX_SERVER_IP=10.0.10.122


wget ${ZABBIX_DL_URL}
sudo sudo dpkg -i ${ZABBIX_PKG}
sudo apt update
sudo apt install -y zabbix-agent2 zabbix-agent2-plugin-*

sudo sed -i 's/Server=127.0.0.1/Server='"${ZABBIX_SERVER_IP}"'/g' /etc/zabbix/zabbix_agent2.conf
sudo sed -i 's/ServerActive=127.0.0.1/ServerActive='"${ZABBIX_SERVER_IP}"'/g' /etc/zabbix/zabbix_agent2.conf
sudo sed -i 's/Hostname=Zabbix server/#Hostname=Zabbix server/g' /etc/zabbix/zabbix_agent2.conf
sudo sed -i 's/# HostnameItem=system.hostname/HostnameItem=system.hostname/g' /etc/zabbix/zabbix_agent2.conf

sudo systemctl restart zabbix-agent2
sudo systemctl enable zabbix-agent2
_EOF_

$ chmod 755 zabbix_agent.sh
$ ./zabbix_agent.sh


■Windows側のAgentインストール(win_zabbix.bat)

※バッチ実行後にサービスの手動起動必要

※UTF-8で保管しても問題なし

@echo off
setlocal enabledelayedexpansion

rem Zabbix Agent ダウンロード関連設定
set WORKING_DIR=C:\Users\Administrator\Downloads
set ZABBIX_SRV_VERSION=6.4
set ZABBIX_AGENT_VERSION=6.4.10
set DOWNLOAD_FILE=windows-amd64-openssl.zip
set ZABBIX_BASE_URL=https://cdn.zabbix.com/zabbix/binaries/stable/
set ZABBIX_AGENT_URL=%ZABBIX_BASE_URL%%ZABBIX_SRV_VERSION%/%ZABBIX_AGENT_VERSION%/zabbix_agent-%ZABBIX_AGENT_VERSION%-%DOWNLOAD_FILE%

rem Zabbix Agent インストール先
set EXTRACT_PATH=zabbix_agents
set TARGET_FOLDER=C:\%EXTRACT_PATH%

rem Zabbix Agent サービス関連設定
set SERVICE_NAME=ZabbixAgent
set CONFIG_FILE=conf\zabbix_agentd.conf

rem SNMP サービスおよびポート関連設定
set SNMP_SERVICE_NAME=SNMP
set SNMP_PORT=161

rem Zabbix Server IPアドレス
set ZABBIX_SERVER_IP=10.0.10.122

echo Downloading Zabbix Agent...
bitsadmin /transfer ZabbixAgentDownloadJob /download /priority normal %ZABBIX_AGENT_URL% %WORKING_DIR%\%DOWNLOAD_FILE%

echo Extracting Zabbix Agent...
pushd %TARGET_FOLDER%
powershell -Command Expand-Archive -Path '%WORKING_DIR%\%DOWNLOAD_FILE%' -DestinationPath %WORKING_DIR%\%EXTRACT_PATH%
popd

echo Moving Zabbix Agent folder to C drive...
move %WORKING_DIR%\%EXTRACT_PATH% %TARGET_FOLDER%

echo Registering Zabbix Agent as a service...
sc create !SERVICE_NAME! binPath= "\"%TARGET_FOLDER%\bin\zabbix_agentd.exe\" --config \"%TARGET_FOLDER%\!CONFIG_FILE!\" --install" start= auto
sc start !SERVICE_NAME!

echo Enable SNMP Service...
sc config !SNMP_SERVICE_NAME! start= auto
sc start !SNMP_SERVICE_NAME!

echo Allow SNMP ports through Firewall...
netsh advfirewall firewall add rule name="Allow SNMP Inbound Port" dir=in action=allow protocol=UDP localport=161
netsh advfirewall firewall add rule name="Allow SNMP Outbound Port" dir=out action=allow protocol=UDP localport=161

echo Allow Zabbix Agent ports through Firewall...
netsh advfirewall firewall add rule name="Allow Zabbix Agent Default Port" dir=in action=allow protocol=TCP localport=10050
netsh advfirewall firewall add rule name="Allow Zabbix Agent Port" dir=in action=allow protocol=TCP localport=15001

echo Set Zabbix Server IP in Zabbix Agent config...
echo Server=!ZABBIX_SERVER_IP! >> %TARGET_FOLDER%\!CONFIG_FILE!

echo Zabbix Agent installation and configuration completed.

rem 後始末
del %WORKING_DIR%\%DOWNLOAD_FILE%


PowerShellでなくて今時、バッチファイルという・・・・。

PowerShell使った方がいいんだろうなぁ

ひとまずZabbixServerとWindowsとLinuxで情報取得するところまではできた。

後はどういう使い方するかとかトリガーだとか、色々とこねくり回せるところをきちんとお勉強していくとこかなぁ。

コメント

このブログの人気の投稿

証券外務員1種勉強(計算式暗記用メモ)

GASでGoogleDriveのサブフォルダとファイル一覧を出力する

マクロ経済学(IS-LM分析)