我想使用 syslog 在 Ubuntu(10.04 LTS)上记录 MySQL(5.1.41)。我找到了将错误日志输出到 syslog 的信息。
[mysqld_safe]
syslog
但我想使用 syslog 来记录一般日志和慢查询日志。请告诉我如何编写配置文件?
我在参考手册中找不到如何做到这一点。
http://dev.mysql.com/doc/refman/5.1/en/log-destinations.html
我想使用 syslog 在 Ubuntu(10.04 LTS)上记录 MySQL(5.1.41)。我找到了将错误日志输出到 syslog 的信息。
[mysqld_safe]
syslog
但我想使用 syslog 来记录一般日志和慢查询日志。请告诉我如何编写配置文件?
我在参考手册中找不到如何做到这一点。
http://dev.mysql.com/doc/refman/5.1/en/log-destinations.html
这样做更简单:
cd 到 mysql 文件夹:
在 my.cnf 中告诉它:
然后,配置您的 syslog/syslog-ng 以读取 FIFO 管道并按照它的方式处理它。
在我的情况下,我通过网络将它通过管道传输到一个集中式服务器,但是只有错误日志和慢查询日志。
在您还想保留本地副本的情况下,只需将其设置为输出到表和文件,如上所述。
该机制与操作系统系统日志完全不同。
设置日志输出可以设置为 TABLE、FILE(默认)或 NONE
如果你用这个
这将导致常规日志和/或慢速日志的日志记录转到 CSV 文件。您可以将该 CSV 转换为 MyISAM,如下所示:
然后你可以让这个文件极大地增长,你将不得不每隔一段时间清理一次表。以下是清除 general_log 表并保留最近 3 天的方法:
系统日志(var/log/messages)呢?您必须自己编写脚本。首先,你要么需要这个:
如果您想收集两种格式的常规日志或
仅用于文件格式。
现在编写一个脚本来收集对 /var/log/general.log 的更改。脚本应该看起来很像这样:
每分钟运行一次此脚本。我建议像这样在每个午夜截断一般日志
试试看 !!!
在 /etc/my.cnf 中,设置它。
编辑/etc/rsyslog.conf (RHEL/CentOS) 文件,并启用模块imfile以读取/path/to/mysql/dir/mysql-general.log,然后将其发送到远程 syslog 服务器,遵守配置的时间间隔PollingInterval参数。
此部分应如下所示:
使用WorkDirectory取消注释该行
并将其配置为远程发送所有日志
或者