【问题标题】:Using rsyslog/syslog-ng in non-privileged Kubernetes pod在非特权 Kubernetes pod 中使用 rsyslog/syslog-ng
【发布时间】:2022-01-06 04:03:00
【问题描述】:

我正在尝试在 Kubernetes 的非特权容器中使用 rsyslog 或 syslog-ng。 现在我已经设法完成了大部分工作,但我唯一被 /dev/log 套接字卡住的地方。

rsyslog/syslog-ng 无法在没有特权的情况下创建此套接字,这是预期的,因为 /dev 由 root 拥有。

Error binding socket; addr='AF_UNIX(/dev/log)', error='Permission denied (13)

现在我无法修改 /dev 的权限以允许我的用户,因为我在创建 pod 时对图像的更改很可能会被覆盖,因为这些是从主机使用的。

因此,唯一的方法似乎是使用功能使其发挥作用。

其他人在没有任何功能的情况下使用 rsyslog 或 syslog-ng 运气好吗?或者有什么方法可以在没有任何权限的情况下创建 /dev/log 套接字?

感谢任何潜在客户。

【问题讨论】:

  • 您使用的是哪个 Kubernetes 版本?你是如何设置非特权容器的?您能否与 pod / 部署定义共享您的 yaml 文件,以便您的示例为reproducible?您正在运行 rsyslog / syslog-ng 中的哪个命令来创建套接字?

标签: kubernetes rsyslog syslog-ng


【解决方案1】:

您可以将 /dev/log 设置为指向 syslog-ng 具有写入权限的目录的符号链接,如下所示:

source s_local {
  unix-dgram("/var/run/syslog-ng/log-socket" ...);
};

有了这个,您需要在创建映像时创建 /dev/log 符号链接。我假设图像在您的控制之下。

【讨论】:

    猜你喜欢
    • 2019-12-12
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    • 2019-11-15
    • 2019-08-02
    相关资源
    最近更新 更多