cronのログ出力先変更

MRTGを動かしていると5分に1回syslogにcronのログが出力され
syslogを見ても非常に見難くなります。

cronの-Lオプションでwarn以上しか出力しないように設定してみましたが
上手く動かずsyslogに出力されてしまいます。
そこでcronのログをsyslogではなく独立して出力するように変更します。

T4のlennyではrsyslogが使用されているので/etc/rsyslog.confを修正します。
以下の行があるので変更します。

#
# First some standard log files. Log by facility.
#
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
#cron.* /var/log/cron.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
lpr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
user.* -/var/log/user.log

#
# First some standard log files. Log by facility.
#
auth,authpriv.* /var/log/auth.log
cron.* /var/log/cron.log  ←追加
*.*;auth,authpriv.none;cron.none -/var/log/syslog  ←cron.noneの追加
#cron.* /var/log/cron.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
lpr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
user.* -/var/log/user.log

変更後にrsyslogをリスタートするか、システムをリブートすれば適応されます。

続いてntpのログもsyslogから切り離します。
ntpのログ設定はntpdオプション用のファイルを修正します。

# vi default/ntp

NTPD_OPTSに以下の用に追加してください。
-l /var/log/ntp.log

ntpデーモンを再起動すれば/var/log/ntp.logが出来ているはずです。

未確認ですが、恐らくこのままではログは肥大化を続けるので
logrotateを使って、ログをローテーションさせてあげます。

新規にlogrotate用のファイルを作成して登録します。
# vi /etc/logrotate.d/ntp

内容はご自分でローテーションさせたい値に書き換えてください。

/var/log/ntp.log {
weekly
rotate 12
compress
missingok
}

これで/var/log/ntp.log がローテーションされます。

dhcp3-serverのログも結構頻繁に出るので独立させます。
基本的にはcronと同じ方法ですが、/etc/dhcp3/dhcpd.confの以下の行をまず確認します。

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;

log-facility local7;が該当箇所です。
これはsyslogでlocal7というfacilityを使うという意味です。
もし他のデーモンがlocal7を使っていると、そのログまで一緒に別のファイルに書き込まれることになるので、local7の数字の部分を書き換える必要があります。
他で使われていなければそのままで構いません。

/etc/rsyslog.confを開いてcronと同様に追加、修正します。
追加、修正する文字はlocal7(書き換えていたら書き換えたもの)となります。
両サービスを再起動すれば、ログは別れて出力されます。

またlogrotateもcronと同じように設定する必要があります。

これらのログファイルを分けることでsyslogは大変見やすくなりました。
(ntpやdhcp-serverなどは、システムのログに比べて重要性は下がりますが、チェックはした方が良いと思います)

追記
smartmontoolsも同じようにsyslogのfacilityを指定可能です。

smartdのオプションを見ると以下のように書いています。

smartd version 5.38 [powerpc-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

Usage: smartd [options]

-c NAME|-, --configfile=NAME|-
Read configuration file NAME or stdin [default is /etc/smartd.conf]

-d, --debug
Start smartd in debug mode

-D, --showdirectives
Print the configuration file Directives and exit

-h, --help, --usage
Display this help and exit

-i N, --interval=N
Set interval between disk checks to N seconds, where N >= 10

-l local[0-7], --logfacility=local[0-7]
Use syslog facility local0 - local7 or daemon [default]

-n, --no-fork
Do not fork into background

-p NAME, --pidfile=NAME
Write PID file NAME

-q WHEN, --quit=WHEN
Quit on one of: nodev, errors, nodevstartup, never, onecheck, showtests

-r, --report=TYPE
Report transactions for one of: ioctl[,N], ataioctl[,N], scsiioctl[,N]

-V, --version, --license, --copyright
Print License, Copyright, and version information

/etc/default/smartmontoolsのsmartd_optsに--logfacility=local6などと追加すればOKです。
後はsyslogの設定でlocal6(オプションで指定したlocal)のログを切り離せば別にログを吐き出せます。

「cronのログ出力先変更」への2件のフィードバック

  1. 送ってくれたらしいね。

    あるたす☆

    どんな内容の話やったんやろ。

    だいたい想像つくけどな~(笑)

コメントを残す

メールアドレスが公開されることはありません。