Logtail を使用してログを収集する場合、processor_gotime
または processor_strptime
プラグインを使用して、未加工ログのタイムフィールドを解析できます。このトピックでは、processor_gotime プラグインと processor_strptime プラグインのパラメーターについて説明し、プラグインを構成する方法の例を示します。
エントリポイント
Logtail プラグインを使用してログを処理する場合、Logtail 構成を作成または変更するときに Logtail プラグイン構成を追加できます。詳細については、「データ処理用の Logtail プラグインの概要」をご参照ください。
Go でサポートされている時間形式
processor_gotime
プラグインは、未加工ログのタイムフィールドを Go でサポートされている時間形式に解析します。新しい時間の値を、Simple Log Service で収集されたログのログ時間として構成できます。
Logtail V0.16.28 以降では、processor_gotime プラグインがサポートされています。
フォーム構成: テキストログまたはコンテナーの stdout および stderr を収集する場合、フォーム構成を使用してプラグインを追加できます。
JSON のエディター構成: テキストログを収集する場合、JSON のエディター構成を使用してプラグインを追加することはできません。
フォーム構成
パラメーター
[プロセッサの種類] パラメーターを [ログ時間の抽出 (Go 時間形式)] に設定します。
次に、次の表に基づいて他のパラメーターを構成します。
パラメーター
説明
[元のタイムフィールド]
元のフィールドの名前。
[元の時間形式]
元の時間形式。
[元のタイムゾーン]
[システムタイムゾーン] を保持すると、Logtail がインストールされているサーバーまたはコンテナーのタイムゾーンが使用されます。
[新しいタイムフィールド]
解析後に取得される新しいフィールドの名前。
[新しい時間形式]
解析後に取得される新しいフィールドの時間形式。
[カスタムの新しいタイムゾーン]
解析後に取得される新しいフィールドのタイムゾーン。[システムタイムゾーン] を保持すると、Logtail がインストールされているサーバーのタイムゾーンが使用されます。
[詳細パラメーター] > [ログ時間として使用する]
新しい時間の値をログ時間として使用するかどかを指定します。
[詳細パラメーター] > [元のフィールドを保持する]
解析後に取得される新しいログに元のフィールドを保持するかどかを指定します。
[詳細パラメーター] > [元のフィールドがないエラーを報告する]
未加工ログに元のフィールドが含まれていない場合にエラーを報告するかどかを指定します。
[詳細パラメーター] > [抽出失敗エラーを報告する]
ログ時間の抽出に失敗した場合にエラーを報告するかどかを指定します。
例
元のタイムフィールドは
s_key
で、フィールド値は2006-01-02 15:04:05 (UTC+8)
形式です。元の時間の値は2006/01/02 15:04:05 (UTC+9)
形式に解析されます。新しい時間の値はd_key
フィールドに格納され、Simple Log Service でログ時間として使用されます。未加工ログ
"s_key":"2022-07-05 19:28:01"
データ処理用の Logtail プラグイン構成
処理結果
"s_key":"2022-07-05 19:28:01" "d_key":"2022/07/05 20:28:01"
JSON のエディター構成
パラメーター
type パラメーターを processor_gotime に設定します。次に、次の表に基づいて detail セクションの他のパラメーターを構成します。
パラメーター
タイプ
必須
説明
SourceKey
文字列
はい
元のフィールドの名前。
SourceFormat
文字列
はい
元の時間形式。
SourceLocation
整数
はい
元のタイムゾーン。このパラメーターが空の場合、Logtail がインストールされているサーバーまたはコンテナーのタイムゾーンが使用されます。
DestKey
文字列
はい
解析後に取得される新しいフィールドの名前。
DestFormat
文字列
はい
解析後に取得される新しいフィールドの時間形式。
DestLocation
整数
いいえ
解析後に取得される新しいフィールドのタイムゾーン。このパラメーターが空の場合、Logtail がインストールされているサーバーのタイムゾーンが使用されます。
SetTime
ブール値
いいえ
新しい時間の値をログ時間として使用するかどかを指定します。有効な値:
true (デフォルト)
false
KeepSource
ブール値
いいえ
解析後に取得される新しいログに元のフィールドを保持するかどかを指定します。有効な値:
true (デフォルト)
false
NoKeyError
ブール値
いいえ
未加工ログに元のフィールドが含まれていない場合にエラーを報告するかどかを指定します。有効な値:
true (デフォルト)
false
AlarmIfFail
ブール値
いいえ
ログ時間の抽出に失敗した場合にエラーを報告するかどかを指定します。有効な値:
true (デフォルト)
false
例
元のタイムフィールドは s_key で、フィールド値は
2006-01-02 15:04:05 (UTC+8)
形式です。元の時間の値は2006/01/02 15:04:05 (UTC+9)
形式に解析されます。新しい時間の値は d_key フィールドに格納され、Simple Log Service でログ時間として使用されます。未加工ログ
"s_key":"2019-07-05 19:28:01"
データ処理用の Logtail プラグイン構成
{ /* ログ処理用のLogtailプラグイン設定 */ "processors":[ { "type":"processor_gotime", /* processor_gotimeプラグインを使用 */ "detail": { "SourceKey": "s_key", /* 元のタイムフィールド名 */ "SourceFormat":"2006-01-02 15:04:05", /* 元の時間フォーマット */ "SourceLocation":8, /* 元のタイムゾーン(UTC+8) */ "DestKey":"d_key", /* 新しいタイムフィールド名 */ "DestFormat":"2006/01/02 15:04:05", /* 新しい時間フォーマット */ "DestLocation":9, /* 新しいタイムゾーン(UTC+9) */ "SetTime": true, /* 新しい時間の値をログ時間として使用 */ "KeepSource": true, /* 元のフィールドを保持 */ "NoKeyError": true, /* 元のフィールドがない場合にエラーを報告 */ "AlarmIfFail": true /* 抽出に失敗した場合にエラーを報告 */ } } ] }
処理結果
"s_key":"2019-07-05 19:28:01" "d_key":"2019/07/05 20:28:01"
strptime でサポートされている時間形式
processor_strptime
プラグインは、未加工ログのタイムフィールドを strptime でサポートされている時間形式に解析します。新しい時間の値を、Simple Log Service で収集されたログのログ時間として構成できます。時間形式の詳細については、「strptime(3) — Linux マニュアルページ」をご参照ください。
Logtail V0.16.28 以降では、processor_strptime プラグインがサポートされています。
フォーム構成
パラメーター
[プロセッサの種類] パラメーターを [ログ時間の抽出 (strptime 時間形式)] に設定します。次に、次の表に基づいて他のパラメーターを構成します。
パラメーター
説明
[元のフィールド]
元のフィールドの名前。
[元の時間形式]
元の時間形式。
[元のフィールドを保持する]
解析後に取得される新しいログに元のフィールドを保持するかどかを指定します。
[抽出失敗エラーを報告する]
ログ時間の抽出に失敗した場合にエラーを報告するかどかを指定します。
[時間オフセットを使用する]
時間オフセットを構成するかどかを指定します。
[時間オフセット]
タイムゾーンのオフセット。単位: 秒。たとえば、値 28800 は UTC + 08:00 を指定し、値 -3600 は UTC-1 を指定します。
例
元のタイムフィールドは
log_time
で、フィールド値は%Y/%m/%d %H:%M:%S
形式です。元の時間の値は、Logtail がインストールされているサーバーのタイムゾーンを使用するログ時間として解析されます。この例では、タイムゾーンは UTC + 08:00 です。未加工ログ
"log_time":"2022/01/02 12:59:59"
データ処理用の Logtail プラグイン構成
処理結果
"log_time":"2022/01/02 12:59:59" Log.Time = 1451710799
一般的な時間表現
説明processor_strptime
プラグインは、時間の値を %f 形式に解析できます。%f は秒の小数部分です。processor_strptime プラグインでサポートされている最高精度はナノ秒です。例
時間表現
2016/01/02 12:59:59
%Y/%m/%d %H:%M:%S
2016/01/02 12:59:59.1
%Y/%m/%d %H:%M:%S.%f
2016/01/02 12:59:59.987654321 +0700 (UTC)
%Y/%m/%d %H:%M:%S.%f %z (%Z)
2016/Jan/02 12:59:59,123456
%Y/%b/%d %H:%M:%S,%f
2019-07-15T04:16:47:123Z
%Y-%m-%dT%H:%M:%S:%f
JSON のエディター構成
パラメーター
type パラメーターを processor_strptime に設定します。次に、次の表に基づいて detail セクションの他のパラメーターを構成します。
パラメーター
タイプ
必須
説明
SourceKey
文字列
はい
元のフィールドの名前。
Format
文字列
はい
元の時間形式。
AdjustUTCOffset
ブール値
いいえ
タイムゾーンを変更するかどかを指定します。有効な値:
true
false (デフォルト)
UTCOffset
整数
いいえ
タイムゾーンのオフセット。単位: 秒。たとえば、値 28800 は UTC + 08:00 を指定します。
AlarmIfFail
ブール値
いいえ
ログ時間の抽出に失敗した場合にエラーを報告するかどかを指定します。有効な値:
true (デフォルト)
false
KeepSource
ブール値
いいえ
解析後に取得される新しいログに元のフィールドを保持するかどかを指定します。有効な値:
true (デフォルト)
false
EnablePreciseTimestamp
ブール値
いいえ
高精度で時間の値を抽出するかどかを指定します。有効な値:
true
false (デフォルト)
このパラメーターを true に設定すると、processor_strptime プラグインは SourceKey で指定されたタイムフィールドの値をミリ秒精度のタイムスタンプに解析し、PreciseTimestampKey で指定されたフィールドにタイムスタンプを保存します。
重要このパラメーターを true に設定する前に、SourceKey で指定されたタイムフィールドの値が必要な時間精度 (ms、us、または ns) を使用していることを確認してください。
Logtail V1.0.32 以降のバージョンでのみサポートされています。
PreciseTimestampKey
文字列
いいえ
高精度タイムスタンプを保存するフィールド。デフォルト値: precise_timestamp。
PreciseTimestampUnit
文字列
いいえ
高精度タイムスタンプの単位。デフォルト値: ms。有効な値: ms、us、および ns。
例
元のタイムフィールドは log_time で、フィールド値は
%Y/%m/%d %H:%M:%S
形式です。元の時間の値は、Logtail サーバーのタイムゾーンを使用するログ時間として解析されます。例 1: タイムゾーンは UTC + 08:00 です。
未加工ログ
"log_time":"2016/01/02 12:59:59"
データ処理用の Logtail プラグイン構成
{ /* データ処理用のLogtailプラグイン設定 */ "processors":[ /* プロセッサ設定 */ { "type":"processor_strptime", /* processor_strptimeプラグインを使用 */ "detail": { /* 詳細設定 */ "SourceKey": "log_time", /* 元のタイムフィールド名 */ "Format": "%Y/%m/%d %H:%M:%S" /* 元の時間フォーマット */ } } ] }
処理結果
"log_time":"2016/01/02 12:59:59" Log.Time = 1451710799
例 2: タイムゾーンは UTC + 07:00 です。
未加工ログ
"log_time":"2016/01/02 12:59:59"
データ処理用の Logtail プラグイン構成
{ /* データ処理用のLogtailプラグイン設定 */ "processors":[ { "type":"processor_strptime", /* processor_strptimeプラグインを使用 */ "detail": { "SourceKey": "log_time", /* 元のタイムフィールド名 */ "Format": "%Y/%m/%d %H:%M:%S", /* 元の時間フォーマット */ "AdjustUTCOffset": true, /* タイムゾーンを変更する */ "UTCOffset": 25200 /* タイムゾーンのオフセット(UTC+7) */ } } ] }
処理結果
"log_time":"2016/01/02 12:59:59" Log.Time = 1451714399
例 3: タイムゾーンは UTC + 7 です。
未加工ログ
"log_time":"2016/01/02 12:59:59.123"
データ処理用の Logtail プラグイン構成
{ "processors":[ { "type":"processor_strptime", "detail": { "SourceKey": "log_time", "Format": "%Y/%m/%d %H:%M:%S.%f", "EnablePreciseTimestamp": true /* 高精度タイムスタンプを有効にする */ } } ] }
処理結果
"log_time":"2016/01/02 12:59:59.123" "precise_timestamp": 1451714399123 Log.Time = 1451714399
一般的な時間表現
説明processor_strptime プラグインは、時間の値を %f 形式に解析できます。%f は秒の小数部分です。processor_strptime プラグインでサポートされている最高精度はナノ秒です。
例
時間表現
2016/01/02 12:59:59
%Y/%m/%d %H:%M:%S
2016/01/02 12:59:59.1
%Y/%m/%d %H:%M:%S.%f
2016/01/02 12:59:59.987654321 +0700 (UTC)
%Y/%m/%d %H:%M:%S.%f %z (%Z)
2016/Jan/02 12:59:59,123456
%Y/%b/%d %H:%M:%S,%f
2019-07-15T04:16:47:123Z
%Y-%m-%dT%H:%M:%S:%f