glogger_logdata

Name

glogger_logdata -- GLogger 出力データ形式

DESCRIPTION

GLogger が出力するファイルのデータ構造です。

ファイルのデータ構造

GLoggerの観測ログデータファイルは、メタデータブロックと データブロックグループの連続で構成されます。

メタデータブロックは、ファイルの先頭に 1つ存在します。

データブロックグループは、複数のデータブロックで構成されます。

データブロックは、時刻とその時刻の観測データ値の列です。

データブロックの出現順序と、観測事象の種類との関係は、 メタデータブロック内で対応を定義します。

データブロックグループのサイズは、固定長であり、 メタデータブロックで定義します。

たとえば 1時間単位でファイルを切り替えなければならないといった 制約はなく、最大サイズはファイルシステムに依存します。 (GLogger では、指定ファイルサイズで新しいファイルへ出力するように 切り替えることが可能です)

このデータ構造のログファイルに追記はできません。

メタデータブロック

固定長部分と可変長部分に分けています。

1: メタデータブロック 1        [24bytes]
2: メタデータブロック 2        [ 可変長]

メタデータブロック 1

1: メタデータブロック 1 のサイズ(以下何bytes続くか)   [ 2bytes]
2: バージョン番号                                     [ 2bytes]
3: データブロックグループのサイズ                     [ 4bytes]
4: このファイルの計測開始日時(UNIX time 秒)           [ 4bytes]
5: このファイルの計測開始日時(UNIX time マイクロ秒)   [ 4bytes]
6: データブロックグループひとつの時間間隔(秒)         [ 4bytes]
7: データブロックグループひとつの時間間隔(マイクロ秒) [ 4bytes]
8: 予約領域

メタデータブロック 2

1: メタデータブロック 2 のサイズ(以下何bytes続くか)   [ 4bytes]
2: 観測対象ホスト定義部分
   計測対象ホストの IP アドレスリストと
   ホスト名 (FQDN)と略称のリストとコミュニティストリング
   →並び順にインデックス番号(1,2,...)                [ 可変長]
3: OID 定義部分
   OID と OID 名と OID 略称と
   →並び順に OID インデックス番号(1,2,...)           [ 可変長]
4: 測定インターバル表
   上で定義したホストインデックス番号と
   OID インデックス番号の組合せごとの
   測定インターバル(秒+マイクロ秒)                    [ 可変長]
5: データブロックグループ対応表                       [ 可変長]
6: 予約領域                                           [ 可変長] 

[可変長]は、サイズを2bytesで表して先頭に付加し、以降任意データが続きます。 この2bytes自身のサイズは含まれません。

ホスト定義部分: {IPアドレス(文字列)}{NULL}{FQDN}{NULL}{略称}{NULL}{community string}{NULL} の繰り返しです。IPアドレス部分は 192.168.0.1 のような表記です。

OID定義部分: {OID名(設定ファイルで指定した文字列)}{NULL}{略称}{NULL} の繰り返しです。

測定インターバル表: {ホストインデックス番号}{OIDインデックス番号}{時間(8bytes)} の繰り返しです。 時間は秒が 4bytes, マイクロ秒が 4bytesの順で合計 8bytes です。

データブロックグループ対応表: {個数(n個) 2bytes}{(ホストインデックス番号 + OIDインデックス番号) * n} の繰り返しです。 1つのデータブロックグループ内のデータブロックの出現順序を 定義した表になっています。 個数は、対応するデータブロック内のデータの個数(ホストインデックス番号と OIDインデックス番号の組あわせの個数)を示します。 個数が 0の場合、そのタイミングではデータブロックが出現しない (時刻データすら出現しない)ことを示し、対応するデータブロックは存在しません。

インデックス番号は、2bytes = 0〜65535 です。

データブロックグループ

データブロックグループ対応表の順番に、データブロックが続きます。 すべてのデータブロックの種類の出現パターン 1周期を示します。 (データブロックには、同時刻の計測データがまとめられています。) この論理的にまとめた 1周期をデータブロックグループとしています。 よってデータブロックグループと次のデータブロックグループの間には、 区切りのためのデータは存在しません。

1: データブロック
2: 以下、データブロックの繰り返し

データブロック

同時刻の各測定値が一つにまとまったデータの組になっています。 計測データの無い時刻には、データブロックは出現しません (時刻データも出現しません)。

ひとつのデータブロックは可変長ですが、データブロックグループ対応表から、 サイズが決定できます。 ひとつのデータブロックサイズ = 時刻データ 8bytes + 計測データの個数(n個) * 5bytes となっています。 計測データが無い時刻のデータブロックは存在しません。

1: このデータブロックの計測時刻(UNIX time 秒)         [ 4bytes]
2: このデータブロックの計測時刻(UNIX time マイクロ秒) [ 4bytes]
3: 1番目の計測データフラグ                            [ 1bytes]
4: 1番目の計測データ                                  [ 4bytes]
5: 以下同一時刻の計測データフラグ、データの繰り返し
n: 予約領域

※ 例: 256 ノードの場合、合計 1288 バイト

データフラグの各ビットの意味(下位ビットから順に)
データ有効 1 無効 0 (タイムアウトの場合も有効)
測定成功   1 失敗 0 (タイムアウトは失敗)

SEE ALSO

glogger(8)