From 21a6989a8857f32b550078adb89428dcdc7fedc7 Mon Sep 17 00:00:00 2001 From: Gabriel Silva Date: Tue, 10 Feb 2026 10:14:42 -0300 Subject: [PATCH] Atualizar zabbix-agent-veloo.sh --- zabbix-agent-veloo.sh | 101 +++++++++++++++++++++--------------------- 1 file changed, 50 insertions(+), 51 deletions(-) diff --git a/zabbix-agent-veloo.sh b/zabbix-agent-veloo.sh index fa09865..6719ed2 100755 --- a/zabbix-agent-veloo.sh +++ b/zabbix-agent-veloo.sh @@ -1,72 +1,71 @@ #!/bin/bash -# 1. Silenciar erros de locale e definir ambiente +# 1. Preparação do Ambiente 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" VM_HOSTNAME=$(hostname) CONFIG_FILE="/etc/zabbix/zabbix_agent2.conf" echo "----------------------------------------------------" -echo "Iniciando Instalação do Zabbix Agent 2" -echo "Hostname Detectado: $VM_HOSTNAME" +echo "Zabbix Agent 2 - Instalador Universal" +echo "Hostname: $VM_HOSTNAME" echo "----------------------------------------------------" -# 3. Detecção de Sistema e Instalação +# 2. Detecção e Instalação if [ -f /etc/debian_version ]; then - echo "[INFO] Sistema detectado: Debian/Ubuntu" - # Adicionando repositório oficial Zabbix 6.4 - wget -q https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb - dpkg -i zabbix-release_latest+debian12_all.deb > /dev/null 2>&1 + 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 > /dev/null 2>&1 + apt-get install zabbix-agent2 -y elif [ -f /etc/redhat-release ]; then - echo "[INFO] Sistema detectado: RHEL/CentOS/Rocky" - # Adicionando repositório oficial Zabbix 6.4 para RHEL 9 (funciona em Alma/Rocky) - 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 - dnf clean all > /dev/null 2>&1 - dnf install zabbix-agent2 -y > /dev/null 2>&1 + 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] Sistema operacional não suportado." + echo "[ERRO] Distribuição não suportada automaticamente." exit 1 fi -# 4. Verificação e Correção do Arquivo de Configuração -# Pequena pausa para garantir que o sistema de arquivos liberou o arquivo após o install -sleep 2 - -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) +# 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" - if [ -z "$FOUND_CONFIG" ]; then - echo "[ERRO] Não foi possível encontrar o arquivo de configuração do Zabbix." - exit 1 - else - CONFIG_FILE=$FOUND_CONFIG + # 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 -fi -# 5. Edição do Arquivo de Configuração -echo "[INFO] Configurando arquivo: $CONFIG_FILE" -cp "$CONFIG_FILE" "$CONFIG_FILE.bak" - -# Limpa configurações anteriores e define os novos servidores/hostname -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" - -# 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 "----------------------------------------------------" \ No newline at end of file + 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 \ No newline at end of file