【问题标题】:How to setup local syslog-ng in docker container of CentOS 7?如何在 CentOS 7 的 docker 容器中设置本地 syslog-ng?
【发布时间】:2018-07-27 04:05:51
【问题描述】:

我想在 docker 中隔离一个测试环境,我在 CentOS 6 上做到了 How to let syslog workable in docker?

在 CentOS 7 中,syslog-ng 的配置不同,当我运行时

/usr/sbin/syslog-ng -F -p /var/run/syslogd.pid 

出现如下错误信息,但配置文件中没有proc/kmsg。

syslog-ng: Error setting capabilities, capability management disabled; error='Operation not permitted' 
Error opening file for reading; filename='/proc/kmsg', error='Operation not permitted (1)'

Dockerfile

FROM centos
RUN yum update --exclude=systemd -y \
  && yum install -y yum-plugin-ovl \
  && yum install -y epel-release
RUN yum install -y syslog-ng syslog-ng-libdbi

测试过程:

docker build -t t1 .
docker run --rm -i -t t1 /bin/bash

在容器中,运行以下命令

# check config, no keyword like proc/kmsg
cd /etc/syslog-ng
grep -r -E 'proc|kmsg'

/usr/sbin/syslog-ng -F -p /var/run/syslogd.pid 

【问题讨论】:

    标签: docker centos7


    【解决方案1】:

    更改 /etc/syslog-ng/syslog-ng.conf
    source s_sys {
      system();
      internal();
    };
    

    source s_sys {
      unix-stream("/dev/log");
      internal();
    };
    

    它仍然显示错误消息,但运行而不是退出

    syslog-ng: Error setting capabilities, capability management disabled; error='Operation not permitted' 
    

    要解决这个问题,只需使用--no-caps 选项运行

    /usr/sbin/syslog-ng --no-caps -F -p /var/run/syslogd.pid 
    

    【讨论】:

    • 感谢您的解决方案。你介意解释一下吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-17
    • 2017-06-30
    • 2021-08-12
    • 2018-09-03
    相关资源
    最近更新 更多