启用详细信息
通过使用各种配置选项或者命令行标志,许多工具和服务可以增加它们执行的日志记录量,以及从命令行运行时显示的信息量。
命令行选项通常包括 -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
journal日志持久化
默认情况下,CentOS/RHEL 7 将系统日志存储在 /run/log/journal 中,该日志存储在 tmpfs 中。
这意味着在重新启动时所有存储的信息都将丢失。
如果目录 /var/log/journal 存在,则日志将存储在那里,从而在重新启动后启用持久日志。
可以使用以下步骤启用持久日志:
- 创建目录 /var/log/journal 。
# mkdir /var/log/journal
- 设置新目录的组所有权为 systemd-journal ,权限为 2755 。
# chown root:systemd-journal /var/log/journal # chmod 2755 /var/log/journal
- 通过向 systemd-journald 发送 USR1 信号通知 systemd-journald 应该使用新位置。
重新启动也足够了。
# killall -USR1 systemd-journald