全部產品
Search
文件中心

Simple Log Service:擷取Logstore資料(維表)錯誤

更新時間:Aug 27, 2024

如果加工規則中涉及其他Logstore資源的載入,則有可能會產生資源的載入或重新整理錯誤。本文檔主要介紹從其他Logstore擷取資料的常見錯誤以及排查處理方法。

在成功讀取源Logstore資料後,加工引擎開始對源Logstore的日誌事件進行加工。如果加工規則中涉及OSS、RDS、Logstore等外聯資源的載入,則也有可能會產生資源的載入或重新整理錯誤。

錯誤影響:

  • 在日誌事件加工階段,與加工規則衝突的日誌事件會引發報錯,並被丟棄,加工後的輸出結果中將不包含這些日誌事件。

  • 加工任務會丟棄與加工規則衝突的日誌事件,並繼續加工其他的日誌事件,不會重試。

  • 如果多條事件分裂自同一條事件,只要其中有一條事件出錯被丟棄,所有和該事件分裂自同一條源事件的其他事件也都會被丟棄。

    說明

    在輸出之前,這些事件都是以樹結構互相關聯,並不是互相獨立。

缺少必填的參數

  • 加工規則

    e_table_map(res_log_logstore_pull(endpoint="cn-shenzhen.log.aliyuncs.com",ak_id="xxx",
            ak_secret="xxx",project="etl-test-shenzhen",
            fields=["__source__"]),field="processid",output_fields=["__source__"])
  • 錯誤記錄檔

    error when calling : res_log_logstore_pull\nDetail: res_log_logstore_pull() missing 1 required positional argument: 'logstore'", "requestId": "
  • 排查方法

    缺少了必要的參數logstore,出現missing 1 required positional argument錯誤資訊的時候,表示缺少了必要的參數,請排查是否出現參數未填寫的報錯。

  • 解決方案

    重新設定編排文法,配置缺少的參數。

設定主鍵維護但未設定delete_data參數

  • 加工規則

    e_table_map(res_log_logstore_pull(endpoint="xx",ak_id="xxx",
            ak_secret="xxx",project="etl-test-shenzhen",logstore="rds-mysql-test",
            fields=["__source__"],primary_keys="cid"),field="processid",output_fields=["__source__"])
  • 錯誤記錄檔

    when setting parameter primart_keys,need set delete_data\nDetail: None
  • 排查方法

    出現這個錯誤是因為當設定主鍵維護參數primary_keys的時候,delete_data參數沒有設定。primary_keys參數和delete_data參數必須同時進行配置。

  • 解決方案

    primary_keysdelete_data參數都要進行配置,配置後重新啟動資料加工服務。

目標Logstore不存在

  • 加工規則

    e_table_map(res_log_logstore_pull(endpoint="xx",ak_id="xxx",
            ak_secret="xxx",project="etl-test-shenzhen",logstore="pull_logstore_test9900881",
            fields=["__source__"],primary_keys="cid"),field="processid",output_fields=["__source__"])
  • 錯誤記錄檔

    message:  fetch data get errors:{"errorCode": "LogStoreNotExist", "errorMessage": "logstore pull_logstore_test9900881 does not exist", "requestId": "5D7227AA269948500404B777"},retrytimes=2
  • 排查方法

    當配置的目標Logstore不存在的時候就會出現上述錯誤記錄檔。

  • 解決方案

    檢查目標Logstore 是否存在,重新設定編排文法,填入正確的Logstore的名稱。

Ak配置錯誤

  • 加工規則

    e_table_map(res_log_logstore_pull(
            endpoint="cn-hangzhou.log.aliyuncs.com",
            ak_id="xx",
            ak_secret="xx",
            project="sls-test",
            logstore="pull_logstore_test",
            fields=[("id", "new_id"), "name", "status"],
            from_time="begin"), "name", "new_id")
  • 錯誤記錄檔

    message:  fetch data get errors:{"errorCode": "SignatureNotMatch", "errorMessage": "signature gdaL/nWSRtve5FOB+QqHO/sBdnA= not match", "requestId": "5D760261ED35D40AA4AB1953"},retrytimes=1
    message:  fetch data get errors:{"errorCode": "Unauthorized", "errorMessage": "AccessKeyId not found: xx", "requestId": "5D7602A01808F9EAA6EB0E2B"},retrytimes=3
  • 排查方法

    出現上述的錯誤時,請檢查編排文法中ak參數是否正確,如果ak_secret和ak_id值不匹配,或者ak_id不存在就會報上面的錯誤。

  • 解決方案

    重新設定正確的ak參數並且重新啟動資料加工任務。

Ak許可權不足

  • 加工規則

    e_table_map(res_log_logstore_pull(
            endpoint="cn-hangzhou.log.aliyuncs.com",
            ak_id="xx",
            ak_secret="xx",
            project="sls-test",
            logstore="pull_logstore_test",
            fields=[("id", "new_id"), "name", "status"],
            from_time="begin"), "name", "new_id")
  • 錯誤記錄檔

    message:  fetch data get errors:{"errorCode": "Unauthorized", "errorMessage": "denied by sts or ram, action: log:ListShards, resource: acs:log:cn-hangzhou:1654218965343050:...}
  • 排查方法

    出現Unauthorized的錯誤資訊一般情況是許可權不足,可以檢查一下配置的ak是否具有目標Logstore的讀寫權限。

  • 解決方案

    檢查ak許可權,如果許可權不足,請開通所需要的許可權。

Endpoint填寫錯誤

  • 加工規則

    e_table_map(res_log_logstore_pull(
            endpoint="xxx",
            ak_id="xx",
            ak_secret="xx",
            project="sls-test",
            logstore="pull_logstore_test",
            fields=[("id", "new_id"), "name", "status"],
            from_time="begin"), "name", "new_id")
  • 錯誤記錄檔

    message:  fetch data get errors:{"errorCode": "ProjectNotExist", "errorMessage": "The Project does not exist : ali-sls-etl-regression-test", "requestId": "5D760AB12ECD0722AA1DD681"}
    message:  fetch data get errors:{"errorCode": "LogRequestError", "errorMessage": "HTTPConnectionPool(host='ali-sls-etl-regression-test.xx', port=80): Max retries exceeded with url: /logstores/pull_logstore_test/shards (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f968a298ef0>: Failed to establish a new connection: [Errno -2] Name or service not known))
  • 排查方法

    出現ProjectNotExist或者LogRequestError錯誤,一般情況下是Endpoint填寫錯誤,導致連結錯誤,或者連結上了但是發現Endpoint下沒有需要的Project 。

  • 解決方案

    Endpoint配置正確的服務入口。請參見服務入口