问题标签 [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 回答
750 浏览

logging - 如何让 journald 增加日志存储容量?

我想通过 journald 获得持久性日志。我建立/var/log/journal并重新加载了服务。现在日志保存在磁盘上。但是日志大小限制很低。

我补充说/etc/systemd/journald.conf。(Storage=persistent/auto没关系,我都试过了)。

如您所见,我只将每个日志文件的大小更改为 1Gb,并告诉我希望磁盘上有 10Gb 的空闲空间。

但是journald告诉我他只有4Gb的日志存储容量。

我错过了什么?

本手册也包含这样的节。

第一对默认为相应文件系统大小的 10%,第二对默认为 15%,但每个值的上限为 4G。

是不是说日志可以占用的最大空间是4Gb并且是硬编码的?

0 投票
0 回答
114 浏览

ubuntu-16.04 - 防止 syslog() 消息进入日志守护进程

我的应用程序使用 syslog() 根据 rsyslog.conf 中的规则生成进入特定日志文件的日志。

自从迁移到 Ubuntu 16.04 后,这些日志也开始出现在 journalctl 输出中,并且机器的系统 CPU 利用率有所增加。

有没有办法禁止这些系统日志消息进入日志守护进程?

谢谢!

0 投票
1 回答
315 浏览

linux-kernel - sd_journal_sendv 写入 BLOB 而不是字符串

请有人解释一下如何使用 sd_journal_sendv 系统调用?我尝试使用下面的代码片段,但输入字符串被 journald 解释为 BLOB。

我分别为 MESSAGE、MESSAGE_ID 和 PRIORITY 写了“Hello world!”、52fb62f99e2c4、5。但在日记中我可以看到它们被写成 BLOB。

0 投票
0 回答
251 浏览

docker - Docker 使用 journald 收集日志但无法删除旧日志文件

journald用来收集 docker 的文件。

Journald配置:

所以我想删除大于100g的文件。事实上,journald已经删除了那些文件。

但是我发现磁盘空间并没有减少,我使用lsof | grep delete发现那些文件句柄被dockerd进程占用了。

因为这是生产服务,所以无法重启docker。有什么办法可以解决这个问题吗?

0 投票
1 回答
2061 浏览

docker - 如何将日志从 docker 容器转发到主机 journald/syslog 服务?

我想将所有日志从 docker postgresql 容器发送到我的主机日志服务。

即我希望能够使用 tail -f /var/logs/messages 或 journald -f 在主机上读取 docker 容器日志

这是我的 docker-compose 配置:

我一直在尝试不同的解决方案,但每次我从 docker 收到错误:

而且我看不到主机上的日志。

我不确定,我做错了什么?

先感谢您

0 投票
1 回答
1942 浏览

docker - 查看 docker 容器中的实例 journalctl 日志

我希望能够运行 docker 容器并查看所有实例 journalctl 日志。换句话说,我想在 Instance 和 Docker 容器中看到相同的 journalctl 日志输出。

我试图安装 journald 套接字,但我仍然没有看到来自实例的日志日志

谢谢您的帮助。

0 投票
1 回答
1208 浏览

buffer - 程序退出时如何保证systemd和journald之间的stdout缓冲区被刷新?

演示问题的简化示例是

(虽然它不是特定于编程语言的——我发现问题的原始应用程序是在 Go 中)。

如果它已编译并由以下单元运行:

然后 onsystemctl restart journald在大多数情况下不会得到foo\n输出,而syslog成功地将其写入/var/log/syslog.

以下是journald服务的输出示例:

然后是相应的部分/var/log/syslog

如果有的话,保证journald 收到的方法stdout是什么?

0 投票
0 回答
281 浏览

containers - 使用 journald 获取所有容器日志

我正在使用 fluentbit 收集日志,它允许通过指定过滤器使用 journald 过滤 systemd 日志。例如 ---unit=docker.service--unit=systemd*

我想阅读所有容器日志。我尝试将单个容器的日志读取为 - CONTAINER_ID_FULL=<container_id>。这行得通。但是使用像这样的正则表达式是CONTAINER_ID_FULL=*行不通的。

我试图为所有容器提供通用服务,看看是否有帮助。我跑了systemctl list-unit-files。我能够看到我的容器以(可能)系统单元名称运行,例如docker-<container_id>.scope. 因此,我尝试将其用作带有 unit like 的服务名称,--unit=docker-<container-id>.scope但这没有显示任何数据。

我跑了systemctl status docker-<container_id>.scope(按照这里的建议)查看服务名称是否不同,但它没有显示任何相关信息。

我想要的是一种使用单个过滤器获取所有容器日志的方法。任何帮助表示赞赏。

0 投票
1 回答
267 浏览

python - Journalctl 分组记录消息?

所以在我们的机器上,我们发现了一些奇怪的东西。我们的服务正常记录,但这些消息似乎被分组到特定大小的包中。例如,我们服务的一个命令仅在日志中生成 1 行。另一个命令生成大约 5 行。

使用journalctl -u service -f,单行只有在足够多的情况下才会显示,而5行的消息总是在您调用命令时立即显示。考虑这个例子:

我调用了 4 次短命令,但 journalctl 中没有显示任何内容。然后我调用较长的命令,所有 4 个短命令条目以及新的较长命令立即显示出来。但是,它们都具有基本完全相同的时间戳(考虑到写入速度),即使我间隔几秒钟发送调用它们!

这对于调试来说很棘手,因为您不能真正依赖消息实际发生时出现的消息。我在这里想念什么?有什么方法可以强制这些日志消息在实际发生时出现在 journalctl 中?

0 投票
1 回答
1136 浏览

asp.net - 如何为 Linux 上托管的 ASPNET 核心应用程序的错误过滤 journalctl 日志

我有一个使用 ASP.NET core 2.0.7 构建的网站,它托管在 Ubuntu 16.04 上。我已经这样做了

https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-2.0&tabs=aspnetcore2x

我使用 systemd 让它自动启动,并将日志发送到 journald。

我可以使用以下命令获取日志

但是,如果我只想有错误及以上,我应该可以使用-p,即

根据https://www.digitalocean.com/community/tutorials/how-to-use-journalctl-to-view-and-manipulate-systemd-logs

不过好像微软的日志格式和journalctl的-p过滤不兼容。我应该改变什么?