????????需求,日志收集的時(shí)候,時(shí)間格式是國際標(biāo)準(zhǔn)時(shí)間格式。形如yyyy-MM-dd'T'HH:mm:ss.SSS。 (2023-12-05T02:45:50.282Z)這個(gè)時(shí)區(qū)也不對(duì),那如何將此類型的時(shí)間,進(jìn)行格式化呢?
????????本篇文章體統(tǒng)一個(gè)案例,可以格式化各種類型的時(shí)間,已經(jīng)調(diào)整到各個(gè)時(shí)區(qū)。
先看效果
?如何做到?
????????這里使用了es的 pipeline 來轉(zhuǎn)換數(shù)據(jù)。因?yàn)槿罩臼莃eat收集的,如果使用logstash收集日志,則可以在logstash上進(jìn)行修改。這里并不需要引入新的技術(shù),已經(jīng)引入更多的資源開銷。實(shí)際上logstash的資源開銷還是很大的。固這里使用?pipeline 的方式。
添加一個(gè) pipeline 管道
PUT _ingest/pipeline/angus_test_pipeline
{
"description": "日期格式化示例",
"processors": [
{
# 用到管道的時(shí)間處理
"date": {
# 要轉(zhuǎn)換的字段。
"field": "crawler_time",
# 轉(zhuǎn)換后的字段,這里是可以將字段轉(zhuǎn)到另外一個(gè)字段上,也可以轉(zhuǎn)回當(dāng)前字段。
"target_field": "crawler_time",
# 注意這里是輸入時(shí)間的格式,可以填多個(gè)。因?yàn)槭菢?biāo)準(zhǔn)時(shí)間,所以指定了ISO8601。這里一定要知道自己輸入的時(shí)間格式,然后配置到這里。
"formats": [
"ISO8601"
],
# 這里是輸出字段的時(shí)間格式。然后會(huì)進(jìn)行格式化。
"output_format": "yyyy-MM-dd HH:mm:ss",
# 如果想要調(diào)整時(shí)區(qū),在這里修正時(shí)區(qū)。注意這是輸出時(shí)間的時(shí)區(qū)。
"timezone": "Asia/Shanghai"
}
}
]
}
創(chuàng)建索引,指定默認(rèn)的管道
這里只用了最見到的配置,為了測(cè)試好演示。其它配置都是默認(rèn)的。
PUT angus_temp
{
"mappings": {
"properties": {
"crawler_time": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
}
}
},
"settings": {
"index": {
"default_pipeline": "angus_test_pipeline"
}
}
}
添加一條時(shí)間測(cè)試
POST angus_temp/_doc/1
{
"crawler_time":"2023-12-05T02:45:50.282Z"
}
驗(yàn)證結(jié)果
GET angus_temp/_search
文章來源:http://www.zghlxwxcb.cn/news/detail-806193.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-806193.html
到了這里,關(guān)于ES 如何將國際標(biāo)準(zhǔn)時(shí)間格式進(jìn)行格式化與調(diào)整時(shí)區(qū)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!