代表的なログである「syslog」
Linuxにとってはメインログとも言うべき存在のsyslog。が、Linuxの根幹をきちんと理解できていないであろう自分にとっては正直言って難しいことだらけでした。
かといって分からないまま放置しておいてログの管理も何もあったもんじゃないだろ!と思ったので、一度自分なりに纏めてみます。
syslogの仕組み
syslogdというデーモンが常駐し、カーネル・プロセス・その他デーモンが発したログメッセージを受け取ったあと「/etc/syslog.conf」の設定に基づいてログの出力を行います。
※現在、当サーバで使用しているUbuntu12.04ではsyslogの後継にあたる「rsyslog」が用いられていますが。
ということは
- ログメッセージの発信元
- 取得したメッセージの出力先
を整理できれば概要が見えてくるのではないか?と思います。
そこで設定ファイルである/etc/syslog.confの構成を見てみることにしましょう。
syslog.confのフォーマット
syslog.confの基本的な記述方法は
selector action(区切りはスペース or タブ。ディストリビューションによって異なる)
となるのだそうです。それでは「selector」や「action」とはどんなものなのでしょうか?
selector
「selector」はログの取得元を表します。取得元といわれてもイマイチ分かりづらかったのですが、その内容は「ログの種類」と「重要度」から構成されていることがなんとなく分かりました。
ログの種類を「facility」、重要度を「priority」と呼ぶのだそうです。英語ばっかりで頭が痛くなってきましたが諦めずに続けて見ていきます。
facility
ログの種類を表す「facility」。ざっとその種類を挙げると
- auth・・・認証関連のログ
- cron・・・定期実行を行うcronのログ
- daemon・・・各種デーモンが発するログ
- kern・・・カーネルが発するログ
- mail・・・メールサービスのログ
- syslog・・・syslog自身のログ
- user・・・ユーザープロセスからのメッセージ
- :
などがあるんですって。これらが発したログを拾い集めるんですね。
priority
こちらはログを集める際に基準とする重要度を表します。
- debug・・・デバッグ情報
- info・・・情報
- notice・・・通知
- warn・・・警告
- err・・・一般的なエラー
- crit・・・致命的なエラー
- alert・・・緊急に対応すべきエラー
- emerg・・・システムが落ちるレベルのエラー
に分類されます。この中で「○○より重要度の高いログを集める」とか「△△のみを収集する」といった基準として設定されます。
このfacilityとpriorityを組み合わせることで集めるログの種類と重要度を定義する項目がselectorということになるんですね。う~ん、分かったような分からないような・・・
action
actionは、上のfacilityから受け取ったメッセージをどのように処理するかを定義する項目になります。選択肢としては
- ログに吐き出す
- パイプを使用して他のプログラムに値を渡す
- コンソールに表示する
- メールで通知する
- :
など、様々な手段から選ぶことができます。今回はログのお勉強の一環なので一番上の「ログに出力」となりますが。
まとめ
ここまでで基本的な記述方法は押さえられたはず。が、これだけではサッパリ分かりません。というか全く実感がわかなくて・・・。
そこで、次はこれまでのポイントを踏まえながら実際の使用例をみることでなんとか理解を深めたいと思います。できるかな・・・?