首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在CentOS 7的docker容器中设置本地syslog-ng?

如何在CentOS 7的docker容器中设置本地syslog-ng?
EN

Stack Overflow用户
提问于 2018-07-27 12:05:52
回答 1查看 1.2K关注 0票数 1

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

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

代码语言:javascript
复制
/usr/sbin/syslog-ng -F -p /var/run/syslogd.pid 

它显示以下错误消息,但配置文件中没有proc/kmsg。

代码语言:javascript
复制
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

代码语言:javascript
复制
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

测试过程:

代码语言:javascript
复制
docker build -t t1 .
docker run --rm -i -t t1 /bin/bash

在容器中,运行以下命令

代码语言:javascript
复制
# 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 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-27 13:46:47

将/etc/syslog-ng/syslog-ng.conf从

代码语言:javascript
复制
source s_sys {
  system();
  internal();
};

代码语言:javascript
复制
source s_sys {
  unix-stream("/dev/log");
  internal();
};

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

代码语言:javascript
复制
syslog-ng: Error setting capabilities, capability management disabled; error='Operation not permitted' 

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

代码语言:javascript
复制
/usr/sbin/syslog-ng --no-caps -F -p /var/run/syslogd.pid 
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51550624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档