Linux Syslogファイルがなぜ:/ var/log/syslogがプロトコルで定義されたタイムスタンプ形式に従わないのか http://tools.ietf.org/html/rfc5424#page-11 ?
RFC 5424(syslogプロトコルを規定し、タイムスタンプについてはRFC 3339を参照)から "1。はじめに":
このドキュメントでは、syslogメッセージおよび
トランスポートマッピングの概念の概要を説明します。また、説明します
構造化されたデータ要素。簡単に送信するために使用できます
解析可能で構造化された情報であり、ベンダーの拡張が可能です。このドキュメントでは、syslogのストレージ形式については説明していません。
メッセージ。これはsyslogプロトコルの範囲を超えており、
システムの相互運用性には不要です。
ここでのメッセージは、ログに記録される内容を指し、は、ログの形式ではありません。 言い換えると、ログはメッセージではなく、RFCはメッセージに関するものであり、ログに関するものではありません。
/var/log/syslog
に表示されるのは、「保存された形式」のメッセージです。その形式は、特定のsyslogをどのように構成したかによって決まります。前文にあるように、少なくとも「システムの相互運用性」に関する限り、プロトコルは実際には必要ありません。
Syslogデーモンは、複数のシステムのロガーとして機能できます。 RFCは、どの特定の実装が使用されているかなどに関係なく、準拠システムがリモートsyslogにログを記録できるように標準を設定することを目的としています。
このようなメッセージを受信したsyslogデーモンは、メッセージをファイルに書き込みますが、逐語的には書き込みません。構成に従ってメッセージを書き込みます。 RFCをさらに見ると、/var/log/syslog
が準拠していない方法がたくさんあることに気付くでしょう。セクション6の冒頭にある [〜#〜] abnf [〜#〜] を見てください-これは単にログファイルの行を記述しているのではありません(タイムスタンプがほぼ最初のアイテム!)。これは、送信用の serializing メッセージの構造化された形式です。