Engineer of the lawyer

I was able to pass the Network Specialist. Next target is the Project Manager.

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の確認を行っておいた方が良いと思います。