启用详细信息

通过使用各种配置选项或者命令行标志,许多工具和服务可以增加它们执行的日志记录量,以及从命令行运行时显示的信息量。

命令行选项通常包括 -v,有时可以多次指定以增加详细程度,或者包括可以使用的 -debug 选项。
服务通常在其主配置文件或者 /etc/sysconfig/SERVICENAME 中具有配置选项,可用于提高其日志记录级别和/或者详细程度。
请参阅这些单独服务的文档以提高其详细程度和日志记录级别。

注意:当对 /etc/sysconfig/SERVICENAME 中的服务使用调试选项时,该选项有时也会阻止守护进程与终端断开连接。
当这样的服务使用 systemctl 启动,并且服务类型设置为 fork 时,systemctl 命令将不会返回,直到按 Ctrl+C 将服务终止。
在这些情况下,从命令行手动运行服务也是一种选择。

使用系统日志

默认情况下,较新的基于 systemd 的 linux 系统现在为系统日志使用两种日志服务:

  • systemd-journald ,它被配置为只将日志保存在内存中
  • rsyslogd ,它获取 systemd-journald(和其他人)发送给它的消息并将它们存储在磁盘上。

要查看系统日志中的消息,可以使用名为 journalctl 的工具。
如果在没有任何参数的情况下使用,它将显示系统日志的全部内容,在寻呼机中显示(默认情况下使用较少)。
可以使用选项和过滤器修改 journalctl 的输出。
选项可用于更改显示的行数、打开跟随模式、更改显示字段、指定时间范围等。
过滤器可用于修改显示哪些服务和单位信息,哪些可执行文件显示信息为等

journalctl 示例

journalctl -ef

跳转到日志的末尾( -e ),并启用跟随模式(-f )。
这将使日志在屏幕上保持打开状态,并在收到新消息时显示它们。

# journalctl -ef

journalctl _SYSTEMD_UNIT=sshd.service

这将显示 sshd.service systemd 单元生成的所有消息。

# journalctl _SYSTEMD_UNIT=sshd.service

journalctl -u sshd.service

这将显示由 sshd.service systemd 单元生成的所有消息。

# journalctl -u sshd.service

journalctl -p emerg..err

显示日志中优先级在emerg 到err 范围内的所有消息。

# journalctl -p emerg..err

如果指定了单个优先级,例如 -p err ,则显示达到并包括该级别的所有消息。

# journalctl -p err

journalctl -b -1

仅显示上次系统启动的消息。
这对于搜索有关系统崩溃的信息很有用。
这需要配置一个持久日志。

# journalctl -b -1

journalctl -从“2015-02-02 20:30:00”到“2015-03-31 12:00:00”

显示 2 月 2 日、晚上八点半到 3 月 31 日中午之间的所有消息。
这需要配置一个持久日志。

# journalctl --since "2015-02-02 20:30:00" --until "2015-03-31 12:00:00"

journalctl -o verbose

使用详细输出模式 (-o verbose )。
这将显示存储在日志中的所有字段及其字段名称和内容。
所有字段名称都可以用作 journalctl 命令行上的过滤器。

# journalctl -o verbose

有关选项和过滤器的完整列表,请参阅 journalctl(1) 手册页。

# man journalctl
如何使用 Journalctl 查看和操作 Systemd 日志
https://onitroad.com 更多教程

journal日志持久化

默认情况下,CentOS/RHEL 7 将系统日志存储在 /run/log/journal 中,该日志存储在 tmpfs 中。
这意味着在重新启动时所有存储的信息都将丢失。
如果目录 /var/log/journal 存在,则日志将存储在那里,从而在重新启动后启用持久日志。

可以使用以下步骤启用持久日志:

  1. 创建目录 /var/log/journal 。
# mkdir /var/log/journal
  1. 设置新目录的组所有权为 systemd-journal ,权限为 2755 。
# chown root:systemd-journal /var/log/journal
# chmod 2755 /var/log/journal
  1. 通过向 systemd-journald 发送 USR1 信号通知 systemd-journald 应该使用新位置。
    重新启动也足够了。
# killall -USR1 systemd-journald
日期:2020-09-17 00:14:58 来源:oir作者:oir