How to setup local syslog-ng in docker container of CentOS 7?

北城以北 提交于 2019-12-06 14:32:12

问题


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

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

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

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)'

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

The test process:

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 

回答1:


Change /etc/syslog-ng/syslog-ng.conf from

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

to

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' 

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

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


来源:https://stackoverflow.com/questions/51550624/how-to-setup-local-syslog-ng-in-docker-container-of-centos-7

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!