skywalking日志落到es字段timestamp不为date问题解决

这篇具有很好参考价值的文章主要介绍了skywalking日志落到es字段timestamp不为date问题解决。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

在通过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://www.toymoban.com/news/detail-556583.html

到了这里,关于skywalking日志落到es字段timestamp不为date问题解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Impala时间转换to_date、to_timestamp

    在时间的运算上,也常常使用到日期格式的转换,如日期字符串转为日期型,日期转为格式化字符串,是两种常见的需求;另外也有需要将时间转为时间戳的场景等等; 时间数据的转换上,主要用 to_date、to_timestamp ,即可满足日期字符串转为日期型的需求; from_timestamp、fr

    2023年04月25日
    浏览(37)
  • java中日期转换Date、DateTime、TimeStamp、String之间相互转换

    1.1Date-String 2.1Date-TimeStamp 2.2TimeStamp-Date DateTime使用依赖 3.1Date-DateTime 方法1: 方法2: 3.2DateTime-Date 4.String转DateTime

    2024年02月15日
    浏览(58)
  • MySQL DTAETIME、TIMESTAMP、DATE、TIME、YEAR(日期和时间类型)

    MySQL 中有多处表示日期的数据类型: YEAR 、 TIME 、 DATE 、 DTAETIME 、 TIMESTAMP 。当只记录年信息的时候,可以只使用 YEAR 类型。 每一个类型都有合法的取值范围,当指定确定不合法的值时,系统将“零”值插入数据库中。 下表中列出了 MySQL 中的日期与时间类型。 类型名称 日

    2023年04月14日
    浏览(44)
  • Timestamp字段, 后端如何接收

            表字段          如果前端传 “ yyyy-MM-dd ”格式时间到后台,后台以 @requestBody + 对象 的方式接收,可以接收到,并自动补位0,比如:“ yyyy-MM-dd 00:00:00 ”;如果用 @requestParam(或者不加注解) + 对象 的方式接收,将会报错,有文章说用 @DateTimeFormat 可以处理

    2023年04月08日
    浏览(44)
  • 22.oracle中日期类型 to_date 和to_timestamp什么区别

    1、to_date() 和to_timestamp()区别 由于oracle中date类型只支持到秒,不支持到毫秒,所以to_date()不能取到毫秒。如果要取到毫秒,oracle 9i以上版本,可以使用timestamp类型, timestamp是date的扩展类型,能支持到毫秒,毫秒的显示精度是6位,不过有效位是3位,即最大值达到999,满1000m

    2024年02月02日
    浏览(31)
  • kibana中ES修改某个字段类型问题

     近日,发现同步数据到es的时候,有个新建的索引动态适配了mapping,而往往这种会有字段类型不是我们想要的,比如我这就有个tid字段,此字段要在聚合操作中使用,而此时的tid被识别成text类型了,而text不支持聚合,所以要更改字段类型为long或者keyword,注意es 不支持直接

    2024年02月08日
    浏览(52)
  • 【hive】时间相关函数的使用(时间戳函数unix_timestamp()/from_unixtime()、日期处理函数datediff()/date_sub()/date_add()等)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 unix_timestamp() 无参数调用,获取当前系统时间戳为10位的bigint类型数值,该数值只精确到秒。 unix_timestamp(string timestamp) 输入格式默认为“yyyy-MM-dd HH:mm:ss”,如不符合则返回null。 unix_timestamp(string date,str

    2024年02月08日
    浏览(42)
  • logstash报错es接收不了日志解决问题

    发现es不收日志logstash日志报错 [INFO ][logstash.outputs.elasticsearch] retrying failed action with response code: 403 ({“type”=“cluster_block_exception”, “reason”=“blocked by: [FORBIDDEN/12/index read-only / allow delete (a 在这里插入代码片 pi)];”}) 解决办法: 在es命令行输入: curl -XPUT -H ‘Content-Type: appli

    2024年02月13日
    浏览(38)
  • Spring Cloud【SkyWalking日志、SkyWalking告警 、Skywalking自定义告警规则】(十五)

      目录 分布式请求链路追踪_SkyWalking日志 分布式请求链路追踪_SkyWalking告警 

    2024年02月14日
    浏览(39)
  • logstash毫秒时间戳转日期以及使用业务日志时间戳替换原始@timestamp

    在使用Kibana观察日志排查问题时发现存在很多组的@timestamp 数据一样,如下所示 详细观察内部数据发现其中日志数据有一个timestamp字段保存的是业务日志的毫秒级时间戳,经过和@timestamp数据对比发现二者的时间不匹配。经过分析得知@timestamp是按照logstash插入es数据的时间来排

    2023年04月11日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包