背景
在通过skywalking将日志收集到es后,由于skywalking收集的日志(skywalking_log索引)没有date类型的字段导致在es上再索引模式中没有时间范围的查询。
解决思路
skywalking收集的日志有时间戳字段timestamp,只是默认为long类型
于是我们可以通过提前定义字段类型为data来解决这个问题
以下解决方案均在Kibana中进行操作
注意将 下面所有的skywalking_log换成skywalking linux安装部署中oap配置的storage.elasticsearch7.nameSpace值例如skyw_log文章来源:https://www.toymoban.com/news/detail-556583.html
- oap配置
vim config/application.yml
storage:
selector: ${SW_STORAGE:elasticsearch7} # 我使用的是es将 h2 改为:elasticsearch7
...
elasticsearch7:
nameSpace: ${SW_NAMESPACE:"skyw"} # 存储在es中索引的前缀
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200} # 改为对应es的ip端口
- 设置日志删除策略
PUT _ilm/policy/skywalking_log_policy
{
"policy": {
"phases": {
"hot": {
"actions": {
"rollover": {
"max_size": "20GB",
"max_age": "30d"
},
"set_priority": {
"priority": 100
}
}
},
"delete": {
"min_age": "31d",
"actions": {
"delete": {}
}
}
}
}
}
- 创建索引模版 别名skywalking_log的创建是为了在skywalking后台日志上能直接查看
PUT _template/skywalking_log
{
"index_patterns": [
"skywalking_log*"
],
"aliases": {
"skywalking_log": {}
},
"settings": {
"index": {
"lifecycle": {
"name": "skywalking_log_policy",
"rollover_alias": "skywalking_log"
}
}
},
"mappings": {
"properties": {
"content": {
"type": "keyword",
"copy_to": [
"content_match"
]
},
"content_match": {
"type": "text"
},
"content_type": {
"type": "integer",
"index": false
},
"endpoint_id": {
"type": "keyword"
},
"endpoint_name": {
"type": "keyword",
"copy_to": [
"endpoint_name_match"
]
},
"endpoint_name_match": {
"type": "text"
},
"service_id": {
"type": "keyword"
},
"service_instance_id": {
"type": "keyword"
},
"span_id": {
"type": "integer"
},
"tags": {
"type": "keyword"
},
"tags_raw_data": {
"type": "binary"
},
"time_bucket": {
"type": "date",
"format": "yyyyMMddHHmmss"
},
"timestamp": {
"type": "date"
},
"trace_id": {
"type": "keyword"
},
"trace_segment_id": {
"type": "keyword"
},
"unique_id": {
"type": "keyword"
}
}
}
}
- 删除之前的skywalking_log_xxx(请保证该索引可以换呗删除,否则请自行备份)索引
这样在每天自动生成的索引skywalking_log_xxx就会使用上述模版来生成,timestamp会被设置成date类型。然后此时在–>索引管理–>kibana–>索引模式添加skywalking_log*索引时就会有时间字段了。文章来源地址https://www.toymoban.com/news/detail-556583.html
到了这里,关于skywalking日志落到es字段timestamp不为date问题解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!