syslogdに関する定義ファイルは"/etc/syslog.conf"。syslog.confは、取得するログの種類(selector)と、ログの出力先(action)を1行に記述するかたちで定義を行う。
selector action
selectorはログの分類(facility)と重要度(priority)の2つの要素から構成されており、.(ピリオド)で要素を結びつけて1つのselectorとして扱う。
facility.priority action
selectorとactionとの結びつけは1行に1つが基本であるが、同じアクションに紐付けるselectorを1行で複数定義することもできる。その場合は、"selector"を;(セミコロン)を用いて連結する。
selector;selector action
同様に、facilityを複数1行の中で設定することも可能で、その場合は,(コロン)を用いて連結する。
kern,mai.info
facilityとして使用できる分類は以下のとおり。
facility | 内容 |
---|---|
authpriv | 認証サービス(authもあるが、authprivが推奨される) |
cron | cronメッセージ |
daemon | daemonメッセージ |
kern | kernelメッセージ |
lpr | printer serviceメッセージ |
mail serviceメッセージ | |
news | news serviceメッセージ |
syslog | syslogメッセージ |
user | ユーザプロセスメッセージ |
uucp | uucp転送プログラムメッセージ |
local0-7 | アプリケーション定義に基づいて使用する |
priorityとして使用できる分類は以下のとおり。
priority | 内容 |
---|---|
debug | デバッグ情報 |
info | 情報 |
notice | 通知 |
warn | 警告通知 |
err | 一般エラー |
crit | 致命的エラー |
alert | 緊急に対処が必要 |
emerg | システム緊急 |
- priorityの設定においては、指定したpriority以上のレベルすべてが含まれる。たとえば、warnを選択した場合、warnレベルだけではなく、warn,err,crit,alert,emergレベルのログがすべて出力される。
- 逆に特定のレベル以下のみのログを出力したい場合は、!(エクスクラメーションマーク)をつける。
kern.*;kern.!err
-
- この場合、kernelメッセージのうち、debug,info,notice,warnレベルのログが出力される。
- 特定のレベルのpriorityのみ出力することも可能。その場合は=(イコール)を使用する。
mail.=info
-
- この場合、mail serviceメッセージのうち、infoレベルのログだけが出力される。
- 特定のレベルのpriorityのみを除外することも可能。その場合はnoneを使用する。
kern.none
=や!、;、noneは組み合わせて使用することが可能であり、facilityとpriorityの両方に対して使用することができる。たとえば、下記のようにselectorを記述すれば、local7のログでpriorityがinfo以外のメッセージを出力させることができる。
local7.*;local7.!=info
出力を設定するactionの側でも、様々な方法での出力に対応することができる。
- ファイルパスを指定する
- 出力をパイプする(コマンドを実行する場合と同様に"|"を使用してsyslog.confに記載する)
- コンソールに出力する
- これはファイルへの出力の1種ともいえるが、/dev/consoleに出力することにより可能
- リモートホストへ送信する
- 特定のユーザに通知する
- 出力先としてユーザを指定することにより、指定したユーザへの通知を行うことができる
- オンラインのすべてのユーザに通知する
- "*"に対して出力することにより、オンラインのすべてのユーザに対して通知を行うことができる