Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第 23 章 查看和管理日志文件

日志文件是包含有关系统的消息的文件,包括内核、服务及其上运行的应用。不同信息有不同的日志文件。例如,有默认的系统日志文件、仅用于安全消息的日志文件,以及用于 cron 任务的日志文件。

当尝试对系统问题进行故障排除(如尝试加载内核驱动程序或查找未授权登录尝试系统时)时,日志文件非常有用。本章讨论查找日志文件的位置、如何查看日志文件以及在日志文件中查找什么内容。

有些日志文件由名为 rsyslogd 的守护进程控制。rsyslogd 守护进程是 sysklogd 的增强替代品,提供扩展过滤、加密保护消息转发、各种配置选项、输入和输出模块,支持通过 TCPUDP 协议传输。请注意,r syslogd 与 sysklogd 兼容。

日志文件也可以由 journald 守护进程( systemd 的一个组件)进行管理。journald 守护进程捕获 Syslog 消息、内核日志消息、初始 RAM 磁盘和早期启动消息,以及写入到所有服务的标准输出和标准错误输出的消息,对其进行索引,并使其可供用户使用。原生日志文件格式是结构化、索引化的二进制文件,改进了搜索速度和速度,还存储了时间戳或用户 ID 等元数据信息。默认情况下,journald 生成的日志文件不是永久的,日志文件仅存储在内存中或 /run/log/journal/ 目录中的小型 ring-buffer 中。记录的数据量取决于可用内存,当您达到容量限制时,会删除最旧的条目。但是,这个设置可以被更改 - 请参阅 第 23.10.5 节 “启用持久性存储”。有关日志的详情请参考 第 23.10 节 “使用日志”

默认情况下,这两个日志记录工具在您的系统上共存。journald 守护进程是故障排除的主要工具。它还提供了创建结构化日志消息所需的其他数据。journald 获取的数据将转发到 /run/systemd/journal/syslog 套接字,供 rsyslogd 用于进一步处理数据。但是,r syslog 默认通过 imjournal 输入模块进行实际集成,从而避免上述套接字。您还可以使用 a omjournal 模块,以相反的方向将数据从 rsyslogd 传输到 journald。如需更多信息,请参阅 第 23.7 节 “Rsyslog 和日志的交互”。该集成支持以一致的格式维护基于文本的日志,以确保与依赖于 rsyslogd 的潜在应用程序或配置兼容。另外,您还可以以结构化格式维护 rsyslog 信息(请参阅 第 23.8 节 “使用 Rsyslog 的结构化日志记录”)。

23.1. 查找日志文件

rsyslogd 维护的日志文件列表可在 /etc/rsyslog.conf 配置文件中找到。大多数日志文件都位于 /var/log/ 目录中。httpdsamba 等一些应用在其日志文件中有一个 /var/log/ 中的目录。

您可以在 /var/log/ 目录中看到多个文件,其编号位于 /var/log/ 目录中(例如: cron-20100906)。这些数据表示已添加到轮转的日志文件中的时间戳。日志文件会被轮转,使其文件大小不会变得太大。logrotate 软件包包含一个 cron 任务,它根据 /etc/logrotate.conf 配置文件和 /etc/logrotate.d/ 目录中的配置文件自动轮转日志文件。