Ad Widget

Collapse

Automação de atualização de proxy

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • marcos.moura
    Junior Member
    • May 2026
    • 7

    #1

    Automação de atualização de proxy

    Olá comunidade, estou compartilhando mais um conteúdo. Neste caso mostro como realizar automação de atualização de proxy remotamente via console do Zabbix com Scripts.


    Neste cenário, executamos o script no host com agente v2 do servidor do proxy remoto e o script detecta o sistema operacional e executa o processo de atualização.

    Importante: Valide em homologação e confirme se o SO do proxy é compatível com o Script, neste cenário deixei compatível com as distros que mais utilizo. Aprecio a melhoria deste script caso queiram melhorá-lo.



    Click image for larger version

Name:	image.png
Views:	3
Size:	20.3 KB
ID:	513913

    #!/bin/bash

    DATA=$(date +%Y%m%d)
    BACKUP_DIR="/tmp/bkp-zabbix"
    mkdir -p "$BACKUP_DIR"

    # Detectar o sistema operacional
    if [ -f /etc/os-release ]; then
    . /etc/os-release
    OS=$ID
    else
    echo "Sistema operacional não identificado."
    exit 1
    fi

    echo "Sistema operacional detectado: $OS"

    # Função para backup de arquivos
    backup_config() {
    local file_path=$1
    local name=$(basename "$file_path")
    if [ -f "$file_path" ]; then
    cp "$file_path" "$BACKUP_DIR/${name}_$DATA"
    echo "Backup de $file_path realizado."
    else
    echo "Arquivo $file_path não encontrado."
    fi
    }

    # Identificar e fazer backup do agente Zabbix
    if systemctl list-units --type=service | grep -q zabbix-agent2; then
    AGENT_CONF="/etc/zabbix/zabbix_agent2.conf"
    AGENT_SERVICE="zabbix-agent2"
    elif systemctl list-units --type=service | grep -q zabbix-agent; then
    AGENT_CONF="/etc/zabbix/zabbix_agentd.conf"
    AGENT_SERVICE="zabbix-agent"
    else
    echo "Agente Zabbix não encontrado."
    AGENT_CONF=""
    AGENT_SERVICE=""
    fi

    [ -n "$AGENT_CONF" ] && backup_config "$AGENT_CONF"

    # Identificar e fazer backup do proxy Zabbix
    PROXY_CONF=$(find /etc/zabbix -name "zabbix_proxy.conf" 2>/dev/null | head -n 1)
    if [ -n "$PROXY_CONF" ]; then
    backup_config "$PROXY_CONF"
    PROXY_SERVICE="zabbix-proxy"
    else
    echo "Arquivo de configuração do proxy não encontrado."
    PROXY_SERVICE=""
    fi

    # Atualizar pacotes (sem upgrade de versão principal)
    echo "Atualizando pacotes..."
    case "$OS" in
    ubuntu|debian)
    apt update
    apt install --only-upgrade zabbix-agent zabbix-agent2 zabbix-proxy -y
    ;;
    centos|rhel|rocky|almalinux)
    yum update -y zabbix-agent zabbix-agent2 zabbix-proxy
    ;;
    *)
    echo "Sistema operacional não suportado para atualização automática."
    ;;
    esac

    # Reiniciar serviços
    [ -n "$AGENT_SERVICE" ] && systemctl restart "$AGENT_SERVICE"
    [ -n "$PROXY_SERVICE" ] && systemctl restart "$PROXY_SERVICE"

    # Verificar status dos serviços
    [ -n "$AGENT_SERVICE" ] && systemctl status "$AGENT_SERVICE" --no-pager
    [ -n "$PROXY_SERVICE" ] && systemctl status "$PROXY_SERVICE" --no-pager

    # Verificar logs de erro de comunicação com o Zabbix Server
    echo "Verificando logs de erro de comunicação..."
    grep -i "cannot connect to" /var/log/zabbix/*log | tail -n 10​
Working...