eri*_*ork 13 linux logrotate syslog
假设,除了 Apache Web 服务器日志之外,我从未接触过任何操作系统上的任何类型的(专业)日志。所以日志记录,虽然我了解一些基础知识,但总的来说是一个非常新的话题。目前完全了解这个主题的投资似乎相当大,但我什至不知道,是否值得了解更多最抽象的概念。
在这种情况下,如果有人使用(教程、手册页、书籍)来了解 Logging,您会建议使用哪些资源?
普通 Linux 用户应该每天/每月阅读哪些日志?假设它们是为人类可读性而编写的,或者它们通常被其他工具评估和使用,这种假设是否正确?
对于这些日志,普通的 *nix 用户和软件开发人员应该知道什么?
如果您不希望管理具有大量事件负载的专业 Web 服务器,您需要了解什么有关日志轮换的信息?
gol*_*cks 18
[这是在 systemd 系统上广泛采用 journald 之前的几年写的,并没有涉及它。目前(晚2018)既journald和(R)系统日志,如下所述,是在发行版比如Debian使用。在其他情况下,如果您想同时使用 rsyslog,则可能必须安装 rsyslog,但与 journald 的集成很简单。]
我不会专门讨论关于 ubuntu 的日志记录,因为该主题通常是针对 linux 标准化的(并且我相信我要说的大部分或全部内容对于任何类型的 *nix 都是正确的,但不要相信我的话)。除了回答这个问题之外,我也不会说太多关于“如何阅读日志”的内容:
假设它们是为人类可读性而编写的,或者它们通常被其他工具评估和使用,这种假设是否正确?
我想这取决于应用程序,但总的来说,至少对于进入系统日志的内容(见下文),它们应该是人类可读的。“对我有意义”是另一个问题,哈哈。但是,它们的结构也可能使使用标准工具(grep、awk 等)更容易为特定目的解析它们。
首先,执行自己日志记录的应用程序和使用系统记录器的应用程序之间存在区别。默认情况下 Apache 是前者,尽管它可以配置为后者(我认为大多数人会认为这是不可取的)。自行记录日志的应用程序可以使用文件的任何位置以任何方式进行记录,因此对此没什么好说的。系统记录器通常称为syslog
.
“Syslog”实际上是一个标准,它是通过一个通常称为syslogd的守护进程实现的(d 代表守护进程!)。当前在 linux(包括 ubuntu)上使用的主要 syslog 守护进程是. Rsyslogd 可以做很多事情,但是在大多数发行版上开箱即用的配置它模拟了传统的 syslog,它将内容分类为. 您可能会在其中找到它的文档(请注意,还有一个,但这只是来自源包的通知,例如和)。如果它在那里,它是 html,但 Stack Exchange 不允许嵌入本地文件链接:rsyslogd
/var/log
/usr/share/doc/rsyslog-doc-[version]
/usr/share/doc/rsyslog-[version]
NEWS
ChangeLog
file://usr/share/doc/rsyslog-doc/index.html
Run Code Online (Sandbox Code Playgroud)
所以你可以尝试复制粘贴。如果它不存在,则它可能是未安装的单独软件包的一部分。查询您的包装系统(例如,apt-cache search rsyslog | grep doc
)。
配置在/etc/rsyslog.conf
,它有一个手册页,man rsyslog.conf
虽然手册页提供了很好的参考,但作为介绍可能不太通俗易懂。幸运的是,库存rsyslog.conf 的基本原理与传统的syslog.conf 一致,关于它的介绍和教程很多。 这个,例如; 在查看本地 rsyslog.conf 时,您想从中获得的是对设施和优先级的理解(“优先级”有时称为日志级别),因为这些是上述系统日志标准的一部分。这个标准之所以重要,是因为 rsyslog 实际上是通过内核获取它的东西,而内核实现的是标准。
关于$
rsyslog.conf 中的指令,这些是特定于 rsyslog 的,如果您安装该可选文档包,您将在rsyslog_conf_global.html
.
玩得开心……如果您对应用程序如何使用系统记录器感到好奇,请查看man logger
和man 3 syslog
。
旋转日志的规范方法是通过一个名为logrotate
(并且有一个man logrotate
)的工具。使用 logrotate 的规范方法是通过cron daemon,尽管它不必那样做(例如,如果您倾向于每天关闭桌面,则最好在 syslog启动之前在启动时关闭一次,但是,显然,在文件系统被挂载之后)。
logrotate这里有一个很好的介绍。请注意,logrotate 不仅用于 syslog 内容,它还可以用于任何文件。基本配置文件是/etc/logrotate.conf
,但由于配置有一个“包含”指令,通常大多数东西都进入目录中的单个文件/etc/logrotate.d
(这里 d 代表目录,而不是守护进程;logrotate 不是守护进程)。
使用 logrotate 时要考虑的一个重要事项是,当应用程序运行时,应用程序将如何在其日志文件“旋转”(即移动)时做出反应。WRT (r)syslogd,它只会停止写入该日志(我认为这是一个安全理由)。通常的处理方法是告诉 syslog 重新启动(并重新打开它的所有文件),这就是为什么您会postrotate
在 logrotate conf 文件中看到一个指令将 SIGHUP 发送到 syslog 守护进程。
归档时间: |
|
查看次数: |
15398 次 |
最近记录: |