Syslog
Linuxのメインログ。syslogdがメッセージをログとして出力する。
カーネル/デーモン/プロセス → syslogd → ログファイル/コンソール/他ノード
<設定ファイル>
/etc/syslog.conf
<書式>
スペースまたはタブで区切られた2つのフィールド。
Selector(取得するログの設定)スペースまたはタブ
Action(ログの出力先)
EX:
*.warn /var/log/syslog
<Selector(取得するログの設定)>
Selectorは、facilityとpriorityをピリオドでつなぐ
特定のActionに対して複数のSelectorを指定したい場合は、;で接続する
Ex: facility.priority;facility.priority Action
<Facility(ログの分類)>
Facilityとは、ログの分類のこと。
auth,authpriv,cron,daemon,kern,mail,lprmners,syslog
user(ユーザプロセス),uucp(uucp転送),local0〜7(アプリ依存) なんかがある。
複数のfacilityを指定したいなら、
mail,ftp.warn
とか書くとよい
noneを使用すると、そのfacilityの出力を行わない
.
<Priotity>
emerg
alert
crit
err
warning
notice
info
debug
上から順にプラオリティが高い(よりヤバい)
facilityのlocal0〜7は、特定のプログラムが所属するfacilityを
既存のと分けたい時に使う
指定したpriorityより低いメッセージのみ出力させたい場合は、
mail.*;mail.warn
のように記述する。
(この場合、mailのnotice,info,debugが出力される)
特定のpriorityだけ出力させたい場合
kernel.=warn
(カーネルの警告だけ出力)
特定のpriorityを出力させたくない場合
mail.*;mail!=crit
(mailのcrit以外のメッセージ)
<Action>選んだログに対するアクション
他のファイルにわたす→パス
他のプログラムにわたす→|(パイプ)
他のホストにわたす→@ホスト名
コンソール出力→ユーザ名
EX:
*.info;authpriv.none;crone.none /var/log/messages
authprivとcronを除いた全てのfacilityでinfo以上のメッセージを/var/log/messagesに出力させる
EX:
authpriv.* /var/log/secure
authprivのメッセージを全て/var/log/secureへ
EX:
*.emerg *
全てのfacilityでemergのメッセージを、オンラインユーザのコンソールへ