#!/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