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で情報取得するところまではできた。
後はどういう使い方するかとかトリガーだとか、色々とこねくり回せるところをきちんとお勉強していくとこかなぁ。
コメント