Index名に設定している日付が9時間ずれている

お世話になります。

ingest nodeのdate_index_name processorを使用してindex名を設定しています。

以下のように、
投入データの@timestamp(UTC)からdate_index_nameにてtimezoneを"Asia/Tokyo"
に指定してindex名にyyyyMM(日本時間に合わせた年月)を設定したいです。

simulateを実行したところ、
投入データの"@timestamp" : "2020-03-31T16:00:00.000Z"なので、
日本時間の"2020/4/1 01:00:00"に変換され、index名が「2020-04」と設定されるのかと思ったのですが、「2020-03」が指定されました。

index名に設定する"MM"を日本時間で設定する場合、どのような方法で実施すれば良いかご教示をお願い致します。

POST /_ingest/pipeline/_simulate
{
  "pipeline": {
    "processors" : [
      {
        "date_index_name" : {
          "field" : "@timestamp",
          "index_name_prefix" : "aaa",
          "date_rounding" : "M",
          "index_name_format" : "yyyy-MM",
          "timezone" : "Asia/Tokyo" 
        }
      }    ]
    },
  "docs": [
    {
      "_index": "aaa",
      "_id": "id1",
      "_source": {
        "message": "bbb",
        "@timestamp": "2020-03-31T16:00:00.000Z" 
      }
    }
  ]
}

実行結果

{
  "docs" : [
    {
      "doc" : {
        "_index" : "<aaa{2020-03||/M{yyyy-MM|Asia/Tokyo}}>",
        "_type" : "_doc",
        "_id" : "id1",
        "_source" : {
          "@timestamp" : "2020-03-31T16:00:00.000Z",
          "message" : "bbb"
        },
        "_ingest" : {
          "timestamp" : "2020-05-14T00:10:57.023483Z"
        }
      }
    }
  ]
}

date processorで、@timestampの中にあるUTC時間を日本時間に変換してしまうと期待する動きになりそうです。

POST /_ingest/pipeline/_simulate
{
  "pipeline": {
    "processors": [
      {
        "date": {
          "field": "@timestamp",
          "formats": [  "ISO8601" ],
          "timezone": "Asia/Tokyo"
        }
      },
      {
        "date_index_name": {
          "field": "@timestamp",
          "date_formats": ["ISO8601"],
          "index_name_prefix": "aaa",
          "date_rounding": "M",
          "index_name_format": "yyyy-MM",
          "timezone": "Asia/Tokyo"
        }
      }
    ]
  },
  "docs": [
    {
      "_index": "aaa",
      "_id": "id1",
      "_source": {
        "message": "bbb",
        "@timestamp": "2020-03-31T16:00:00.000Z"
      }
    }
  ]
}

とすると、実行結果はこのようになりました。
MMの部分を見ますと、4月になっていますね。

{
  "docs" : [
    {
      "doc" : {
        "_index" : "<aaa{2020-04||/M{yyyy-MM|Asia/Tokyo}}>",
        "_type" : "_doc",
        "_id" : "id1",
        "_source" : {
          "@timestamp" : "2020-04-01T01:00:00.000+09:00",
          "message" : "bbb"
        },
        "_ingest" : {
          "timestamp" : "2020-05-14T14:14:57.114478Z"
        }
      }
    }
  ]
}

確認した環境: Elasticsearch, Kibana 7.7.0

上記で実現できました。

回答頂きありがとうございました。

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.