#!/bin/bash # 1. Silenciar erros de locale e definir 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 "----------------------------------------------------" # 3. Detecção de Sistema 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 apt-get update -y > /dev/null 2>&1 apt-get install zabbix-agent2 -y > /dev/null 2>&1 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 else echo "[ERRO] Sistema operacional não suportado." 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) 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 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 "----------------------------------------------------"