templates-zabbix-itguys/deploy_package/extras/db_maintenance.sh

37 lines
998 B
Bash

#!/bin/bash
# Zabbix DB Maintenance Script
# Objetivo: Manter tabelas de configuração e eventos rápidas
# Requer: sudo e acesso ao usuário postgres
LOG_FILE="/var/log/zabbix/db_maintenance.log"
DB_NAME="zabbix"
echo "[$(date)] Iniciando manutenção do banco Zabbix..." >> $LOG_FILE
# Lista de tabelas críticas para o frontend e cache
TABLES=(
"items"
"triggers"
"functions"
"events"
"problem"
"sessions"
"auditlog"
"trends"
"trends_uint"
)
for TABLE in "${TABLES[@]}"; do
echo " -> Otimizando tabela: $TABLE" >> $LOG_FILE
# Usando vacuumdb para simplicidade (parte do client postgresql)
# -z = analyze, -v = verbose, -t = table
if sudo -u postgres vacuumdb -d $DB_NAME -z -t $TABLE >> $LOG_FILE 2>&1; then
echo " OK" >> $LOG_FILE
else
echo " ERRO" >> $LOG_FILE
fi
done
echo "[$(date)] Manutenção concluída." >> $LOG_FILE
echo "---------------------------------------------------" >> $LOG_FILE