templates-zabbix-itguys/deploy_package/install.sh

85 lines
2.8 KiB
Bash

#!/bin/bash
# Script de Instalação do Pacote de Otimização Zabbix 7.0 LTS
# Executar como ROOT
if [ "$EUID" -ne 0 ]; then
echo "❌ Por favor, execute como root (sudo ./install.sh)"
exit 1
fi
echo "======================================================="
echo "🚀 Iniciando Otimização do Zabbix 7.0 LTS"
echo "======================================================="
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/root/zabbix_backup_$TIMESTAMP"
echo "📂 Criando diretório de backup: $BACKUP_DIR"
mkdir -p "$BACKUP_DIR"
# Função para backup e cópia
install_config() {
SRC=$1
DEST=$2
if [ -f "$DEST" ]; then
echo " ↪ Backup de $DEST..."
cp "$DEST" "$BACKUP_DIR/"
fi
echo " ↪ Instalando $SRC em $DEST..."
cp "$SRC" "$DEST"
}
# 1. Zabbix Server
echo "🔧 Configurando Zabbix Server..."
install_config "zabbix_server.conf" "/etc/zabbix/zabbix_server.conf"
# 2. PostgreSQL
echo "🔧 Configurando PostgreSQL 16..."
# Ajuste o caminho se a versão for diferente
if [ -d "/etc/postgresql/16/main" ]; then
install_config "postgresql.conf" "/etc/postgresql/16/main/postgresql.conf"
else
echo "⚠️ Diretório PostgreSQL 16 não encontrado. Pulando config automática."
echo " Arquivo disponível em: $(pwd)/postgresql.conf"
fi
# 3. Nginx
echo "🔧 Configurando Nginx..."
install_config "nginx.conf" "/etc/nginx/nginx.conf"
install_config "zabbix.conf" "/etc/nginx/conf.d/zabbix.conf"
# Remover default se existir
[ -f "/etc/nginx/sites-enabled/default" ] && rm "/etc/nginx/sites-enabled/default"
# 4. PHP
echo "🔧 Configurando PHP 8.3..."
# Ajuste o caminho se a versão for diferente
if [ -d "/etc/php/8.3/fpm" ]; then
install_config "99-zabbix.ini" "/etc/php/8.3/fpm/conf.d/99-zabbix.ini"
install_config "zabbix_fpm.conf" "/etc/php/8.3/fpm/pool.d/zabbix.conf"
else
echo "⚠️ Diretório PHP 8.3 não encontrado. Pulando config automática."
fi
# 5. Redis
echo "🔧 Configurando Redis..."
install_config "redis.conf" "/etc/redis/redis.conf"
chown redis:redis /etc/redis/redis.conf
chmod 640 /etc/redis/redis.conf
# 6. Database Setup
echo "🗄️ ATENÇÃO: Configuração de Banco de Dados"
echo " Para aplicar as otimizações TimescaleDB, execute manualmente:"
echo " sudo -u postgres psql -d zabbix -f timescaledb_setup.sql"
# Finalização
echo "======================================================="
echo "✅ Arquivos copiados com sucesso!"
echo "🔄 Lembre-se de ajustar as SENHAS nos arquivos:"
echo " - /etc/zabbix/zabbix_server.conf (DBPassword)"
echo " - /etc/redis/redis.conf (requirepass)"
echo " - /etc/php/8.3/fpm/conf.d/99-zabbix.ini (session.save_path)"
echo ""
echo "Para aplicar as alterações, reinicie os serviços:"
echo "systemctl restart postgresql redis-server php8.3-fpm nginx zabbix-server"
echo "======================================================="