Atualizar zabbix-agent-veloo.sh
This commit is contained in:
@@ -1,50 +1,72 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# 1. Silenciar avisos e preparar ambiente
|
# 1. Silenciar erros de locale e definir 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 "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
|
if [ -f /etc/debian_version ]; then
|
||||||
# --- Lógica para Debian / Ubuntu ---
|
echo "[INFO] Sistema detectado: Debian/Ubuntu"
|
||||||
echo "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
|
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
|
dpkg -i zabbix-release_latest+debian12_all.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 > /dev/null 2>&1
|
||||||
|
|
||||||
elif [ -f /etc/redhat-release ]; then
|
elif [ -f /etc/redhat-release ]; then
|
||||||
# --- Lógica para RHEL / CentOS / Rocky / AlmaLinux ---
|
echo "[INFO] Sistema detectado: RHEL/CentOS/Rocky"
|
||||||
echo "Sistema detectado: RHEL/CentOS"
|
# 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
|
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 clean all > /dev/null 2>&1
|
||||||
dnf install zabbix-agent2 -y > /dev/null 2>&1
|
dnf install zabbix-agent2 -y > /dev/null 2>&1
|
||||||
|
|
||||||
else
|
else
|
||||||
echo "Erro: Sistema operacional não suportado por este script automático."
|
echo "[ERRO] Sistema operacional não suportado."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 2. Configuração Comum do arquivo zabbix_agent2.conf
|
# 4. Verificação e Correção do Arquivo de Configuração
|
||||||
if [ -f "$CONFIG_FILE" ]; then
|
# Pequena pausa para garantir que o sistema de arquivos liberou o arquivo após o install
|
||||||
echo "Configurando agente para o host: $VM_HOSTNAME"
|
sleep 2
|
||||||
|
|
||||||
# Backup da config original
|
if [ ! -f "$CONFIG_FILE" ]; then
|
||||||
cp $CONFIG_FILE "$CONFIG_FILE.bak"
|
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)
|
||||||
|
|
||||||
# Ajusta os parâmetros
|
if [ -z "$FOUND_CONFIG" ]; then
|
||||||
sed -i "s|^Server=127.0.0.1|Server=$ZABBIX_SERVERS|" $CONFIG_FILE
|
echo "[ERRO] Não foi possível encontrar o arquivo de configuração do Zabbix."
|
||||||
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
|
exit 1
|
||||||
|
else
|
||||||
|
CONFIG_FILE=$FOUND_CONFIG
|
||||||
|
fi
|
||||||
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 "----------------------------------------------------"
|
||||||
Reference in New Issue
Block a user