(Linux)使用 logrotate 和 rsyslog 组织 /var/log,而不会破坏重要系统

(Linux)使用 logrotate 和 rsyslog 组织 /var/log,而不会破坏重要系统

由于这是在征求意见,所以很可能会引发要求关闭的呼声,但我不知道如何或在哪里以更合适的方式提出问题。如果冒犯了您,请提前致歉 - 这不是故意的,而且这是一个实际的问题,即“如果我这样做,我会破坏什么,这样做值得吗?”

我讨厌 /var/log 目录变得杂乱无章;里面有日志文件、旧日志文件,还有包含这两个文件的目录。我正在考虑使用 logrotate 和 rsyslogd 来确保目录看起来像这样:

chrony
mail
cron
messages

所有这些都是目录。每个目录都包含一个文件和一个目录:

chrony.log
history

其中logrotate用于将旧日志移动到历史目录中,当前日志是唯一的文件在每个目录中。我认为这将使读取目录、查找相关日志文件变得更容易,而且更整洁。

我怀疑某些日志不容易移动 - “lastlog” 应该在 /var/log 中吗?如果我这样做会严重破坏任何东西吗?

(我倾向于认为一般来说目录应该是叶节点或分支,所以我不喜欢有 /etc/httpd.conf 和 /etc/httpd.conf.d - 为什么不只是 /etc/httpd.conf.d 包含 base_config 和其他文件)。

我想知道,这一切是否因为 splunk 而变得毫无意义——或者因为其他离线日志存储/转发而变得毫无意义?

答案1

是的,日志文件和配置文件很乱。这就是每个软件项目都会发明自己的文件的原因。然后,固执己见的系统管理员将它们打包到 Linux 发行版中,而进行非特权日志记录有时需要具有特殊权限的目录。

我不会列举您必须任意更改以重构 /var/log 的所有内容,但这里有一些类别:

  • 配置文件记录在那里,包括logrotate。
  • 在路径中编译。我不知道 /var/log/lastlog 在身份验证堆栈中的确切配置位置。
  • 安全构建包括文件权限和 SELinux。在 CentOS 上,有些东西将 logrotate 标记为 lastlog_t。
  • 发行版与 Linux FHS 之间的差异的文档。仅仅因为 FHS 说 /var/log/messages 是 syslog 文件并不意味着这一点,但它是有记录的先例。

随心所欲。就我个人而言,如果我可以递归地 grep 文件,我不会去弄乱它。或者搜索 systemd 日志。或者更好的是,将日志转发到中央搜索引擎。

相关内容