LoginSignup
17
19

More than 5 years have passed since last update.

rsyslogをDocker内で動かしてもログが出ない、ときの対策メモ

Last updated at Posted at 2015-07-06

はじめに

Docker内でちょっとSyslogを残しておきたい、ということはなきにしもあらずかと思います。
(たくさんDaemonを動かすのは良くないとされつつも・・・)
Fedora21などで yum でInstallされるデフォルトの rsyslog.conf だとログが出力されないので、その対策メモです。

症状

rsyslog自体はInstallされていて起動しているのに logger などで /var/log/messages に表示されない。
具体的には、
logger hogehoge としても /var/log/messages にログが出ません。

対策

http://www.projectatomic.io/blog/2014/09/running-syslog-within-a-docker-container/
に書いてある方法で上手く行きました。

RHEL7やFedoraではjournald などを使う設定になっている(んだけど、大抵Dockerではjournaldは起動していない)のがダメみたいです。
そこで /etc/rsyslogd.conf

  • $ModLoad imjournal を コメントアウト
  • $OmitLocalLogging を off にする
  • $IMJournalStateFile imjournal.state をコメントアウト
  • $ModLoad imuxsock が存在することを再度確認(初期設定では存在しています)

とします。rsyslogd を再起動して、 logger hogehogeすると今度はちゃんとログに出力されました。

Installメモ

supervisord で起動する場合、こんな感じで入れておけばOKでした。

yum install -y rsyslog

sed 's/$ModLoad imjournal/# $ModLoad imjournal/' -i /etc/rsyslog.conf
sed 's/$OmitLocalLogging on/$OmitLocalLogging off/' -i /etc/rsyslog.conf
sed 's/$IMJournalStateFile imjournal.state/# $IMJournalStateFile imjournal.state/' -i /etc/rsyslog.conf

cat <<EOF > /etc/supervisord.d/rsyslog.conf
[program:rsyslog]
command=/usr/sbin/rsyslogd -n -c5
autostart=true
autorestart=true
redirect_stderr=true
EOF
17
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
19