将 syslogd 添加为 Docker 容器上 Alpine 上的服务

将 syslogd 添加为 Docker 容器上 Alpine 上的服务

我有一个程序需要 syslog 才能正常运行。我正在使用版本 3.16.0 的 Alpine 容器。当我从程序 ( weewx) 中收到多个错误时,我了解到 syslog 没有在容器中运行,因此我研究了应该如何运行它,但收效甚微。

安装openrcapk add --no-cache openrc)后,我尝试将其添加为服务,因为它是建议的高山维基,但是运行后rc-update add syslogd boot我收到此错误:

rc-update: service `syslogd' does not exist

我对服务没有太多经验,所以我决定询问。当容器启动时,让 syslogd 作为守护进程运行的正确方法应该是什么?现在为了让它运行,我手动启动它,但是让它自动运行会很棒。

谢谢!

答案1

我刚刚遇到这个问题,有点失望,因为这个问题已经 7 个月没有得到答复,而且 Alpine wiki 也没有涵盖这个问题。

  1. 该命令实际上是rc-update add syslog boot,而不是 syslogd
  2. 如果您还没有,在 Alpine < 3.17 上,您需要添加开放资源库busybox 初始化脚本apk add openrc busybox-initscripts。在 Alpine >= 3.17 上,您可以添加单个包apk add busybox-openrc

答案2

我经历了一些奇怪的仪式以某种方式启动系统日志记录。我需要通过 PAM 服务跟踪授权。

我的命令:

run --privileged ... image

容器中的命令

apk add syslog-ng busybox-openrc
rc-update add syslog boot
rc-status
touch /run/openrc/softlevel
rc-service syslog start
rc-service syslog status

然后我跟踪文件中的日志/var/log/messages

相关内容