如何找出系统消息的来源(dmesg/journalctl/messages 中的“测试缓冲区”)?

如何找出系统消息的来源(dmesg/journalctl/messages 中的“测试缓冲区”)?

在过去的几天里,我在一秒钟内在系统日志/日志中收到了超过一千次的消息。我怎样才能找到它的起源?

# journalctl --system | grep "testing the buffer" | uniq --count
1522 Apr 06 13:49:31 laptop unknown: testing the buffer

因此,同一条消息出现了 1522 次“未知”。这可能是恶意的吗?

# find / -xdev -type f -print0 | xargs -0 grep "testing the buffer" | grep -v /var/log/journal
Exit 1

没有系统文件包含该字符串!

系统用于systemd-journald系统日志。

答案1

似乎与最新内核(5.6.x)有关。

如果您以详细级别跟踪日志

sudo journalctl -f -o verbose

您可以看到 _TRANSPORT=kernel

Sun 2020-04-12 09:32:38.852081 CEST [s=ca0e47a50a2047e483013075418f4a72;i=1d58f89;b=343f4563d34649baad6f57aacc0320a1;m=e9cad4480;t=5a312f895b1f1;x=16d4d0c3d713857c]
    _MACHINE_ID=*******
    _HOSTNAME=*******
    _TRANSPORT=kernel
    PRIORITY=4
    SYSLOG_FACILITY=1
    MESSAGE=testing the buffer
    _BOOT_ID=343f4563d34649baad6f57aacc0320a1
    _SOURCE_MONOTONIC_TIMESTAMP=62758810437

OpenSUSE 确实列出了一个错误https://bugzilla.opensuse.org/show_bug.cgi?id=1168664(但与内核相关,我在 Ubuntu 上)修复为 minot 剩余部分https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=41c55ea6c2a7ca4c663eeec05bdf54f4e2419699

幸运的是,不用担心,当他们将修复程序合并到打包的内核中时,它就会消失......

答案2

  1. 字符串“testing the buffer”位于内核 5.6.5 文件内./net/bpfilter/main.c
  2. 我预计这个无害的 DEBUG 消息将在未来的内核版本中消失。
  3. 我查到这条消息的来源如下:
    1. 在 bash shell 中进入内核 5.6.5 源代码树的根目录
    2. 执行:
      为我在find . -name "*.c"
      回声$i
      grep“测试缓冲区”$i
      完成 > pq.log
    3. 在文件 pq.log 内部找到每个打开的字符串并使用以下命令检查文件
      vi pq.log

相关内容