71 lines
2.9 KiB
Bash
Executable File
71 lines
2.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# 1. Preparação do Ambiente
|
|
export LC_ALL=C
|
|
ZABBIX_SERVERS="192.168.120.231,192.168.120.75,192.168.120.76"
|
|
VM_HOSTNAME=$(hostname)
|
|
CONFIG_FILE="/etc/zabbix/zabbix_agent2.conf"
|
|
|
|
echo "----------------------------------------------------"
|
|
echo "Zabbix Agent 2 - Instalador Universal"
|
|
echo "Hostname: $VM_HOSTNAME"
|
|
echo "----------------------------------------------------"
|
|
|
|
# 2. Detecção e Instalação
|
|
if [ -f /etc/debian_version ]; then
|
|
echo "[INFO] Sistema detectado: Família Debian/Ubuntu"
|
|
# Pega o codename (ex: focal, jammy, bookworm) para o repo correto
|
|
DISTRO_CODENAME=$(lsb_release -cs 2>/dev/null || cat /etc/os-release | grep VERSION_CODENAME | cut -d= -f2)
|
|
[ -z "$DISTRO_CODENAME" ] && DISTRO_CODENAME="bookworm" # fallback
|
|
|
|
wget -q https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb -O zabbix-release.deb
|
|
dpkg -i zabbix-release.deb > /dev/null 2>&1
|
|
apt-get update -y > /dev/null 2>&1
|
|
apt-get install zabbix-agent2 -y
|
|
|
|
elif [ -f /etc/redhat-release ]; then
|
|
echo "[INFO] Sistema detectado: Família RHEL/CentOS (Issabel)"
|
|
# Pega a versão major (7, 8 ou 9)
|
|
VERSION=$(rpm -E %{rhel})
|
|
|
|
echo "[INFO] Configurando repositório para RHEL/CentOS $VERSION..."
|
|
if [ "$VERSION" == "7" ]; then
|
|
rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/7/x86_64/zabbix-release-6.4-1.el7.noarch.rpm --force > /dev/null 2>&1
|
|
else
|
|
rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/$VERSION/x86_64/zabbix-release-6.4-1.el$VERSION.noarch.rpm --force > /dev/null 2>&1
|
|
fi
|
|
|
|
yum clean all > /dev/null 2>&1
|
|
yum install zabbix-agent2 -y
|
|
else
|
|
echo "[ERRO] Distribuição não suportada automaticamente."
|
|
exit 1
|
|
fi
|
|
|
|
# 3. Configuração do Agente (Só executa se o arquivo existir)
|
|
if [ -f "$CONFIG_FILE" ]; then
|
|
echo "[INFO] Editando configuração em $CONFIG_FILE..."
|
|
cp "$CONFIG_FILE" "$CONFIG_FILE.bak"
|
|
|
|
# Garante que as linhas existam ou sejam substituídas
|
|
sed -i "s|^Server=.*|Server=$ZABBIX_SERVERS|" "$CONFIG_FILE"
|
|
sed -i "s|^ServerActive=.*|ServerActive=$ZABBIX_SERVERS|" "$CONFIG_FILE"
|
|
sed -i "s|^Hostname=.*|Hostname=$VM_HOSTNAME|" "$CONFIG_FILE"
|
|
|
|
# 4. Inicialização do Serviço
|
|
systemctl restart zabbix-agent2
|
|
systemctl enable zabbix-agent2
|
|
|
|
# 5. Ajuste de Firewall (Importante para Issabel/PBX)
|
|
if command -v iptables > /dev/null; then
|
|
echo "[INFO] Liberando porta 10050 no iptables para a gerência..."
|
|
iptables -I INPUT -p tcp -m multiport --dports 10050 -s $ZABBIX_SERVERS -j ACCEPT
|
|
fi
|
|
|
|
echo "----------------------------------------------------"
|
|
echo "[SUCESSO] Agente instalado e configurado!"
|
|
echo "----------------------------------------------------"
|
|
else
|
|
echo "[ERRO] O pacote foi instalado, mas o arquivo $CONFIG_FILE não foi encontrado."
|
|
exit 1
|
|
fi |