Syslog-ng 与 mysql 目标 - 增加日志保留

Syslog-ng 与 mysql 目标 - 增加日志保留

我有这个syslog-ng 3.1.3写入数据库的程序,一切运行良好,但它似乎只保留了 30 天的日志(最后一张表是logs20150826)我该如何增加这个时间?我在文档中没有看到任何明确的说法。

logrotate 目录中有一些引用,但似乎没有任何内容可以控制 mysql 目标,/etc/syslog-ng/syslog-ng.conf因此这种 30 天的保留期一定是某种默认值。

答案1

检查您是否安装了 php-syslog-ng,syslog-ng 不负责这一点。

日志轮换

日志轮换应该是使用 php-syslog-ng 的大多数安装的一部分。使用日志轮换比删除主表中的行更好,因为删除行会导致性能问题。将旧日志轮换出主表通常也会带来更好的性能,因为包含旧日志的表是静态的并且可以进行优化。脚本目录中有一个 logrotate.php 脚本。您可能需要编辑它以输入正确的 php-syslog-ng 安装路径,但之后它应该可以使用了。如果您在 config.php 文件中启用合并表,则将在脚本末尾创建所有日志表的合并表。合并表将允许您搜索所有表,而不必一次搜索一个表。合并表确实会对搜索表单的性能造成轻微影响,因为字段是基于所有表而不是某个特定表填充的。

您还可以在 config.php 中指定启用 LOGRETENTION 设置。如果启用该设置,则每次运行 logrotate.php 时,都会删除早于该设置的日志。

如果您决定使用 logrotate.php 脚本,那么只需将其添加到您的 crontab 并按照您想要的频率运行它(目前最多每天一次)。

来源http://www.debianhelp.co.uk/syslog-ng.htm

相关内容