syslogdの基本的な事
rotateに関する設定が気になったので、メモ
syslog.conf或いはrsyslog.confでどのようなログを残すか設定を行う。
syslog.confで設定を行うために知っておかなければならないのがファシリティと呼ばれるログの分類方法、ログレベルの重要度を設定するプライオリティ、それらのログの出力先をしていするアクションなどの項目である。
ファシリティ
ログの分類を行う設定。
ファシリティ auth(security) 認証サービスのメッセージ(現在はauthprivが推奨されている) authpriv 認証サービス(カテゴリはauthと同じ。authとは出力結果が異なる) cron cronのメッセージ daemon デーモンのメッセージ kern カーネルのメッセージ lpr プリンタサービスのメッセージ mail メールサービスのメッセージ news ニュースサービスのメッセージ syslog syslogのメッセージ user ユーザープロセスのメッセージ uucp uucp転送を行うプログラムのメッセージ local0~7 アプリケーションに依存する
プライオリティ
出力されるログレベルの重要度を設定。
プライオリティ debug デバッグ情報 info 情報 notice 通知 warn 警告 err 一般的なエラー crit 致命的なエラー alert 緊急に対処すべきエラー emerg システムが落ちるような状態
下に行くほど重要度が増しています。プライオリティの設定を行うと指定したプライオリティ以上のログが出力されます。例えばwarnに設定すると、warn、err、crit、alert、emergも出力されるが、debug、info、noticeは出力されない。つまり、プライオリティを低く設定すると出力されるメッセージが増えていく。そのため個々の環境に合わせて判断する。
アクション
上記で分類されたログの出力先を指定。
出力先としては、
絶対パスで指定する /var/log/xxxxx.log
別のサーバに送る @remotehost
ここまではなんとなくわかっていたのですが、”これらのログをどれぐらいのスパンで作成し、廃棄するのか”というrotateの設定がsyslog.confの中にないので調べたところ、/etc/logrotate.confという専用のファイルがあったので調べてみた。
logrotate.conf
# rotate log files weekly: weekly ↑daily 1日ごとにローテートする ↑weekly 1週ごとにローテートする ↑monthly1月ごとにローテートする # keep 4 weeks worth of backlogs: rotate 4 ↑ローテートされたログをどの世代まで残すか # uncomment this if you want your log files compressed #compress ↑ログを圧縮する場合はこのコメントを外す
これは全体的な設定になります。例えばapacheのログだけ周期や期間を変えたい場合には、
/etc/logrotate.d/httpd のように logrotate.d の下にある設定ファイルで個別に設定を行うことができます。
サーバ運用者は一度はlogrotate.confの確認を行っておいた方が良いと思います。