MariaDB Audit Plugin 将日志保存到 syslog

来源:互联网 发布:python 查看变量字节 编辑:程序博客网 时间:2024/05/21 17:06

Syslog 使用广泛,对日志进行独立存储。而且有很多的工具可对 syslog 数据进行聚合、监控、查询和分析。Syslog 数据可以当成是一个中央资料库。

你也可以在 MariaDB 中将日志写到 Syslog 中,步骤很简单:

首先下载 MariaDB 的 audit 插件,下载地址:

http://www.skysql.com/downloads/mariadb-audit-plugin-beta

然后将 server_audit.so 文件拷贝到你的 MySQL/MariaDB 下的 lib/plugin 目录,并通过如下命令激活该插件:

view source
print?
1MariaDB [(none)]> INSTALL PLUGIN server_audit SONAME'server_audit.so';
系统默认的日志是写到文件,我们需要改为 Syslog:
view source
print?
1MariaDB [test]> SETGLOBAL server_audit_output_type=SYSLOG;
2MariaDB [test]> SETGLOBAL server_audit_events='CONNECT,QUERY';
3MariaDB [test]> SETGLOBAL server_audit_logging=on;
相关的配置项如下:
view source
print?
01MariaDB [test]> show variables like '%audit%';
02+-------------------------------------+-----------------------+
03| Variable_name                       | Value                 |
04+-------------------------------------+-----------------------+
05| server_audit_events                 |CONNECT,QUERY         |
06| server_audit_excl_users |           |                       |
07| server_audit_file_path              | server_audit.log      |
08| server_audit_file_rotate_now        |OFF                   |
09| server_audit_file_rotate_size       | 1000000               |
10| server_audit_file_rotations         | 9                     |
11| server_audit_incl_users             |                       |
12| server_audit_logging                |ON                    |
13| server_audit_mode                   | 0                     |
14| server_audit_output_type            | syslog                |
15| server_audit_syslog_facility        | LOG_USER              |
16| server_audit_syslog_ident           | mysql-server_auditing |
17| server_audit_syslog_info            |                       |
18| server_audit_syslog_priority        | LOG_INFO              |
19+-------------------------------------+-----------------------+
2014 rowsin set (0.00 sec)
运行状态信息:
view source
print?
01MariaDB [test]> show status like'%audit%';
02+------------------------------ +--------------+
03| Variable_name                 | Value        |
04+----------------------------- -+--------------+
05| server_audit_active           | ON           |
06| server_audit_current_log      | [SYSLOG]     |
07| server_audit_last_error       |              |
08| server_audit_writes_failed    | 0            |
09+-------------------------------+--------------+
104 rowsin set (0.00 sec)
确保 rsyslog 在运行:
view source
print?
1[root@centos1 log]# service rsyslog restart
2Shutting down system logger: [ OK ]
3Starting system logger: [ OK ]
现在所有连接和查询 MariaDB 的动作都会写到 syslog 日志里:
view source
print?
1[root@centos1 log]# tail -f /var/log/messages
2Sep 21 00:07:07 centos1 mysql-server_auditing: centos1.localdomain,root,localhost,1,10,QUERY,,'set global server_audit_logging=on',0
3Sep 21 00:07:11 centos1 mysql-server_auditing: centos1.localdomain,root,localhost,1,11,QUERY,,'show status like \'%audit%\'',0
4Sep 21 00:07:21 centos1 mysql-server_auditing: centos1.localdomain,root,localhost,1,12,QUERY,,'show variables like \'%audit%\'',0
5Sep 21 00:10:06 centos1 mysql-server_auditing: centos1.localdomain,root,localhost,1,13,QUERY,,'set global server_audit_events=\'CONNECT,QUERY\'',0
6Sep 21 00:13:09 centos1 mysql-server_auditing: centos1.localdomain,root,localhost,1,14,QUERY,,'SELECT DATABASE()',0
7Sep 21 00:13:09 centos1 mysql-server_auditing: centos1.localdomain,root,localhost,1,16,QUERY,test,'show databases',0
8Sep 21 00:13:09 centos1 mysql-server_auditing: centos1.localdomain,root,localhost,1,17,QUERY,test,'show tables',0
9Sep 21 00:13:14 centos1 mysql-server_auditing: centos1.localdomain,root,localhost,1,18,QUERY,test,'show tables',0

日志写到 /var/log/messages 文件是由 /etc/rsyslog.conf 进行配置的:

view source
print?
1*.info;mail.none;authpriv.none;cron.none /var/log/messages
如果你想要将日志写到不同的文件,可以:
view source
print?
1if $programname == 'mysql-server_auditing' then /var/log/mariadbaudit1
使用 MariaDB Audit Plugin 对安全和系统管理来说是一个好的选择。

英文原文:http://serge.frezefond.com/2013/09/mariadb-audit-plugin-logging-to-syslog/

原创粉丝点击