背景
在通过skywalking将日志收集到es后,由于skywalking收集的日志(skywalking_log索引)没有date类型的字段导致在es上再索引模式中没有时间范围的查询。
解决思路
skywalking收集的日志有时间戳字段timestamp,只是默认为long类型
于是我们可以通过提前定义字段类型为data来解决这个问题
以下解决方案均在Kibana中进行操作
注意将 下面所有的skywalking_log换成skywalking linux安装部署中oap配置的storage.elasticsearch7.nameSpace值例如skyw_log
- 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://blog.csdn.net/kismet2399/article/details/131686945
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。