共计 3383 个字符,预计需要花费 9 分钟才能阅读完成。
这篇文章给大家介绍 Linux 服务器管理员 Journald 的初级指南是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
Journald 是为 Linux 服务器打造的新系统日志方式,它标志着文本日志文件的终结。现在日志信息写入到二进制文件,使用 journalctl 阅读,要获得这些信息,Linux 管理员将需要一些实践。
Red Hat Enterprise Linux 7 与 SUSE Linux Enterprise Server 12 这些下一代的 Linux 发行版本使用 systemd 管理服务。journal 是 systemd 的一个组件,由 journald 处理。它捕获系统日志信息、内核日志信息,以及来自原始 RAM 磁盘的信息,早期启动信息以及所有服务中写入 STDOUT 和 STDERR 数据流的信息。Journald 快速改变着服务器如何处理日志信息与管理员如何访问的方式。
对日志文件说再见
在 systemd 与 journald 世界中没有日志文件的位置。journald 日志写入二进制文件,在红帽系统上,位于 /run/log/journal 中。你不应该也不能使用页面打开文件。反之,使用 journalctl 查看内容。该命令显示所有登录到服务器的信息(见表 1)。
表 1:journalctl 输出表默认格式的样子。
Apr 04 09:48:59 localhost.localdomain chronyd[768]: Can t synchronise: no majority Apr 04 09:50:01 localhost.localdomain systemd[1]: Starting Session 3 of user root. Apr 04 09:50:01 localhost.localdomain systemd[1]: Started Session 3 of user root. Apr 04 09:50:01 localhost.localdomain CROND[3699]: (root) CMD (/usr/lib64/sa/sa1 1 1) Apr 04 09:50:03 localhost.localdomain chronyd[768]: Selected source 46.249.47.127 Apr 04 09:50:03 localhost.localdomain chronyd[768]: System clock wrong by -2.417074 seconds, adjustment started Apr 04 09:50:36 localhost.localdomain pulseaudio[3163]: [alsa-sink] alsa-sink.c: ALSA woke us up to write new data to the device, but there Apr 04 09:50:36 localhost.localdomain pulseaudio[3163]: [alsa-sink] alsa-sink.c: Most likely this is a bug in the ALSA driver snd_ens1371 . Apr 04 09:50:36 localhost.localdomain pulseaudio[3163]: [alsa-sink] alsa-sink.c: We were woken up with POLLOUT set -- however a subsequent s Apr 04 09:51:07 localhost.localdomain chronyd[768]: Selected source 81.171.44.131 Apr 04 09:52:12 localhost.localdomain chronyd[768]: System clock wrong by 0.669116 seconds, adjustment started Apr 04 09:53:17 localhost.lo
无需担心,journalctl 有很多过滤选项。Journalctl - b 过滤在启动时产生的信息。Journalctl –since=yesterday 只显示自从昨天登录开始的信息。管理员可以从具体的天数范围搜索信息:例如,journalctl –since=2014-03-15 –until= 2014-03-17 23:59:59。使用 journalctl -u httpd since=00:00 –until=8:00 查看昨晚登录的 httpd 进程。如果管理员掌握了高级的 journald 过滤选项,分析日志文件就更加轻松。
某些情况下,journalctl 显示的默认日志信息在细节上还不够。要获得更多信息,将输出格式设置为 verbose,使用命令 journalctl -o verbose -n。
表 2:通过显示 verbose 日志信息,Linux 管理员可以从日志文件获取更多信息。
Fri 2014-04-04 10:12:32.072521 CEST [s=a52ddd97575747a18c6378d388b2b9ff;i=955;b=bc03fb52eddb41 b0bb4829ae19c1c286;m=8f1dd 5f2;t=4f633145a58d9; PRIORITY=6 _UID=0 _GID=0 _BOOT_ID=bc03fb52eddb41b0bb4829ae19c1c286 _MACHINE_ID=1fbfd90ac4fc49919fe1b63d6bcf9097 _HOSTNAME=localhost.localdomain SYSLOG_FACILITY=3 _TRANSPORT=syslog _SYSTEMD_CGROUP=/system.slice/network.service _SYSTEMD_UNIT=network.service SYSLOG_IDENTIFIER=dhclient _COMM=dhclient E=/usr/sbin/dhclient _CMDLINE=/sbin/dhclient -H localhost -1-q-lf/var/lib/dhclient/dhclient-0b5faf33-6df0-4f11-bbb9-659b5cd940e9-ens33.lease -pf /var/run/ _CAP_EFFECTIVE=0000000000203402 _SELINUX_CONTEXT=system_u:system_r:dhcpc_t:s0 SYSLOG_PID=1760 _PID=1760 MESSAGE=bound to 192.168.4.232 -- renewal in 892 seconds. _SOURCE_REALTIME_TIMESTAMP=1396599152072521
Logrotate 与远程日志
你所习惯的一些运作方式发生了变化。关闭与归档日志文件的系统 Logrotate 变得日益巨大。在 journald 上,没有必要循环日志文件。它构建的目的在于监控存储卷上的剩余空间。如果卷快满了,就删除旧有记录释放空间。要为 journald 日志设置一个 *** 尺寸,在 /etc/systemd/journal.conf 文件中修改 SystemMaxUse 参数。
远程日志又是另一回事了。如果你的数据中心有一个远程日志服务器,那就应该保留。journald 不是对集中日志服务器,如 rsyslog 或 syslog-ng do 的完全替代。Journald 没有将来自其他服务器或设备的日志文件进行替代的选项。也没有指定哪台日志服务器的日志事件可以转发的选项。如果你想要 journald 在其他地方存放日志信息,*** 做法是将信息转发给 [r]syslog[{d-ng}],在这里处理集中的日志。
关于 Linux 服务器管理员 Journald 的初级指南是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。