全部产品
Search
文档中心

日志服务:目标Logstore输出错误的原因和排查方法

更新时间:May 21, 2024

本文档为您介绍数据加工服务进行数据加工后,将加工结果写入目标Logstore产生错误的常见原因和排查处理方法。

工作原理

日志事件被加工完之后,会被输出到预先配置好的目标Logstore中。LOG DSL引擎每次读取一个批次的源日志(从1条到近万条不等),数据加工后,并不是加工一条日志就输出一条,而是会先将加工好的数据存放在一个缓存池中,等源数据批次处理完,再一起输出。目标Logstore输出错误

该环节产生错误主要是由于对目标Logstore的访问异常。可能的异常原因为:

  • 目标Logstore信息配置错误。

  • 目标Logstore信息发生变化。

  • 网络错误。

错误影响:

  • 在输出到目标Logstore产生错误时,加工任务会一直重试,直到重试成功或被手动停止。如果重试成功,加工任务会继续正常工作,不会产生日志的丢失和冗余。

  • 如果已经输出了部分数据后才报错,例如配置了两个输出目标,一个目标成功,另外一个目标失败。会保存断点并一直重试,重试成功后,不会有数据的丢失与冗余。如果这时停止加工任务再重新启动时,会从断点继续,不会有数据丢失,但可能会有冗余的数据。

常见错误排查

目标Logstore配置了非法的AccessKey。

非法的AccessKey主要分为两种:非法的AccessKeyId和非法的AccessKeySecret。

  • 错误日志:

    #非法的AccessKeyId
    {
      "errorCode": "Unauthorized", 
      "errorMessage": "AccessKeyId not found: LTAIL3gUus8A****"
    }
    #非法的AccessKeySecret
    { 
      "errorCode": "SignatureNotMatch", 
      "errorMessage": "signature uJfAJbc0ji04gb+cXhh0qWt****= not match"
    }
  • 排查方法:

    检查任务配置项,查看对应的目标Logstore的AccessKeyID和AccessKeySecret是否存在且正确。

目标Project不存在

  • 错误日志:

    {
      "errorCode": "ProjectNotExist", 
      "errorMessage": "The Project does not exist : your_project_name"
    }
  • 原因分析:

    错误日志提示Project does not exist有三种可能的原因:

    • 任务配置项中的目标Project名称输入错误。

    • 目标Project名称输入正确,但是在加工任务过程中,对应的Project被删除。

  • 排查方法:

    • 检查任务配置项中的目标Project名称是否输入有误。

    • 检查目标Project是否被删除。

  • 输出目标不存在。

    加工规则样例:

    e_coutput("target1")
    • 错误日志:

      {
        "errorMessage": "transform_data: output target target1 is not found in configurations"
      }
    • 原因分析:

      上述LOG DSL规则将日志事件输出到target1中,而错误日志提示target1 is not found in configurations,说明该加工规则的配置中并没有定义和target1关联的目标Project和Logstore。

    • 排查方法:

      检查LOG DSL规则的配置项,确保配置项中定义了加工规则中涉及到的所有存储目标。

目标Logstore信息发生变化

  • 原因分析:

    用户配置了正确的目标Logstore信息,可能也已经进行了部分加工任务。但是在数据加工的过程中,目标Logstore信息发生了变化,导致原有的配置信息无法访问目标Logstore。

  • 错误日志:

    目标Logstore信息发生变化有主要是如下两种情况:

    • 目标Logstore被删除。

      {
        "errorMessage": "Logstore [logstore_name] does not exist."
      }
    • 目标Logstore的AccessKey信息发生变化。

      #非法的AccessKeyId
      {
        "errorCode": "Unauthorized", 
        "errorMessage": "AccessKeyId not found: LTAIL3gUus8A****"
      }
      #非法的AccessKeySecret
      { 
        "errorCode": "SignatureNotMatch", 
        "errorMessage": "signature uJfAJbc0ji04gb+cXhh0qWt****= not match"
      }
  • 排查方法:

    • 检查目标Logstore是否被删除。

    • 检查目标Logstore的AccessKey信息是否发生改变。

  • 网络错误。

    • 错误日志:

      {
        "errorCode": "LogRequestError",
        "errorMessage": "HTTPConnectionPool(host='your_host', port=80): Max retries exceeded with url: your_url (Caused by NewConnectionError: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'"
      }
    • 排查方法:

      检查网络连接是否正常。