如何找出系統訊息的來源(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

相關內容