Atualizar zabbix-agent-veloo.sh

This commit is contained in:
2026-02-10 10:14:42 -03:00
parent 7a2d4521ea
commit 21a6989a88

View File

@@ -1,72 +1,71 @@
#!/bin/bash #!/bin/bash
# 1. Silenciar erros de locale e definir ambiente # 1. Preparação do Ambiente
export LC_ALL=C export LC_ALL=C
export DEBIAN_FRONTEND=noninteractive
# 2. Variáveis de Configuração
ZABBIX_SERVERS="192.168.120.231,192.168.120.75,192.168.120.76" ZABBIX_SERVERS="192.168.120.231,192.168.120.75,192.168.120.76"
VM_HOSTNAME=$(hostname) VM_HOSTNAME=$(hostname)
CONFIG_FILE="/etc/zabbix/zabbix_agent2.conf" CONFIG_FILE="/etc/zabbix/zabbix_agent2.conf"
echo "----------------------------------------------------" echo "----------------------------------------------------"
echo "Iniciando Instalação do Zabbix Agent 2" echo "Zabbix Agent 2 - Instalador Universal"
echo "Hostname Detectado: $VM_HOSTNAME" echo "Hostname: $VM_HOSTNAME"
echo "----------------------------------------------------" echo "----------------------------------------------------"
# 3. Detecção de Sistema e Instalação # 2. Detecção e Instalação
if [ -f /etc/debian_version ]; then if [ -f /etc/debian_version ]; then
echo "[INFO] Sistema detectado: Debian/Ubuntu" echo "[INFO] Sistema detectado: Família Debian/Ubuntu"
# Adicionando repositório oficial Zabbix 6.4 # Pega o codename (ex: focal, jammy, bookworm) para o repo correto
wget -q https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb DISTRO_CODENAME=$(lsb_release -cs 2>/dev/null || cat /etc/os-release | grep VERSION_CODENAME | cut -d= -f2)
dpkg -i zabbix-release_latest+debian12_all.deb > /dev/null 2>&1 [ -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 update -y > /dev/null 2>&1
apt-get install zabbix-agent2 -y > /dev/null 2>&1 apt-get install zabbix-agent2 -y
elif [ -f /etc/redhat-release ]; then elif [ -f /etc/redhat-release ]; then
echo "[INFO] Sistema detectado: RHEL/CentOS/Rocky" echo "[INFO] Sistema detectado: Família RHEL/CentOS (Issabel)"
# Adicionando repositório oficial Zabbix 6.4 para RHEL 9 (funciona em Alma/Rocky) # Pega a versão major (7, 8 ou 9)
rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-6.4-1.el9.noarch.rpm > /dev/null 2>&1 VERSION=$(rpm -E %{rhel})
dnf clean all > /dev/null 2>&1
dnf install zabbix-agent2 -y > /dev/null 2>&1 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 else
echo "[ERRO] Sistema operacional não suportado." echo "[ERRO] Distribuição não suportada automaticamente."
exit 1 exit 1
fi fi
# 4. Verificação e Correção do Arquivo de Configuração # 3. Configuração do Agente (Só executa se o arquivo existir)
# Pequena pausa para garantir que o sistema de arquivos liberou o arquivo após o install if [ -f "$CONFIG_FILE" ]; then
sleep 2 echo "[INFO] Editando configuração em $CONFIG_FILE..."
cp "$CONFIG_FILE" "$CONFIG_FILE.bak"
if [ ! -f "$CONFIG_FILE" ]; then
echo "[AVISO] Arquivo de config não encontrado em $CONFIG_FILE. Tentando localizar..."
# Busca alternativa (algumas distros podem mudar o path)
FOUND_CONFIG=$(find /etc -name "zabbix_agent2.conf" | head -n 1)
if [ -z "$FOUND_CONFIG" ]; then # Garante que as linhas existam ou sejam substituídas
echo "[ERRO] Não foi possível encontrar o arquivo de configuração do Zabbix." sed -i "s|^Server=.*|Server=$ZABBIX_SERVERS|" "$CONFIG_FILE"
exit 1 sed -i "s|^ServerActive=.*|ServerActive=$ZABBIX_SERVERS|" "$CONFIG_FILE"
else sed -i "s|^Hostname=.*|Hostname=$VM_HOSTNAME|" "$CONFIG_FILE"
CONFIG_FILE=$FOUND_CONFIG
# 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 fi
fi
# 5. Edição do Arquivo de Configuração echo "----------------------------------------------------"
echo "[INFO] Configurando arquivo: $CONFIG_FILE" echo "[SUCESSO] Agente instalado e configurado!"
cp "$CONFIG_FILE" "$CONFIG_FILE.bak" echo "----------------------------------------------------"
else
# Limpa configurações anteriores e define os novos servidores/hostname echo "[ERRO] O pacote foi instalado, mas o arquivo $CONFIG_FILE não foi encontrado."
sed -i "s|^Server=.*|Server=$ZABBIX_SERVERS|" "$CONFIG_FILE" exit 1
sed -i "s|^ServerActive=.*|ServerActive=$ZABBIX_SERVERS|" "$CONFIG_FILE" fi
sed -i "s|^Hostname=.*|Hostname=$VM_HOSTNAME|" "$CONFIG_FILE"
# 6. Finalização do Serviço
echo "[INFO] Reiniciando o serviço Zabbix Agent 2..."
systemctl restart zabbix-agent2
systemctl enable zabbix-agent2
echo "----------------------------------------------------"
echo "CONCLUÍDO!"
echo "O host '$VM_HOSTNAME' deve aparecer no Zabbix em instantes."
echo "Certifique-se de que o Auto-Registro está ativo no Servidor."
echo "----------------------------------------------------"