Product SiteDocumentation Site

9.5. syslog システムイベント

9.5.1. 原理とメカニズム

rsyslogd デーモンはアプリケーションおよびカーネルからのサービスメッセージを収集を担当し、サービスメッセージをログファイル (通常 /var/log/ ディレクトリに保存されます) に配送します。rsyslogd デーモンは /etc/rsyslog.conf ファイルの設定に従います。
各ログメッセージはアプリケーションサブシステム (文書中では「facility」と呼ばれます) に関連付けられます:
  • authauthpriv: 認証;
  • cron: タスクスケジューリングサービスからのメッセージ、cronatd;
  • daemon: 特別な分類の無いデーモン (DNS、NTP、など);
  • ftp: FTP サーバ関連;
  • kern: カーネルからのメッセージ;
  • lpr: 印刷サブシステムからのメッセージ;
  • mail: 電子メールサブシステムからのメッセージ;
  • news: Usenet サブシステムからのメッセージ (特にニュースグループを管理する NNTP - Network News Transfer Protocol - サーバ);
  • syslog: syslogd サーバ (自分) からのメッセージ;
  • user: ユーザメッセージ (一般);
  • uucp: UUCP サーバからのメッセージ (Unix to Unix Copy Program、とりわけ昔は電子メールメッセージの配送に使われていた古いプロトコル);
  • local0 から local7: ローカル利用向けに予約されています。
さらに各メッセージは優先順位と関連付けられます。以下は優先度の高い順に挙げたリストです:
  • emerg: 「助けて!」非常事態です。おそらくシステムが不安定になっています。
  • alert: 急いで下さい、遅れると危険な状態になります。すぐに何らかの措置が必要です;
  • crit: 危機的状態です;
  • err: エラー;
  • warn: 警告 (潜在的エラー);
  • notice: 正常な状態ですが、このメッセージは重要です;
  • info: 有益なメッセージ;
  • debug: デバッグメッセージ。

9.5.2. 設定ファイル

/etc/rsyslog.conf ファイルの構文は rsyslog.conf(5) マニュアルページで詳しく説明されています。しかし、rsyslog-doc パッケージから提供される HTML 文書 (/usr/share/doc/rsyslog-doc/html/index.html) も利用可能です。全般的な原則は「セレクタ」と「アクション」の組を書く事です。セレクタはすべての関連するメッセージを定義し、アクションはそれらのメッセージをどのように取り扱うかを定義します。

9.5.2.1. セレクタの構文

セレクタは subsystem.priority の組からなるセミコロン区切りリストです (例: auth.notice;mail.info)。アスタリスクはすべてのサブシステムまたはすべての優先順位を表します (例: *.alertmail.*)。コンマで区切れば複数のサブシステムをグループ化する事が可能です (例: auth,mail.info)。優先度は同じかより高い優先度を持つメッセージを意味します; このため auth.alertalert および emerg 優先度を持つ auth サブシステムメッセージを表現します。優先度の前に感嘆符 (!) を付けると否定を表します。言い換えれば、その優先度より低い優先度です; このため auth.!noticeauth から発行された info および debug 優先度を持つメッセージを表現します。優先度の前に等号 (=) をつけると、その優先度だけを表します (auth.=noticeauth から発行された notice 優先度を持つメッセージを表現します)。
セレクタリスト内の各要素は前の要素を上書きします。このため、セレクタリストからある組を制限したり、ある要素を除外する事が可能です。例えば、kern.info;kern.!err はカーネルの発行した infowarn の間の優先度を持つメッセージを意味します。none 優先度は空の組 (優先度を持たない) を意味します。これはあるサブシステムをメッセージの組から除外するのに役立つかもしれません。そんなわけで、*.crit;kern.none はカーネルの発行した crit 以上の優先度を持つメッセージを意味します。

9.5.2.2. アクションの構文

様々なアクションが利用可能です:
  • ファイルにメッセージを追記する (例: /var/log/messages);
  • メッセージをリモートの syslog サーバに送信する (例: @log.falcot.com);
  • 既存の名前付きパイプにメッセージを送信する (例: |/dev/xconsole);
  • ログイン中の 1 人かそれ以上のユーザにメッセージを送信する (例: root,rhertzog);
  • ログイン中の全ユーザにメッセージを送信する (例: *);
  • テキストコンソールにメッセージを書き込む (例: /dev/tty8)。