温馨提示×

Linux MariaDB日志管理策略

小樊
44
2025-08-31 16:12:21
栏目: 云计算

Linux MariaDB日志管理策略

一、日志类型与配置

  1. 错误日志
    • 记录启动、运行错误及警告,配置路径:log_error=/var/log/mysql/error.log,可通过log_error_verbosity设置详细程度。
  2. 通用查询日志
    • 记录所有SQL语句,用于调试,配置:general_log=1general_log_file=/var/log/mysql/general.log,支持输出到文件或表。
  3. 慢查询日志
    • 记录执行时间超过long_query_time(默认10秒)的查询,配置:slow_query_log=1slow_query_log_file=/var/log/mysql/slow.log,可启用log_queries_not_using_indexes记录未用索引的查询。
  4. 二进制日志(Binlog)
    • 记录数据变更,用于复制和恢复,配置:log_bin=/var/log/mysql/mysql-bin.logbinlog_format=ROW(推荐),expire_logs_days设置过期天数。

二、日志轮转与清理

  • 自动轮转:使用logrotate工具,配置文件/etc/logrotate.d/mysql,示例:
    /var/log/mysql/*.log { daily rotate 7 compress missingok create 640 mysql mysql postrotate mysqladmin flush-logs endscript } 
  • 手动清理
    • 删除过期日志:find /var/log/mysql/ -type f -name "*.log" -mtime +7 -exec rm {} \;
    • 二进制日志手动清理:PURGE BINARY LOGS BEFORE '2025-01-01 00:00:00'PURGE BINARY LOGS TO 'mysql-bin.000100'

三、监控与分析

  • 实时监控tail -f /var/log/mysql/error.log查看错误日志,mysqlbinlog查看二进制日志。
  • 分析工具
    • 慢查询分析:mysqldumpslowpt-query-digest
    • 二进制日志分析:mysqlbinlog --start-datetime="2025-01-01" --stop-datetime="2025-01-31" mysql-bin.000100

四、安全与优化建议

  • 权限管理:确保日志文件权限为640,属主为mysql用户。
  • 生产环境配置
    • 错误日志和慢查询日志保留7-30天,二进制日志根据复制需求设置(通常7-14天)。
    • 禁用不必要的日志(如开发环境可关闭通用日志)以减少磁盘占用。

参考来源

0