zabbix. binlog слишком много весит

Linux admin zabbix

Обсуждение тут

Что делать, если binlog слишком большой

1️⃣ Посмотреть, включён ли binlog и сколько занимает

mysql -e "SHOW VARIABLES LIKE 'log_bin';"
mysql -e "SHOW BINARY LOGS;"

2️⃣ Удалить старые binlog-и (БЕЗ перезапуска MySQL)

Например, удалить все binlog-и старше определённого:

mysql -e "PURGE BINARY LOGS TO 'mysql-bin.000150';"

Или удалить старее 7 дней:

mysql -e "PURGE BINARY LOGS BEFORE NOW() - INTERVAL 7 DAY;"

⚠️ Важно: если используется репликация — убедись, что slave прочитал эти логи.


3️⃣ Ограничить автоматическое хранение binlog

Открыть /etc/mysql/my.cnf или /etc/my.cnf и добавить, например:

expire_logs_days = 7
max_binlog_size = 100M

Для новых MySQL (>= 8.0.21) параметр другой:

binlog_expire_logs_seconds = 604800   # 7 дней

Перезапуск:

systemctl restart mysql

4️⃣ Если binlog вообще не нужен — можно отключить

Если у тебя нет репликации и не нужен point-in-time recovery, можно отключить:

В my.cnf:

log_bin = OFF

или полностью убрать блок:

log-bin=mysql-bin
server-id=1

И затем:

systemctl restart mysql

5️⃣ Zabbix может сильно нагружать MySQL

Если много записей, стоит:

✔ Уменьшить retention (историю)

В Zabbix frontend → Administration → Housekeeping:

Например:

  • History storage: 7 дней
  • Trends: 90 дней
  • Events: 30 дней