问题标签 [systemd-journald]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
359 浏览

c++ - sd_journal_send 发送二进制数据。如何使用 journalctl 检索数据?

我将 systemd-journal 视为一种从外部处理器收集日志的方法。我对它在必要时收集二进制数据的能力非常感兴趣。

我现在只是在测试和调查期刊。我很清楚还有其他可能更好的解决方案。

我正在记录二进制数据,如下所示:

使用该journalctl工具时会显示日志行。我可以从终端找到这样的日志行:

journalctl MESSAGE_ID=12345

我可以像这样从终端获取日志中所有日志的二进制数据:

journalctl --field=BINARY

我需要将二进制数据保存到文件中,以便我可以从程序中访问并对其进行解码。我怎样才能做到这一点?

这不起作用:

journalctl --field=BINARY MESSAGE_ID=12345

我到了那里错误:

“以 'MESSAGE_ID=1234567890987654321 开头的无关参数”

有什么建议么?systemd-journal 上的文档似乎很薄。提前致谢。

0 投票
1 回答
2140 浏览

logging - journalctl 单元记录在单元仍在运行时停止

似乎找不到任何东西,对我来说也很奇怪。

我有一个 python 程序,它非常频繁地插入数据库记录,并且它仍在这样做,所以我知道该程序仍在运行。

我将程序设置为 systemctl 中的服务单元,并记录到 journalctl。

几个月来日志一直很好,但在今天凌晨 1 点,日志停止添加到该单元的日志数据中。

这只是内存问题吗?我不知道为什么,但我认为 journalctl 会处理这个问题。

0 投票
1 回答
664 浏览

ubuntu-16.04 - systemd-journald 日志位置

在深入研究源代码以查看答案是否存在之前,我问了一个简单的问题:/var/log/journalsystemd 日志文件的位置是否硬编码到二进制文件中?我的意思不是“这是默认的吗?” 我的意思是我试图在我能找到的每个可能控制设置的位置覆盖默认值,并systemd-journald愉快地忽略这些设置并返回到该/var/log/journal位置。或者完全停止记录。这些地点包括:

我在某处缺少配置设置吗?发行版是 Ubuntu 16.04。系统设计约束提示了这个问题,所以请不要输入“为什么你会……”类型的答案。谢谢。

0 投票
0 回答
54 浏览

logging - 如何对日志事件做出反应 err、crit、alert、emerg?

当使用日志记录消息时,是否有信号/事件可以设置监听器/处理程序/回调?我需要在消息生成的那一刻准确地打印 add'l 诊断信息。具体来说,我的 Raspberry Pi 最近因内核生成消息mmc0: PIO read timeout - EDM 10801而死机,我想在此之后立即记录一条消息,指示是否存在欠压。

0 投票
1 回答
1041 浏览

logging - 将转发的 rsyslogs 写入 journald 以便能够通过 SYSLOG_IDENTIFIER 过滤它们?

你好 StackOverflow 神/常客/用户!

我目前正在为我的服务器上运行的两个应用程序开发一个日志系统。

这是上下文:

  • 服务器 dev1:Ubuntu 服务器 18.04(全新安装)
    • 正在运行 systemd.service algo-ep
  • 正在运行另一个 systemd.service algo-mdw
  • 服务器 dev2:Ubuntu 服务器 18.04(新安装)
    • 正在运行 systemd.service algo-ep

当我使用 journalctl (systemd-journal) 在 dev1 上 ssh 时,我希望能够读取每个服务的日志。

像这样:journalctl -t dev1_algo_ep -t dev1_algo_mdw -t dev2_algo_ep

所以,我rsyslog.d/algo-ep.conf在 dev2 上添加了一个:

rsyslog.d/algo.conf在 dev1 上添加:

在这一点上,没问题,我在 journalctl 中得到了以下内容journalctl -r

但是当我尝试时journalctl -t dev2_algo_ep

因为接收到的日志的 SYSLOG_IDENTIFIER 被设置为dev2_algo_ep[3142]:而不是dev2_algo_ep.

所以,我的问题:有没有办法,神奇或明显

  1. 使用特定的 SYSLOG_IDENTIFIER 将日志从 dev2 导出到 dev1 ?
  2. 还是在 dev1 上接收日志并在将其发送到 journald 之前设置特定的 SYSLOG_IDENTIFIER?
  3. 或者干脆这样做?

提前感谢您的建议、帮助和信息!

[编辑] 混合 rsyslog + journald 似乎鲜为人知。我在手册页中没有找到任何内容(除了可以创建模板以在 dev1 的接待处重建日志,但对我来说看起来很奇怪)。

0 投票
1 回答
1018 浏览

flask - 如何让 UWSGI 以正确的级别记录 Flask 日志消息?

我有一个在 systemd 下运行的 uwsgi 服务。它似乎正在记录从其托管的 Flask 应用程序收到的所有内容INFO级别,而不是它应该记录的任何级别。

在我的 Python 代码中,我有一个名为app. 我打电话:

app.logger.error('TESTING LOGGING')

当我使用 检查我的日志时journalctl -u uwsgi -p err,我没有看到我记录的消息。当我使用journalctl -u uwsgi -p info时,我会这样做。

我没有使用 uwsgi 的systemd_logger插件,但它看起来不会解决这个问题,因为它也总是在INFO级别记录:https ://github.com/unbit/uwsgi/blob/3149df02ed443131c54ea6afb29fcbb0ed4d1139/plugins/ systemd_logger/systemd_logger.c#L13

0 投票
1 回答
294 浏览

docker - docker log-level 会影响日志驱动程序还是仅影响 docker daemon 的日志?

我的日志记录驱动程序设置为journald. 使用日志记录驱动程序时,文件中的日志级别配置会daemon.json影响日志,还是仅在使用时影响容器日志docker logs <container_name>

例如,docker 和 journald 有说明如何设置日志级别/优先级的文档。

Docker 的默认设置是info: log-level: infojournald我也可以使用将-p日志优先级设置为info: journalctl -p info

如果我的 docker 日志记录驱动程序的journald日志优先级设置为info,我什至需要担心将日志级别设置为info文件daemon.json吗?

0 投票
3 回答
3876 浏览

bash - 有没有办法从脚本中将所有 stdout 和 stderr 重定向到 systemd 日志?

我喜欢使用 systemd 的日志来查看和管理我自己的脚本日志的想法。我已经意识到您可以根据每条消息从我的用户脚本登录到日志..

有没有办法将所有消息重定向到日志,即使是由其他命令生成的消息?喜欢..

更新:

部分成功。从终端尝试了Inian的建议。

它起作用了,stdout 和 stderr 被定向到 systemd 的日志。奇怪的是,

在我的 Bash 终端中不起作用。

当其他程序调用我的脚本时,我仍然需要在我的脚本中找到一种方法来执行此操作。

我试过了..

但它不起作用。

更新 2

从终端

作品。但我仍在寻找一种从脚本中执行此操作的方法。

0 投票
1 回答
389 浏览

systemd-journald - 查看没有日志的 systemd 日志

我有一个带有 ubuntu-xenial 的损坏容器的 rootfs。如何在不运行日志的情况下查看特定服务的日志?

0 投票
1 回答
1227 浏览

logging - 限制 systemd 中“journalctl 服务”的日志 - Centos 7

我有一个服务**/etc/systemd/sysem/horses.service**

它使用以下代码运行 shell 脚本:

我成功运行它,我可以看到正在写入服务的日志并且可以从以下位置读取:

如果我运行该命令 - 我可以看到 horses.service 记录的所有事件。

我对 systemd 服务的日志没有任何经验。我非常担心的是,因为该服务将一直运行 - 例如是否可以设置将信息(日志)保留在 journalctl -u horses.service 中,例如仅过去 10 天,或者定义一些回合日志记录或建议的任何方法,以确保我的日志不会满,因为我确实想以我的整个磁盘(分区)满结束。请建议我如何限制日志。

先感谢您!!!!!!!