diff --git a/zabbix-agent-veloo.sh b/zabbix-agent-veloo.sh index 328eebc..fa09865 100755 --- a/zabbix-agent-veloo.sh +++ b/zabbix-agent-veloo.sh @@ -1,50 +1,72 @@ #!/bin/bash -# 1. Silenciar avisos e preparar ambiente +# 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 "Detectando sistema operacional..." +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 - # --- Lógica para Debian / Ubuntu --- - echo "Sistema detectado: Debian/Ubuntu" + 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 - # --- Lógica para RHEL / CentOS / Rocky / AlmaLinux --- - echo "Sistema detectado: RHEL/CentOS" + 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 por este script automático." + echo "[ERRO] Sistema operacional não suportado." exit 1 fi -# 2. Configuração Comum do arquivo zabbix_agent2.conf -if [ -f "$CONFIG_FILE" ]; then - echo "Configurando agente para o host: $VM_HOSTNAME" +# 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) - # Backup da config original - cp $CONFIG_FILE "$CONFIG_FILE.bak" - - # Ajusta os parâmetros - sed -i "s|^Server=127.0.0.1|Server=$ZABBIX_SERVERS|" $CONFIG_FILE - sed -i "s|^ServerActive=127.0.0.1|ServerActive=$ZABBIX_SERVERS|" $CONFIG_FILE - sed -i "s|^Hostname=Zabbix server|Hostname=$VM_HOSTNAME|" $CONFIG_FILE - - # 3. Reiniciar e Habilitar o serviço - systemctl restart zabbix-agent2 - systemctl enable zabbix-agent2 - echo "Sucesso: Zabbix Agent 2 configurado e ativo." -else - echo "Erro: Arquivo de configuração não encontrado em $CONFIG_FILE" - exit 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 "----------------------------------------------------" \ No newline at end of file