如何在CentOS 7的Docker容器中设置本地syslog-ng? [英] How to setup local syslog-ng in docker container of CentOS 7?

查看:320
本文介绍了如何在CentOS 7的Docker容器中设置本地syslog-ng?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想隔离docker中的测试环境,我在CentOS 6上做到了如何让syslog在docker中可行?

I want to isolate a testing environment in docker, I did that on CentOS 6 How to let syslog workable in docker?

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

In CentOS 7, the syslog-ng's configuration is different, when I run

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

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

It appears the following error message, but there is no proc/kmsg in config files.

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

The 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

在容器中,运行以下命令

In container, run following commands

# 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 


推荐答案

source s_sys {
  system();
  internal();
};

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

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

It still show error message, but running instead of exit

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

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

To solve this, just run with --no-caps option

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

这篇关于如何在CentOS 7的Docker容器中设置本地syslog-ng?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆