37 lines
998 B
Bash
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
|