GLOGGER_LOGDATA(5)

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)