【问题标题】:Adding year in the syslog message (linux)在系统日志消息中添加年份(linux)
【发布时间】:2011-07-01 05:42:07
【问题描述】:


我需要在 syslog 守护进程生成的日志消息中记录年份。特别是在 /var/log/secure 文件中。有可能吗?

这里是正常系统日志消息的示例:

Feb 16 04:06:58 HOST sshd[28573]: Accepted password for USER from SOURCE port 7269 ssh2

我需要类似的东西:

Feb 16 2011 04:06:58 HOST sshd[28573]: Accepted password for USER from SOURCE port 7269 ssh2

提前致谢。

【问题讨论】:

  • 您是要操作现有的日志文件还是直接提取数据?
  • 我不想操作文件。我希望 syslog 用剩余的日期/时间记录年份。
  • 您使用哪个 syslog 守护进程?
  • 系统日志“syslog”,而不是 syslog-ng 或 rsyslog。我无法在这些机器上安装其他守护进程:(
  • 这真是白痴!如果您正在处理日志,则必须根据文件时间戳进行 hack,这样事情就不会在 12 月 -> 1 月的过渡和其他情况下中断。

标签: linux logging syslog


【解决方案1】:

如果您的系统日志遵守 RFC 3164(BSD 系统日志协议),那么您不能将其配置为记录年份。除非您有一个遵循 RFC 5424(rsyslog 或 syslog-ng)的现代 syslog 守护程序,否则您不能这样做。

【讨论】:

    【解决方案2】:

    如果你使用 rsyslog,这很容易。参考以下:

    1. 修改 /etc/rsyslog.conf 如下:

      ...
      authpriv.*     /var/log/secure;RSYSLOG_FileFormat
      ...
      
    2. 然后要求 rsyslog 守护进程重新加载配置:

      $ kill -HUP <pid of rsyslog daemon>
      

    更多参考:

    【讨论】:

    • 这太冗长了;如何将“11 月 30 日 HH:MM:SS”更改为“2013 年 11 月 30 日 HH:MM:SS”。
    【解决方案3】:

    syslog-ng 有 ts_format() 选项来指定文件的默认时间戳格式。默认设置为iso格式,包含年份。

    您还可以使用 template() 选项配置文件格式。

    【讨论】:

      【解决方案4】:

      如果您无法更改系统本身的 syslog,也许您可​​以设置 syslog 以将其发送到具有更好 syslog 守护进程的远程系统?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多