gpt4 book ai didi

systemd - 将结构化的 json 日志注入(inject) journald

转载 作者:行者123 更新时间:2023-12-01 11:19:37 25 4
gpt4 key购买 nike

我的印象是可能有一种方法可以直接将 json 数据写入 systemd 日志,而无需先将其转换为 sd_journal* 函数期望的格式。这可能吗?

我怀疑是因为一些关于内置 json 解析器的评论。然而,手册页另有建议。

此外,我注意到如果您以

格式写入标准输出
<priority> message

优先级将在 PRIORITY="priority"字段中结束,消息将在 MESSAGE="message"字段中结束。但是可以输入其他结构化的字段数据吗?

注意:手册页没有谈到我提到的最后一个特性。因此,如果它们稍微过时,我不会感到惊讶,这就是我问的原因。

最佳答案

期刊不接受任意 JSON。只是键/值对。所以不可能发送嵌套的数据结构。您可以直接通过 Unix 域套接字发送数据:

echo -e  "MESSAGE=Hello\nFOO=BAR\nMY_ID=12345\n" |socat  - UNIX-SENDTO:/run/systemd/journal/socket

结果:

{
"__CURSOR" : "s=46dc1bd66d0e4a48a6809e45228511e2;i=84cc;b=fd9144999d6846c8827d58f56c2635db;m=850161136;t=55669a307fdd6;x=887a021a37840789",
"__REALTIME_TIMESTAMP" : "1502386590318038",
"__MONOTONIC_TIMESTAMP" : "35703361846",
"_BOOT_ID" : "fd9144999d6846c8827d58f56c2635db",
"_TRANSPORT" : "journal",
"_UID" : "1001",
"_GID" : "1001",
"_CAP_EFFECTIVE" : "0",
"_SYSTEMD_OWNER_UID" : "1001",
"_SYSTEMD_SLICE" : "user-1001.slice",
"_SYSTEMD_USER_SLICE" : "-.slice",
"_MACHINE_ID" : "6e7b40640bf6473189165f19f8be2536",
"_HOSTNAME" : "samson",
"_SYSTEMD_UNIT" : "user@1001.service",
"_SYSTEMD_INVOCATION_ID" : "e5ed32fbb1004545b1ddf73a0d928d87",
"_SYSTEMD_CGROUP" : "/user.slice/user-1001.slice/user@1001.service/gnome-terminal-server.service",
"_SYSTEMD_USER_UNIT" : "gnome-terminal-server.service",
"_COMM" : "socat",
"_EXE" : "/usr/bin/socat",
"_CMDLINE" : "socat - UNIX-SENDTO:/run/systemd/journal/socket",
"FOO" : "BAR",
"MESSAGE" : "Hello",
"MY_ID" : "12345",
"_PID" : "19868",
"_SOURCE_REALTIME_TIMESTAMP" : "1502386590317991"
}

关于systemd - 将结构化的 json 日志注入(inject) journald,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45604563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com