在我的centos上,dmesg显示数据包信息,而journalctl --dmesg不显示任何信息?

在我的centos上,dmesg显示数据包信息,而journalctl --dmesg不显示任何信息?
# cat /proc/version 
Linux version 2.6.32-042stab125.5 ([email protected]) (gcc version 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC) ) #1 SMP Tue Oct 17 12:48:22 MSK 2017

对于我的 iptables 中的日志链。

Chain LOGGING (2 references)
target     prot opt source               destination         
LOG        tcp  --  anywhere             anywhere             tcp dpt:ssh limit: avg 2/min burst 5 LOG level debug prefix "drop port 22"

检查所有日志记录。

# dmesg 
RGP=0 
[404925.404804] drop port 22IN=venet0 OUT= MAC= SRC=111.111.111.111 DST=222.222.222.222 LEN=136 TOS=0x00 PREC=0x00 TTL=45 ID=23569 DF PROTO=TCP SPT=25103 DPT=22 WINDOW=282 RES=0x00 ACK PSH URGP=0 
[404955.495105] drop port 22IN=venet0 OUT= MAC= SRC=111.111.111.111 DST=222.222.222.222 LEN=136 TOS=0x00 PREC=0x00 TTL=47 ID=34883 DF PROTO=TCP SPT=19703 DPT=22 WINDOW=296 RES=0x00 ACK PSH URGP=0 

以下命令没有任何输出。

# journalctl --dmesg
-- No entries --
# cat  /var/log/dmesg
# cat  /var/log/messages |grep MAC
  1. 哪个文件包含 dmesg 显示的所有信息记录?
  2. Journalctl命令可以获取dmesg显示的所有输出吗?命令
    输出有很多记录dmesg,没有条目journalctl --dmesg,为什么?

答案1

dmesg在 Linux 上打印内核环形缓冲区的输出,而不是从日志文件中打印 - 这就是为什么你找不到它。在其他系统上可能不会出现这种情况。看这个问题更多细节。

要查看相同内容,journalctl请使用-k--dmesg选项。

$ journalctl --dmesg
-- Logs begin at Mon 2017-10-23 19:04:10 BST, end at Sun 2017-11-12 08:39:58 GMT. --
Oct 23 19:04:10 HP-Envy kernel: microcode: CPU0 microcode updated early to revision 0x62, date = 2017-04-27
Oct 23 19:04:10 HP-Envy kernel: Initializing cgroup subsys cpuset
Oct 23 19:04:10 HP-Envy kernel: Initializing cgroup subsys cpu
Oct 23 19:04:10 HP-Envy kernel: Initializing cgroup subsys cpuacct
Oct 23 19:04:10 HP-Envy kernel: Linux version 4.4.0-89-generic (buildd@lgw01-18) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #112-Ubuntu SMP Mon Jul 31 19:38:41 UTC 2017 (Ubuntu 4.4.0-89.112-generic 4.4.76)
Oct 23 19:04:10 HP-Envy kernel: Command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-89-generic root=UUID=a090cb63-4bf2-44e2-b7e1-cb5bd98cf75b ro quiet splash
Oct 23 19:04:10 HP-Envy kernel: KERNEL supported cpus:
...

请注意,虽然您可以使用 清除环形缓冲区,sudo dmesg clear以便运行dmesg不会产生输出,但它仍然存储在日志中,并且上述journalctl命令仍然有效。

答案2

  1. 消息条目存储在 /var/log/ 中系统日志
  2. journalctl -kf应该满足。

答案3

我的vps类型是openvz,在kvm、garethTheRed和Alexander博士的指挥工作上测试一下。
在openvz中,vps日志不会写入/var/log/syslog(debian)或/var/log/messages(centos)。

相关内容