如何将旧的访问日志转发到新的 syslog 目的地(redhat)?

如何将旧的访问日志转发到新的 syslog 目的地(redhat)?

我刚刚设置了一个 syslog 转发器,但如何转发较旧的历史日志(如 access_log)?是否可以重播日志文件以便它们发送历史条目?

答案1

logger 命令有一个‘-f’选项,允许您指定文件名。‘-n’允许您指定将其发送到的远程服务器。

答案2

您可以通过 将任何文本文件传输到 syslog logger。这将遵循您在 中指定的任何传输方法syslog.conf,因此请确保在执行此操作之前,您的 syslog.conf 文件列出了 syslog 服务器。

cat access_log | logger -t access_log_old

这将获取 access_log,逐行读取,并将整行发送到带有“access_log_old”标签的系统日志服务器。一些注意事项:

  • 每行都会在 access_log 的开头包含日期字段,这可能不是您想要的。您可以使用sedawk从每行中删除日期字段。类似这样的操作会起作用:

    cat access_log | sed 's/MATCH//g' | logger -t access_log
    
  • 请注意,系统日志中的事件时间将是收到事件的时间,而不是日志中的事件的时间。

相关内容