温馨提示×

Debian MariaDB日志管理如何操作

小樊
54
2025-08-16 06:31:29
栏目: 云计算

Debian下MariaDB日志管理主要涉及配置、查看、轮转及监控,操作如下:

一、配置日志类型

通过修改配置文件/etc/mysql/mariadb.conf.d/50-server.cnf设置日志路径及格式:

  • 错误日志:记录启动、运行错误
    [mysqld]
    log_error = /var/log/mysql/error.log
    
  • 查询日志:记录所有SQL语句(默认关闭,避免磁盘占用)
    general_log = 1
    general_log_file = /var/log/mysql/general.log
    log_output = FILE  # 设为FILE存文件,TABLE存数据库(默认)
    
  • 慢查询日志:记录执行时间超过阈值的查询
    slow_query_log = 1
    slow_query_log_file = /var/log/mysql/slow.log
    long_query_time = 2  # 阈值(秒)
    log_queries_not_using_indexes = 1  # 记录未使用索引的查询
    
  • 二进制日志:记录数据变更,用于主从复制和恢复
    log_bin = /var/log/mysql/mysql-bin.log
    binlog_format = ROW  # 推荐ROW格式(数据更完整)
    expire_logs_days = 7  # 自动过期天数
    

二、查看日志

  • 命令行查看
    # 实时查看错误日志
    tail -f /var/log/mysql/error.log
    # 查看慢查询日志(按执行时间排序)
    mysqldumpslow -s t /var/log/mysql/slow.log
    # 查看二进制日志内容(指定时间范围)
    mysqlbinlog --start-datetime="2025-01-01 00:00:00" /var/log/mysql/mysql-bin.000001
    
  • 图形化工具
    使用gnome-system-log(需安装)或Loggly等工具查看/var/log/mysql/目录下的日志文件。

三、日志轮转与清理

  • 自动轮转(推荐)
    创建/etc/logrotate.d/mariadb文件,内容如下:
    /var/log/mysql/*.log {
        daily
        rotate 7
        compress
        missingok
        notifempty
        create 640 mysql mysql
        postrotate
            mysqladmin flush-logs  # 轮转后刷新日志
        endscript
    }
    
    执行logrotate -vf /etc/logrotate.d/mariadb测试配置。
  • 手动清理
    删除超过30天的旧日志:
    find /var/log/mysql/ -type f -name "*.log" -mtime +30 -exec rm {} \;
    

四、监控与分析

  • 实时监控
    使用journalctl查看系统级日志(需MariaDB以systemd服务运行):
    journalctl -u mariadb --since "2025-01-01" --until "2025-01-31"
    
  • 慢查询分析
    通过pt-query-digest(Percona工具)或mysqldumpslow分析慢查询日志,定位性能瓶颈。

注意事项

  • 二进制日志建议与数据文件分开放置,避免单点故障。
  • 生产环境中关闭通用日志(general_log=0),仅开启错误日志和慢查询日志以减少磁盘占用。
  • 配置修改后需重启MariaDB服务:systemctl restart mariadb

参考来源:

0