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输出表默认格式的样子。

  1. Apr 04 09:48:59 localhost.localdomain chronyd[768]: Can't synchronise: no majority
  2. Apr 04 09:50:01 localhost.localdomain systemd[1]: Starting Session 3 of user root.
  3. Apr 04 09:50:01 localhost.localdomain systemd[1]: Started Session 3 of user root.
  4. Apr 04 09:50:01 localhost.localdomain CROND[3699]: (root) CMD (/usr/lib64/sa/sa1 1 1)
  5. Apr 04 09:50:03 localhost.localdomain chronyd[768]: Selected source 46.249.47.127
  6. Apr 04 09:50:03 localhost.localdomain chronyd[768]: System clock wrong by -2.417074 seconds, adjustment started
  7. 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
  8. 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'.
  9. 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
  10. Apr 04 09:51:07 localhost.localdomain chronyd[768]: Selected source 81.171.44.131
  11. Apr 04 09:52:12 localhost.localdomain chronyd[768]: System clock wrong by 0.669116 seconds, adjustment started
  12. 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管理员可以从日志文件获取更多信息。

  1. Fri 2014-04-04 10:12:32.072521 CEST [s=a52ddd97575747a18c6378d388b2b9ff;i=955;b=bc03fb52eddb41
  2. b0bb4829ae19c1c286;m=8f1dd 5f2;t=4f633145a58d9;
  3. PRIORITY=6
  4. _UID=0
  5. _GID=0
  6. _BOOT_ID=bc03fb52eddb41b0bb4829ae19c1c286
  7. _MACHINE_ID=1fbfd90ac4fc49919fe1b63d6bcf9097
  8. _HOSTNAME=localhost.localdomain
  9. SYSLOG_FACILITY=3
  10. _TRANSPORT=syslog
  11. _SYSTEMD_CGROUP=/system.slice/network.service
  12. _SYSTEMD_UNIT=network.service
  13. SYSLOG_IDENTIFIER=dhclient
  14. _COMM=dhclient
  15. E=/usr/sbin/dhclient
  16. _CMDLINE=/sbin/dhclient -H localhost -1-q-lf/var/lib/dhclient/dhclient-0b5faf33-6df0-4f11-bbb9-659b5cd940e9-ens33.lease -pf /var/run/
  17. _CAP_EFFECTIVE=0000000000203402
  18. _SELINUX_CONTEXT=system_u:system_r:dhcpc_t:s0
  19. SYSLOG_PID=1760
  20. _PID=1760
  21. MESSAGE=bound to 192.168.4.232 -- renewal in 892 seconds.
  22. _SOURCE_REALTIME_TIMESTAMP=1396599152072521

Logrotate与远程日志

你所习惯的一些运作方式发生了变化。关闭与归档日志文件的系统Logrotate变得日益巨大。在journald上,没有必要循环日志文件。它构建的目的在于监控存储卷上的剩余空间。如果卷快满了,就删除旧有记录释放空间。要为journald日志设置一个最大尺寸,在/etc/systemd/journal.conf文件中修改SystemMaxUse参数。

远程日志又是另一回事了。如果你的数据中心有一个远程日志服务器,那就应该保留。journald不是对集中日志服务器,如rsyslog或syslog-ng do的完全替代。Journald没有将来自其他服务器或设备的日志文件进行替代的选项。也没有指定哪台日志服务器的日志事件可以转发的选项。如果你想要journald在其他地方存放日志信息,最佳做法是将信息转发给[r]syslog[{d-ng}],在这里处理集中的日志。

Centos7 Journald 指令的更多相关文章

  1. vmware在桥接模式下配置centos7网络,并使用xshell连接虚拟主机(总结篇)

    虚拟机系统:centos7 mini版本 1.虚拟安装成功之后,首先我配置的是桥接模式,因为我使用的是网线,配置完桥接模式之后我的linux虚拟机就可以访问网络了 2.因为我安装的是centos7的迷 ...

  2. CentOS7版本基础使用

    第1章 CentOS7的使用 1.1 为什么要使用CentOS7版本 CentOS7是在CentOS6基础上发布的新版本,与之前的版本相比,主要的更新包括: 1.内核更新到3.10.0 2.支持Lin ...

  3. 0-systemctl开机启动项

    防火墙:iptables Apache服务名称:httpd MySQL服务名称:mysqld VSFTP服务名称:vsftpd <!--CentOS7新指令--> 使某服务 自动启动 sy ...

  4. CentOS7.0小随笔——指令基本操作(Part.A)

    与其说是CentOS7.0的小随笔,说老实话,基本指令在每个发行版本的Linux中都基本上是一致的. Part.A部分我们讲述以下四个方面:命令行界面与图形界面.Linux系统的关闭与重启.命令行帮助 ...

  5. centos7下安装docker(dockerfile常用的指令)

    FROM:指定ase镜像 MAINTAINER:设置镜像作者,可以是任意字符 COPY:将文件从build  context复制到镜像.支持两种形式:1.COPY src dest 2.COPY [“ ...

  6. centos7.4 linux 指令

    1.查看版本 lsb_release -a 2.查看mysql路径 whereis mysql 3.查看编码 locale 修改语言编码 经过在网上查找资料发现,Centos 7已经不采用/etc/s ...

  7. CentOS7.0小随笔——指令基本操作(Part.B)

    一.文件与目录基本操作指令 touch命令 在Linux中,touch指令可以建立一个空文件 但如果创建的文件本身存在(指在同一目录下),则会修改文件最后的访问时间,并不会更改文件内的内容. 例:# ...

  8. CentOS7.5 防火墙指令

    防火墙指令 1. 查看防火墙状态: firewall-cmd --state 2. 启动防火墙 systemctl start firewalld.service 3. 关闭防火墙 systemctl ...

  9. Centos7 docker 常用指令

    Docker 运行在 CentOS 7 上,要求系统为64位.系统内核版本为 3.10 以上 一.docker的安装及卸载 1.查看当前系统内核版本: [root@docker ~]# uname - ...

随机推荐

  1. AliOS-Things ESP8266 编译下载

    首先:环境搭建,可以参照https://github.com/alibaba/AliOS-Things/wiki/Quick-Start.zh:我采用的是linux系统: 其次:一般项目文件夹放置在A ...

  2. 【Codeforces Round 1132】Educational Round 61

    Codeforces Round 1132 这场比赛做了\(A\).\(B\).\(C\).\(F\)四题,排名\(89\). \(A\)题\(wa\)了一次,少考虑了一种情况 \(D\)题最后做出来 ...

  3. P4111 [HEOI2015]小Z的房间

    你的房子可以看做是一个包含n*m个格子的格状矩形,每个格子是一个房间或者是一个柱子.在一开始的时候,相邻的格子之间都有墙隔着.你想要打通一些相邻房间的墙,使得所有房间能够互相到达.在此过程中,你不能把 ...

  4. 自建mvc5项目里几个类图

    AccoutController.cs AccountViewModels.cs IdentityModel.cs

  5. .NET的弹性及瞬间错误处理库Polly

    原文:.NET的弹性及瞬间错误处理库Polly 本文基本是官方说明的翻译和总结(https://github.com/App-vNext/Polly) 什么是Polly? Polly是一款基于.NET ...

  6. Perhaps you are running on a JRE rather than a JDK

    在Eclipse中跑maven项目时,出现上面的问题: 1.有可能你的环境变量配置是在jre上面的,所以你要检查一下你配置文件,PATH和CLASSPATH都要检查 2.eclipse默认是跑在jre ...

  7. 【持续更新中···】Linux下的小技巧

    1.Linux回到上级文件的命令: cd ..回到上一级目录(注意:cd 和..中间有空格) cd ~回到home目录 cd -回到某一目录

  8. 阿里云centos内docker的搭建

    由于docker在17之后的版本分成了docker EE(企业版)和docker CE(社区版),那么我们在安装的时候就要开始纠结的选择了,这里我推荐了docker CE(社区版). 实际上这两个版本 ...

  9. D. Too Easy Problems

    链接 [http://codeforces.com/group/1EzrFFyOc0/contest/913/problem/D] 题意 给你n个题目,考试时间T,对于每个问题都有一个ai,以及解决所 ...

  10. 11.14 Daily Scrum

    实现推荐菜谱时遇到问题,这个功能要和数据库和服务器有关,所以暂时放在一边,可能在beta版本实现. 部分成员已经完成基本任务,进行完善.   Today's Task Tomorrow's Task ...