LoginSignup
3
2

More than 5 years have passed since last update.

CentOS 6 の cloud-init でログを出力する

Last updated at Posted at 2014-12-21

AWS Marketprice の CentOS 6 HVM の AMI でも cloud-init を使ってみようとしたのですが、/var/log/cloud-init.log にログがまったく出力されません。

# cat /var/log/cloud-init.log

/var/log/messages に次のようなログが記録されていました。

# cat /var/log/messages
Dec 21 14:03:58 ip-10-0-1-96 [CLOUDINIT] stages.py[INFO]: Loaded datasource DataSourceEc2 - DataSourceEc2
Dec 21 14:03:58 ip-10-0-1-96 rsyslogd-2177: imuxsock begins to drop messages from pid 823 due to rate-limiting

これは rsyslog の rate-limiting のという機能で /var/log/messages に短時間に大量のログを送るプロセスがあったときにログが捨てられてしまうからのようです。

rsyslog の rate-limiting を無効にすれば解決しますが、そもそも cloud-init のログは /var/log/cloud-init.log に出力して欲しいです。

見た感じ /var/log/cloud-init.log に出力しようとしているっぽいのですが、この設定が効いていないようです。

# cat /etc/rsyslog.d/21-cloudinit.conf
# Log cloudinit generated log messages to file
:programname, isequal, "cloud-init" /var/log/cloud-init.log

# comment out the following line to allow CLOUDINIT messages through.
# Doing so means you'll also get CLOUDINIT messages in /var/log/syslog
& ~

/etc/rsyslog.d/21-cloudinit.conf を以下のように修正すると /var/log/cloud-init.log にログが出力されるようになります。

:syslogtag, startswith, "[CLOUDINIT]" /var/log/cloud-init.log
& ~

あるいは /etc/cloud/cloud.cfg.d/05_logging.cfg の下記の行をコメントアウトすると syslog 経由ではなく直接ファイルに書き込まれるようになります。

# - [ *log_base, *log_syslog ]
3
2
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
3
2