手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

使用logrotate轮替MySQL的mysql-audit审计日志

[日期:2017-10-06] 来源:Linux社区  作者:jim123 [字体: ]

最近一段时间发现在一台服务器上的MySQL的audit(http://www.linuxidc.com/Linux/2017-08/146256.htm)插件日志没有数据,刚开始以为是配置出问题就进数据库检查了一下发现没有问题,后来发现在MySQL的audit的指定文件路径下发现有轮替日志,初步分析是在使用系统的logrotate(http://www.linuxidc.com/Linux/2017-02/140261.htm)做日志轮替就去/etc/logrotate.d目录下找自定义的轮替日志,发现在做audit日志轮替时没有停止audit_json_file的日志写入,导致错于是在就修改了一下:

/data/mysqldata/mysql-audit.json {
    prerotate
        # stop mysql audit
        if test -x /usr/local/mysql/bin/mysql && \
          /usr/local/mysql/bin/mysqladmin ping &>/dev/null
        then
          /usr/local/mysql/bin/mysql -e "SET GLOBAL audit_json_file=OFF;"
        fi
    endscript
        create 0600 mysql mysql
        notifempty
        daily
        rotate 5
        missingok
        compress
    postrotate
        # just if mysqld is really running and start mysql audit
        if test -x /usr/local/mysql/bin/mysqladmin && \
          /usr/local/mysql/bin/mysqladmin ping &>/dev/null
        then
          /usr/local/mysql/bin/mysqladmin flush-logs && \
          /usr/local/mysql/bin/mysql -e "SET GLOBAL audit_json_file=ON;"
        fi
    endscript
}

在修改好后再测试一下轮替后审计日志可以正常写入。在这里不得不提的有两点:首先,在这里需要注意的是在使用MySQL的audit插件做审计时,在没有停止audit_json_file时多审计日志修改时会导致之后的日志无法写入会出错,所以在对audit_json_file日志做轮替修改时都需要SET GLOBAL audit_json_file=OFF关闭审计后再进行进行操作;其次在在你的root用户的家目录下一定要有你写好的~/.my.cnf密码文件,其中mysql和mysqladmin两个命令都需要有,这个以前有提及过,需要可以参看:http://www.linuxidc.com/Linux/2017-02/141146.htm

本文永久更新链接地址http://www.linuxidc.com/Linux/2017-10/147298.htm

linux
相关资讯       logrotate  mysql-audit 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款