splunk

Splunkコマンド 「strptime」「strftime」

更新日:

「strptime」「strftime」はdate/timeフィールドをUNIX時間←→UTC(いわゆる普通の日時)に変換するコマンドです。

よく使うのですが、記述方法を毎回忘れるので、Memoを兼ねてシェアします。

サンプルコード

準備

まずは、now()関数で、UNIX時間を取得します。

| makeresults
| eval unixtime = now()

UNIX時間が取得されました。

strftime (UNIX時間 → UTC)

これをUTC(いわゆる普通の日時)に変換します。「strftime」コマンドを使います。

| makeresults
| eval unixtime = now()
| eval utc_DateTime = strftime(unixtime,"%Y-%m-%d %H:%M:%S")

UTCに変換されました。

変換後のフォーマットは指定可能です。

| makeresults
| eval unixtime = now()
| eval utc_DateTime = strftime(unixtime,"%Y-%m-%d %H:%M:%S")
| eval utc_Date = strftime(unixtime,"%Y-%m-%d")

日付操作

例えば、2日前などの日付の操作も可能です。

| makeresults
| eval unixtime = now()
| eval utc_DateTime = strftime(unixtime,"%Y-%m-%d %H:%M:%S")
| eval utc_Date = strftime(unixtime -(3600*24*2),"%Y-%m-%d")

「(3600 * 24 * 2)」= 「1時間あたりの秒 × 時間 × 日数」となっていて、2日前の日付を取得しています。減算ではなく、加算すれば未来日も計算できます。

strptime (UTC → UNIX時間)

UTC→UNIX時間は「strptime」コマンドを使います。

| makeresults
| eval unixtime = now()
| eval utc_DateTime = strftime(unixtime,"%Y-%m-%d %H:%M:%S")
| eval unix_DateTime = strptime(utc_DateTime,"%Y-%m-%d %H:%M:%S")

「UNIX時間→UTC→UNIX時間」と変換されています。strptimeの場合は、変換前のフォーマットを引数に設定します。

まとめ

splunkはpythonと親和性が高いので、pythonと同じ記述ですね。







-splunk
-

Copyright© Tech Log , 2020 All Rights Reserved Powered by STINGER.