Мы пытаемся найти способ преобразования метки времени, полученной из AWS WAF / Kinesis Firehose, в Elasticsearch, чтобы его тип был полем даты.Когда создается индексное отображение, у него есть поле отметки времени, но оно имеет тип long
, хотя, кажется, существует опция для типа epoch_millis
(именно таковы данные).
Интерфейс Kibanaговорит, что используя API сопоставления для изменения типа поля, но я не могу понять это.Пример здесь показывает, как это сделать при создании новых индексов, но kinesis создает / вращает индексы, поэтому нам, похоже, нужен способ изменить значение по умолчанию.
Поле выглядит следующим образом
"timestamp": {
"type": "long"
},
и полное определение индекса выглядит следующим образом, но опять-таки они создаются регулярно, поэтому мы пытаемся выяснить, как изменить значение по умолчанию
"waf-prod-2018-10-05": {
"mappings": {
"waf-prod": {
"properties": {
"action": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"formatVersion": {
"type": "long"
},
"httpRequest": {
"properties": {
"args": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"clientIp": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"country": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"headers": {
"properties": {
"name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"value": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
},
"httpMethod": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"httpVersion": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"uri": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
},
"httpSourceId": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"httpSourceName": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"nonTerminatingMatchingRules": {
"properties": {
"action": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"ruleId": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
},
"rateBasedRuleList": {
"properties": {
"limitKey": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"maxRateAllowed": {
"type": "long"
},
"rateBasedRuleId": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
},
"terminatingRuleId": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"terminatingRuleType": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"timestamp": {
"type": "long"
},
"webaclId": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
},