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) サーバ) から受け取ったメッセージです。
  • syslogsyslogd サーバ (自分) から受け取ったメッセージです。
  • 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 はカーネルから受け取った info 以上 warn 以下の優先度を持つメッセージを意味します。none 優先度は空の組を意味し (優先度を指定しないことを意味し)、あるサブシステムだけをメッセージの組から除外するのに役立つかもしれません。そんなわけで、*.crit;kern.none はカーネルから受け取った crit 以上の優先度を持つメッセージを意味します。

9.5.2.2. アクションの構文

以下に指定できるさまざまなアクションを挙げます。
  • ファイルにメッセージを追記します (たとえば /var/log/messages などのように指定します)。
  • メッセージをリモートの syslog サーバに送信します (たとえば @log.falcot.com などのように指定します)。
  • 既存の名前付きパイプにメッセージを送信します (たとえば |/dev/xconsole などのように指定します)。
  • ログイン中の個人または複数人のユーザにメッセージを送信します (たとえば root,rhertzog などのように指定します)。
  • ログイン中の全ユーザにメッセージを送信します (たとえば * などのように指定します)。
  • テキストコンソールにメッセージを書き込みます (たとえば /dev/tty8 などのように指定します)。