消息日志记录政策部署错误问题排查

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

InvalidProtocol

错误消息

通过 Edge 界面或 Edge Management API 部署 API 代理失败,并显示以下错误消息:

Error Saving Revision revision_number
Invalid Protocol: invalid_protocol for Syslog handler in policy policy_name.

错误消息示例

Error Saving Revision 4
Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.

示例屏幕截图

原因

如果 <Protocol> 元素中指定的协议无效,则 MessageLogging 政策的部署会失败,并显示此错误。有效协议为 TCP 和 UDP。对于通过 TLS/SSL 发送 syslog 消息,系统仅支持 TCP。

例如,如果您在 MessageLogging 政策的 <Protocol> 元素中指定 HTTP,则 API 代理的部署将失败并显示此错误:

<Protocol>HTTP</Protocol>

诊断

  1. 确定发生错误的 MessageLogging 政策。您可以在错误消息中找到此信息。例如,在以下错误中,政策名称为 LogToSyslog:

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    
  2. 在失败的 MessageLogging 政策配置中,检查在 <Protocol> 元素中指定的协议是否有效。如果指定的协议无效,就会导致错误。

    例如,以下政策指定了无效的协议。

    <?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
    Mes>sag<eLoggi>ng na<me=&quo>t;LogToSyslog"
      Syslog
        Message[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"]< Weather> requ<est >for WOEID {request<.quer>ypara<m.w}>./M<essag>e
       < Hostlog>s-01<.loggly.c>om/Ho<st
        Port51>4/Po<rt
        Protoco>lHT<TP/Prot>oco<l
        Fo>rmatM<essagetru>e</FormatMessage
    >  /Syslog
      logLevelALERT/logLevel
    /MessageLogging
    

    由于在 <Protocol> 元素中定义的协议无效,因此 API 代理的部署将失败,并显示以下错误:

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    

解决方法

确保 MessageLogging 政策的 <Protocol> 元素中定义的协议有效。<Protocol> 元素支持以下值:

  • TCP
  • UDP

如需更正上面显示的示例,请在 <Protocol> 元素中定义有效的协议:

<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
Mes>sag<eLoggi>ng na<me=&quo>t;LogToSyslog"
  Syslog
    Message[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"]< Weather> requ<est >for WOEID {request<.quer>ypara<m.w}>./M<essag>e
   < Hostlog>s-0<1.loggly.>com/H<ost
    Port5>14/P<ort
    Protoc>olT<CP/Prot>oco<l
    Fo>rmatM<essagetru>e</FormatMessage
>  /Syslog
  logLevelALERT/logLevel
/MessageLogging

InvalidPort

错误消息

通过 Edge 界面或 Edge Management API 部署 API 代理失败,并显示以下错误消息:

Error Saving Revision revision_number
Invalid Port: 0 for Syslog handler in policy policy_name.

错误消息示例

Error Saving Revision 4
Invalid Port: 0 for Syslog handler in policy LogToSyslog.

示例屏幕截图

原因

如果未在 <Port> 元素中指定端口号或者此端口无效,则 MessageLogging 政策的部署会失败,并显示此错误。端口号必须是大于零的整数。

例如,如果声明 <Port> 元素如下所示,则 API 代理的部署将失败:

<Port>0</Port>

诊断

  1. 确定发生错误的 MessageLogging 政策。您可以从错误消息中找到此信息。例如,在以下错误中,政策名称为 LogToSyslog:

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    
  2. 在失败的 MessageLogging 政策中,检查在 <Port> 元素中指定的端口号是否有效。如果端口号未定义或无效,则会出现此错误。

    例如,以下政策指定了无效的端口号:

    <?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
    Mes>sag<eLoggi>ng na<me=&quo>t;LogToSyslog"
      Syslog
        Message[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"]< Weather> requ<est >for WOEID {request<.quer>ypara<m.w}>.</Mess>age
     <   Hostl>ogs<-01.loggl>y.com</Host
        Por>t0/P<ort
        Protoc>olT<CP/Prot>oco<l
        Fo>rmatM<essagetru>e</FormatMessage
    >  /Syslog
      logLevelALERT/logLevel
    /MessageLogging
    

    由于在 <Port> 元素中定义的端口号无效,因此 API 代理的部署将失败,并显示以下错误:

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    

解决方法

确保 MessageLogging 政策的 <Port> 元素中定义了端口号。它必须是大于零的整数。

如需更正上面显示的示例,请在 <Protocol> 元素中定义有效的端口号。

<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
Mes>sag<eLoggi>ng na<me=&quo>t;LogToSyslog"
  Syslog
    Message[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"]< Weather> requ<est >for WOEID {request<.quer>ypara<m.w}>./M<essag>e
   < Hostlog>s-0<1.loggly.>com/H<ost
    Port5>14/P<ort
    Protoc>olT<CP/Prot>oco<l
    Fo>rmatM<essagetru>e</FormatMessage
>  /Syslog
  logLevelALERT/logLevel
/MessageLogging