7. 構造化データ ID
本書は timeQuality、origin、および meta の 3 つの SD-ID を定義する。他の SD-ID は別の文書で定義される場合がある。
7.1. timeQuality
SD-ID "timeQuality" は、originator が自身のシステム時刻の認識を記述するために使用してよい(MAY)。originator が信頼できる外部時刻源と適切に同期していない場合、またはタイムゾーンオフセットが正しいかどうか不明な場合は、この SD-ID を書き込むべきである(SHOULD)。これは、TIMESTAMP が正しくない可能性があることを collector または relay に示す。
この SD-ID のパラメータは次のとおりである。
7.1.1. tzKnown
パラメータ "tzKnown" は、originator が自身のタイムゾーンを知っているかを示すために使用してよい(MAY)。これは 1 文字を含む PARAM-VALUE であり、タイムゾーン情報が不明なら "0"、既知なら "1" である。このパラメータがないか "0" に設定されている場合、originator は自身のタイムゾーンを知らない。"1" の場合、originator が認識するタイムゾーンオフセットは TIMESTAMP に含まれる。
7.1.2. isSynced
パラメータ "isSynced" は、originator のローカルクロックが、たとえば Network Time Protocol [RFC5905] を介して信頼できる時刻源と同期しているかを示すために使用してよい(MAY)。これは 1 文字を含む PARAM-VALUE であり、同期していなければ "0"、同期していれば "1" である。このパラメータが存在しない場合、originator は自身のローカルクロックが同期しているかを知らない。
7.1.3. syncAccuracy
パラメータ "syncAccuracy" は、originator が認識するシステム時刻の精度を示すために使用してよい(MAY)。これは、権威ある時刻源からの最大オフセットをマイクロ秒単位で示す整数を含む PARAM-VALUE である。値 "60000000" は 1 分の精度を、"2000" は 2 ミリ秒を示す。この数値は予想される最大誤差を表す。クロックを同期する頻度に関する知識から導出してよい。これは任意である(OPTIONAL)。
パラメータがない場合、権威ある時刻源からの最大偏差は不明である。
7.1.4. 例
例 1
[timeQuality tzKnown="1" isSynced="1" syncAccuracy="60000"]
この STRUCTURED-DATA は、originator が権威ある時刻源と同期していることを示す。originator は、提供する時刻情報が 60 ミリ秒以内で正確であると考えている。originator は自身のタイムゾーンを知っている。
例 2
[timeQuality tzKnown="1" isSynced="0"]
この STRUCTURED-DATA は、originator が権威ある時刻源と同期していないことを示す。ただし、自身のタイムゾーンオフセットは知っている。
例 3
[timeQuality tzKnown="0" isSynced="1" syncAccuracy="60000"]
この STRUCTURED-DATA は、originator が権威ある時刻源と同期しているが、自身のタイムゾーンオフセットを知らないことを示す。
7.2. origin
SD-ID "origin" は、originator、relay、または collector が自身の識別情報およびエンクレーブ境界を示すために使用してよい(MAY)。この SD-ID は連鎖されることを意図しており、追加する各 relay または collector は、すでに存在するものに自身の情報を追加できる。
この SD-ID のパラメータは次のとおりである。
7.2.1. ip
パラメータ "ip" は、メッセージを生成したデバイスを識別するために使用してよい(MAY)。値は 6.2.4 節で説明した形式の有効な IP アドレスである。匿名化されたアドレスは有用なトラブルシューティング情報を提供しないため、送信するべきではない(SHOULD NOT)。同様に匿名化された他のデバイスとの衝突を引き起こす可能性もある。匿名化が必要な場合は、代わりに relay または collector でメッセージを匿名化するべきである。
7.2.2. enterpriseId
パラメータ "enterpriseId" は、IANA が維持する、プレフィックス iso.org.dod.internet.private.enterprise(1.3.6.1.4.1)を持つ「SMI Network Management Private Enterprise Code」でなければならない(MUST)。後に続く番号は一意でなければならず(MUST)、[RFC5226] に従って IANA に登録しなければならない(MUST)。このパラメータの存在は originator の種類を識別する。originator はこのパラメータを含めるべきである(SHOULD)。
メッセージの意味を大幅に変更する場合、relay はこのパラメータを含めるべきである(SHOULD)。特に、非 syslog プロトコルから syslog へメッセージを変換する relay は、このパラメータを含めるべきである(SHOULD)。
このパラメータを持つメッセージを読むとき、人間の利用者は、IANA の「SMI Network Management Private Enterprise Codes」の登録情報を参照して、メッセージ生成器を作成した組織を調べることができる。
7.2.3. software
パラメータ "software" は、メッセージを生成したソフトウェア製品を識別するために使用する。製品名を含むべきである(SHOULD)が、他の情報を含んでもよい(MAY)。relay はこのパラメータを変更するべきではない(SHOULD NOT)。
7.2.4. swVersion
パラメータ "swVersion" は、メッセージを生成したソフトウェア製品のバージョンを識別するために使用する。relay はこのパラメータを変更するべきではない(SHOULD NOT)。
7.2.5. 例
[origin ip="192.0.2.1" enterpriseId="32473" software="su" swVersion="1.2.3"]
この例では、メッセージを生成したソフトウェア製品は、プライベート企業番号 32473 を持つ "su"、バージョン "1.2.3" として識別される。メッセージを生成したデバイスの IP アドレスは 192.0.2.1 である。
7.3. meta
SD-ID "meta" は、メッセージに関するメタ情報を提供するために使用してよい(MAY)。これは、サービス品質情報など、メッセージを分類または強化することが望ましいさまざまな目的に使用できる。
この SD-ID のパラメータは次のとおりである。
7.3.1. sequenceId
パラメータ "sequenceId" は、メッセージを識別する一意のシーケンス番号を提供するために使用するべきである(SHOULD)。このシーケンス番号は、メッセージの消失を検出したり、順序を保証したりするために使用できる。シーケンス ID は単調増加するべきである(SHOULD)。この正確なアルゴリズムは実装固有である。この PARAM-VALUE は 1 つ以上の 10 進整数であるべきである(SHOULD)。送信者が再起動した場合は、折り返すか先頭から開始してよい(MAY)。
7.3.2. sysUpTime
パラメータ "sysUpTime" は、システムが稼働している期間に関する情報を提供するために使用してよい(MAY)。送信者が再起動する場合、これはゼロにリセットするべきである(SHOULD)。特定のデバイス実行とのメッセージ列の関連付けに役立つ場合がある。このパラメータの値は、システム起動以降の秒数を数える 10 進整数である。
7.3.3. language
パラメータ "language" は、MSG 部で使用される言語を指定するために使用する。この PARAM-VALUE は、[RFC5646] で定義される言語タグでなければならない(MUST)。
MSG の言語が不明、または識別できない場合は、このパラメータを使用するべきではない(SHOULD NOT)。