IBM Cloud Docs
使用 Logpull 服务

使用 Logpull 服务

IBM 客户可以访问企业帐户上的 Logpull 服务。 这项服务允许用户 使用Logpull命令 通过 HTTP 查看请求日志。 这些日志包含与连接客户机、通过网络的请求路径以及来自源 Web 服务器的响应相关的数据。 用户可以从过去的 1 分钟开始查询日志 (相对于执行查询的实际时间)。

启用日志保留时间

缺省情况下,不会保留边缘日志。 必须先启用日志保留,然后才能使用 Logpull CLI 来拉取日志。 要执行此操作,必须检查当前设置,然后打开或关闭日志保留时间。 启用后,日志将保留 7 天。 如果关闭保留时间,那么先前保存的日志将可用,直到保留期到期为止。

  1. 要检查当前是否已关闭日志保留时间,请使用 log-retention CLI:
ibmcloud cis log-retention DNS_DOMAIN_ID
  1. 如果输出显示标志为 off (缺省值),请按如下所示更新设置。
ibmcloud cis log-retention-update DNS_DOMAIN_ID --flag on

Logpull 用例

基于 RayID 获取日志

如果运行命令后收到错误信息,可以使用响应标头中提供的 RayID 获取与命令相关的日志。

如果您的 RAY_ID 在末尾包含 -XXX,请务必将其除去。 例如,12ab34cdef567gh8-XXX 变为 12ab34cdef567gh8

对请求使用以下命令:

ibmcloud cis logpull DNS_DOMAIN_ID --ray-id RAY_ID

答复如下:

{
    "ClientIP": "68.278.11.89",
    "ClientRequestHost": "testing.logpull.com",
    "ClientRequestMethod": "GET",
    "ClientRequestURI": "/var/www",
    "EdgeEndTimestamp": 1545155129703000000,
    "EdgeResponseBytes": 1935,
    "EdgeResponseStatus": 403,
    "EdgeStartTimestamp": 1545155129696000000,
    "RayID": "48b371889c489b2c"
}

根据持续时间获取日志

如果在运行命令后接收到错误消息,但不知道响应的 RayID,那么可以使用持续时间来获取发生错误的时间段内的所有日志。

对请求使用以下命令:

ibmcloud cis logpull DNS_DOMAIN_ID --start 2019-01-02T01:00:00+00:00 --end 2019-01-02T01:00:00+00:00

其中 --start--end 输入 UNIX 时间戳(以秒或纳秒为单位),或符合 RFC 3339 的绝对时间戳,时间长度为一分钟或一小时。

答复如下:

{"ClientIP":"2620:1f7:8c5::1f:949e:c04d","ClientRequestHost":"test.logpull.load.com","ClientRequestMethod":"GET","ClientRequestURI":"/assets/bootstrap-collapse.js","EdgeEndTimestamp":1545067628046000000,"EdgeResponseBytes":2205,"EdgeResponseStatus":200,"EdgeStartTimestamp":1545067628044000000,"RayID":"48ab19434891c7a7"}
{"ClientIP":"2620:1f7:8c5::1f:949e:c04d","ClientRequestHost":"test.logpull.load.com","ClientRequestMethod":"GET","ClientRequestURI":"/assets/3d.gif","EdgeEndTimestamp":1545067627970000000,"EdgeResponseBytes":2538446,"EdgeResponseStatus":200,"EdgeStartTimestamp":1545067627951000000,"RayID":"48ab1942bf96c7a7"}
{"ClientIP":"2620:1f7:8c5::1f:949e:c04d","ClientRequestHost":"test.logpull.load.com","ClientRequestMethod":"GET","ClientRequestURI":"/assets/logo.gif","EdgeEndTimestamp":1545067628051000000,"EdgeResponseBytes":82257,"EdgeResponseStatus":200,"EdgeStartTimestamp":1545067628048000000,"RayID":"48ab194348a0c7a7"}
{"ClientIP":"2620:1f7:8c5::1f:949e:c04d","ClientRequestHost":"test.logpull.load.com","ClientRequestMethod":"GET","ClientRequestURI":"/assets/docs.css","EdgeEndTimestamp":1545067627952000000,"EdgeResponseBytes":540,"EdgeResponseStatus":200,"EdgeStartTimestamp":1545067627948000000,"RayID":"48ab1942af8ac7a7"}
{"ClientIP":"2620:1f7:8c5::1f:949e:c04d","ClientRequestHost":"test.logpull.load.com","ClientRequestMethod":"GET","ClientRequestURI":"/assets/bootstrap.css","EdgeEndTimestamp":1545067627952000000,"EdgeResponseBytes":17311,"EdgeResponseStatus":200,"EdgeStartTimestamp":1545067627948000000,"RayID":"48ab1942af85c7a7"}
{"ClientIP":"2620:1f7:8c5::1f:949e:c04d","ClientRequestHost":"test.logpull.load.com","ClientRequestMethod":"GET","ClientRequestURI":"/assets/jquery.js","EdgeEndTimestamp":1545067628045000000,"EdgeResponseBytes":33555,"EdgeResponseStatus":200,"EdgeStartTimestamp":1545067628042000000,"RayID":"48ab19434882c7a7"}
{"ClientIP":"2620:1f7:8c5::1f:949e:c04d","ClientRequestHost":"test.logpull.load.com","ClientRequestMethod":"GET","ClientRequestURI":"/assets/watson.gif","EdgeEndTimestamp":1545067628052000000,"EdgeResponseBytes":893230,"EdgeResponseStatus":200,"EdgeStartTimestamp":1545067628046000000,"RayID":"48ab194348a3c7a7"}
{"ClientIP":"2620:1f7:8c5::1f:949e:c04d","ClientRequestHost":"test.logpull.load.com","ClientRequestMethod":"GET","ClientRequestURI":"/assets/bootstrap-386.js","EdgeEndTimestamp":1545067628046000000,"EdgeResponseBytes":1663,"EdgeResponseStatus":200,"EdgeStartTimestamp":1545067628043000000,"RayID":"48ab19434884c7a7"}
{"ClientIP":"2620:1f7:8c5::1f:949e:c04d","ClientRequestHost":"test.logpull.load.com","ClientRequestMethod":"GET","ClientRequestURI":"/assets/Fixedsys500c.woff","EdgeEndTimestamp":1545067630272000000,"EdgeResponseBytes":14055,"EdgeResponseStatus":200,"EdgeStartTimestamp":1545067629064000000,"RayID":"48ab1949aca2c7a7"}
{"ClientIP":"2620:1f7:8c5::1f:949e:c04d","ClientRequestHost":"test.logpull.load.com","ClientRequestMethod":"GET","ClientRequestURI":"/assets/bios.gif","EdgeEndTimestamp":1545067628055000000,"EdgeResponseBytes":1121237,"EdgeResponseStatus":200,"EdgeStartTimestamp":1545067628046000000,"RayID":"48ab1943489ec7a7"}
{"ClientIP":"2620:1f7:8c5::1f:949e:c04d","ClientRequestHost":"test.logpull.load.com","ClientRequestMethod":"GET","ClientRequestURI":"/assets/bootstrap-modal.js","EdgeEndTimestamp":1545067628046000000,"EdgeResponseBytes":2569,"EdgeResponseStatus":200,"EdgeStartTimestamp":1545067628043000000,"RayID":"48ab1943488ac7a7"}
{"ClientIP":"2620:1f7:8c5::1f:949e:c04d","ClientRequestHost":"test.logpull.load.com","ClientRequestMethod":"GET","ClientRequestURI":"/assets/holder.js","EdgeEndTimestamp":1545067628053000000,"EdgeResponseBytes":4593,"EdgeResponseStatus":200,"EdgeStartTimestamp":1545067628046000000,"RayID":"48ab19434898c7a7"}
{"ClientIP":"2620:1f7:8c5::1f:949e:c04d","ClientRequestHost":"test.logpull.load.com","ClientRequestMethod":"GET","ClientRequestURI":"/assets/old_school.png","EdgeEndTimestamp":1545067627960000000,"EdgeResponseBytes":1466,"EdgeResponseStatus":200,"EdgeStartTimestamp":1545067627952000000,"RayID":"48ab1942bf92c7a7"}
{"ClientIP":"2620:1f7:8c5::1f:949e:c04d","ClientRequestHost":"test.logpull.load.com","ClientRequestMethod":"GET","ClientRequestURI":"/assets/bootstrap-responsive.css","EdgeEndTimestamp":1545067627951000000,"EdgeResponseBytes":4797,"EdgeResponseStatus":200,"EdgeStartTimestamp":1545067627948000000,"RayID":"48ab1942af86c7a7"}

可用字段

如果未在请求中指定 fields,那么将返回缺省字段的有限集。 可在此处查找所有可用字段的完整列表:

ibmcloud cis logpull DNS_DOMAIN_ID --available-fields

字段以逗号分隔的列表形式传递。 例如,使用 "ZoneName" 和 "RayID",:

ibmcloud cis logpull DNS_DOMAIN_ID --start 2019-01-02T01:00:00+00:00 --end 2019-01-02T01:00:00+00:00 --fields ZoneName,RayID

字段列表

可用的字段:

"BotScore": "int; Cloudflare Bot Score. Scores below 30 are commonly associated with automated traffic. Available only for Bot Management customers. To enable this feature, contact your account team.",
"BotScoreSrc": "string; Detection engine responsible for generating the Bot Score. Possible values are Not Computed | Heuristics | Machine Learning | Behavioral Analysis | Verified Bot | JS Fingerprinting | Cloudflare Service. Available only for Bot Management customers. To enable this feature, contact your account team.",
"CacheCacheStatus": "string; Cache status. Possible values are unknown | miss | expired | updating | stale | hit | ignored | bypass | revalidated | dynamic | stream_hit | deferred \"dynamic\" means that a request is not eligible for cache. This can mean, for example that it was blocked by the firewall. Refer to [Cloudflare cache responses](https://developers.cloudflare.com/cache/concepts/cache-responses/) for more details.",
"CacheResponseBytes": "int; Number of bytes returned by the cache.",
"CacheResponseStatus": "int; HTTP status code returned by the cache to the edge. All requests (including non-cacheable ones) go through the cache. Refer also to CacheCacheStatus field.",
"CacheTieredFill": "bool; Tiered Cache was used to serve this request.",
"ClientASN": "int; Client AS number.",
"ClientCountry": "string; 2-letter ISO-3166 country code of the client IP address.",
"ClientDeviceType": "string; Client device type.",
"ClientIP": "string; IP address of the client.",
"ClientIPClass": "string; Client IP class. Possible values are unknown | badHost | searchEngine | allowlist | monitoringService | noRecord | scan | tor.",
"ClientRequestBytes": "int; Number of bytes in the client request.",
"ClientRequestHost": "string; Host requested by the client.",
"ClientRequestMethod": "string; HTTP method of client request.",
"ClientRequestPath": "string; URI path requested by the client.",
"ClientRequestProtocol": "string; HTTP protocol of client request.",
"ClientRequestReferer": "string; HTTP request referrer.",
"ClientRequestURI": "string; URI requested by the client.",
"ClientRequestUserAgent": "string; User agent reported by the client.",
"ClientSSLCipher": "string; Client SSL cipher.",
"ClientSSLProtocol": "string; Client SSL (TLS) protocol. The value \"none\" means that SSL was not used.",
"ClientSrcPort": "int; Client source port.",
"ClientXRequestedWith": "string; X-Requested-With HTTP header.",
"Cookies": "object; String key-value pairs for Cookies. This field is populated based on [Logpush Custom fields](https://developers.cloudflare.com/logs/reference/custom-fields/), which need to be configured.",
"EdgeColoCode": "string; IATA airport code of data center that received the request.",
"EdgeColoID": "int; Cloudflare edge colo id.",
"EdgeEndTimestamp": "int or string; Timestamp at which the edge finished sending response to the client.",
"EdgePathingOp": "string; Indicates what type of response was issued for this request (unknown = no specific action).",
"EdgePathingSrc": "string; Details how the request was classified based on security checks (unknown = no specific classification).",
"EdgePathingStatus": "string; Indicates what data was used to determine the handling of this request (unknown = no data).",
"EdgeRequestHost": "string; Host header on the request from the edge to the origin.",
"EdgeResponseBytes": "int; Number of bytes returned by the edge to the client.",
"EdgeResponseCompressionRatio": "float; The edge response compression ratio is calculated as the ratio between the sizes of the original and compressed responses.",
"EdgeResponseContentType": "string; Edge response Content-Type header value.",
"EdgeResponseStatus": "int; HTTP status code returned by Cloudflare to the client.",
"EdgeServerIP": "string; IP of the edge server making a request to the origin. Possible responses are string in IPv4 or IPv6 format, or empty string. Empty string means that there was no request made to the origin server.",
"EdgeStartTimestamp": "int or string; Timestamp at which the edge received request from the client.",
"OriginIP": "string; IP of the origin server.",
"OriginResponseBytes": "int; Number of bytes returned by the origin server.",
"OriginResponseHTTPExpires": "string; Value of the origin 'expires' header in RFC1123 format.",
"OriginResponseHTTPLastModified": "string; Value of the origin 'last-modified' header in RFC1123 format.",
"OriginResponseStatus": "int; Status returned by the upstream server. The value 0 means that there was no request made to the origin server and the response was served by Cloudflare's Edge. However, if the zone has a Worker running on it, the value 0 could be the result of a Workers subrequest made to the origin.",
"OriginResponseTime": "int; Number of nanoseconds it took the origin to return the response to edge.",
"OriginSSLProtocol": "string; SSL (TLS) protocol used to connect to the origin.",
"ParentRayID": "string; Ray ID of the parent request if this request was made using a Worker script.",
"RayID": "string; ID of the request.",
"RequestHeaders": "object; String key-value pairs for RequestHeaders. This field is populated based on [Logpush Custom fields](https://developers.cloudflare.com/logs/reference/custom-fields/), which need to be configured.",
"ResponseHeaders": "object; String key-value pairs for ResponseHeaders. This field is populated based on [Logpush Custom fields](https://developers.cloudflare.com/logs/reference/custom-fields/), which need to be configured.",
"WAFFlags": "string; Additional configuration flags: simulate (0x1) | null.",
"WAFMatchedVar": "string; The full name of the most-recently matched variable.",
"WorkerCPUTime": "int; Amount of time in microseconds spent executing a worker, if any.",
"WorkerStatus": "string; Status returned from worker daemon.",
"WorkerSubrequest": "bool; Whether or not this request was a worker subrequest.",
"WorkerSubrequestCount": "int; Number of subrequests issued by a worker when handling this request."
"ZoneName": "string; the human-readable name of the zone"

Logpull 示例

以下是 logpull 调用示例和特定类型响应的示例。

  • 请求

    ibmcloud cis logpull DNS_DOMAIN_ID --start 2019-01-02T01:00:00+00:00 --end 2019-01-02T01:00:00+00:00 --fields ClientRequestURI,EdgeResponseBytes,ParentRayID,WorkerStatus,    OriginResponseTime,EdgeResponseStatus,WorkerSubrequest,ClientRequestProtocol,EdgePathingOp,ClientSrcPort,WorkerSubrequestCount,EdgeRequestHost,    ClientSSLCipher,EdgePathingSrc,OriginResponseStatus,ClientIPClass,EdgeColoID,ClientCountry,ClientRequestHost,WAFFlags,ClientASN,EdgeServerIP,    CacheCacheStatus,SecurityLevel,ClientRequestUserAgent,CacheResponseBytes,EdgeStartTimestamp,ClientSSLProtocol,EdgeEndTimestamp,EdgeResponseContentType,    ClientRequestBytes,CacheResponseStatus,WorkerCPUTime,RayID,ClientRequestMethod,ClientIP,ClientRequestPath,OriginResponseHTTPExpires,CacheTieredFill,WAFRuleMessage,    EdgePathingStatus,ClientDeviceType,OriginSSLProtocol,EdgeRateLimitAction,OriginIP,EdgeRateLimitID,ZoneName,EdgeResponseCompressionRatio,ClientRequestReferer,    OriginResponseHTTPLastModified,OriginResponseBytes --timestamps=rfc3339'
    
  • 状态码为 200 的响应

    {
    "CacheCacheStatus":"unknown",
    "CacheResponseBytes":396,
    "CacheResponseStatus":200,
    "CacheTieredFill":false,
    "ClientASN":56046,
    "ClientCountry":"cn",
    "ClientDeviceType":"desktop",
    "ClientIP":"1.1.1.1",
    "ClientIPClass":"noRecord",
    "ClientRequestBytes":400,
    "ClientRequestHost":"foo.com",
    "ClientRequestMethod":"GET",
    "ClientRequestPath":"/",
    "ClientRequestProtocol":"HTTP/1.1",
    "ClientRequestReferer":"",
    "ClientRequestURI":"/",
    "ClientRequestUserAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
    "ClientSSLCipher":"NONE",
    "ClientSSLProtocol":"none",
    "ClientSrcPort":4532,
    "EdgeColoID":134,
    "EdgeEndTimestamp":"2019-01-03T01:54:11Z",
    "EdgePathingOp":"wl",
    "EdgePathingSrc":"macro",
    "EdgePathingStatus":"nr",
    "EdgeRateLimitAction":"",
    "EdgeRateLimitID":0,
    "EdgeRequestHost":"foo.com",
    "EdgeResponseBytes":808,
    "EdgeResponseCompressionRatio":1.57,
    "EdgeResponseContentType":"text/html",
    "EdgeResponseStatus":200,
    "EdgeServerIP":"172.69.98.106",
    "EdgeStartTimestamp":"2019-01-03T01:54:11Z",
    "OriginIP":"2.2.2.2",
    "OriginResponseBytes":0,
    "OriginResponseHTTPExpires":"",
    "OriginResponseHTTPLastModified":"Tue, 31 Jan 2017 15:01:11 UTC",
    "OriginResponseStatus":200,
    "OriginResponseTime":7000000,
    "OriginSSLProtocol":"unknown",
    "ParentRayID":"00",
    "RayID":"4931d60516c0b0b0",
    "SecurityLevel":"med",
    "WAFFlags":"0",
    "WAFMatchedVar":"",
    "WAFProfile":"unknown",
    "WAFRuleID":"",
    "WAFRuleMessage":"",
    "WorkerCPUTime":0,
    "WorkerStatus":"unknown",
    "WorkerSubrequest":false,
    "WorkerSubrequestCount":0,
    "ZoneName":"example.com"
    }
    
  • 状态码为 404 的响应

    {
    "CacheCacheStatus":"miss",
    "CacheResponseBytes":209,
    "CacheResponseStatus":404,
    "CacheTieredFill":false,
    "ClientASN":56046,
    "ClientCountry":"cn",
    "ClientDeviceType":"desktop",
    "ClientIP":"1.1.1.1",
    "ClientIPClass":"noRecord",
    "ClientRequestBytes":433,
    "ClientRequestHost":"foo.com",
    "ClientRequestMethod":"GET",
    "ClientRequestPath":"/favicon.ico",
    "ClientRequestProtocol":"HTTP/1.1",
    "ClientRequestReferer":"foo.com/",
    "ClientRequestURI":"/favicon.ico",
    "ClientRequestUserAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
    "ClientSSLCipher":"NONE",
    "ClientSSLProtocol":"none",
    "ClientSrcPort":4532,
    "EdgeColoID":134,
    "EdgeEndTimestamp":"2019-01-03T01:54:12Z",
    "EdgePathingOp":"wl",
    "EdgePathingSrc":"macro",
    "EdgePathingStatus":"nr",
    "EdgeRateLimitAction":"",
    "EdgeRateLimitID":0,
    "EdgeRequestHost":"foo.com",
    "EdgeResponseBytes":556,
    "EdgeResponseCompressionRatio":2.87,
    "EdgeResponseContentType":"text/html",
    "EdgeResponseStatus":404,
    "EdgeServerIP":"172.69.98.148",
    "EdgeStartTimestamp":"2019-01-03T01:54:12Z",
    "OriginIP":"2.2.2.2",
    "OriginResponseBytes":0,
    "OriginResponseHTTPExpires":"",
    "OriginResponseHTTPLastModified":"",
    "OriginResponseStatus":404,
    "OriginResponseTime":7000000,
    "OriginSSLProtocol":"unknown",
    "ParentRayID":"00",
    "RayID":"4931d60a16c8b0b0",
    "SecurityLevel":"med",
    "WAFFlags":"0",
    "WAFMatchedVar":"",
    "WAFProfile":"unknown",
    "WAFRuleMessage":"",
    "WorkerCPUTime":0,
    "WorkerStatus":"unknown",
    "WorkerSubrequest":false,
    "WorkerSubrequestCount":0,
    "ZoneName":"example.com"
    }
    
  • 请求与 WAF 规则(SQLj 攻击)相匹配

    {
    "CacheCacheStatus":"unknown",
    "CacheResponseBytes":0,
    "CacheResponseStatus":0,
    "CacheTieredFill":false,
    "ClientASN":56046,
    "ClientCountry":"cn",
    "ClientDeviceType":"desktop",
    "ClientIP":"1.1.1.1",
    "ClientIPClass":"noRecord",
    "ClientRequestBytes":501,
    "ClientRequestHost":"foo.com",
    "ClientRequestMethod":"GET",
    "ClientRequestPath":"/login.php",
    "ClientRequestProtocol":"HTTP/1.1",
    "ClientRequestReferer":"",
    "ClientRequestURI":"/login.php?username=asdf&password=asdf",
    "ClientRequestUserAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:60.0) Gecko/20100101 Firefox/60.0",
    "ClientSSLCipher":"NONE",
    "ClientSSLProtocol":"none",
    "ClientSrcPort":48718,
    "EdgeColoID":134,
    "EdgeEndTimestamp":"2019-01-04T02:22:26Z",
    "EdgePathingOp":"wl",
    "EdgePathingSrc":"macro",
    "EdgePathingStatus":"nr",
    "EdgeRateLimitAction":"",
    "EdgeRateLimitID":0,
    "EdgeRequestHost":"",
    "EdgeResponseBytes":1849,
    "EdgeResponseCompressionRatio":2.82,
    "EdgeResponseContentType":"text/html",
    "EdgeResponseStatus":403,
    "EdgeServerIP":"",
    "EdgeStartTimestamp":"2019-01-04T02:22:26Z",
    "OriginIP":"",
    "OriginResponseBytes":0,
    "OriginResponseHTTPExpires":"",
    "OriginResponseHTTPLastModified":"",
    "OriginResponseStatus":0,
    "OriginResponseTime":0,
    "OriginSSLProtocol":"unknown",
    "ParentRayID":"00",
    "RayID":"493a3cc9463eb0d4",
    "SecurityLevel":"med",
    "WAFFlags":"0",
    "WAFMatchedVar":"ARGS:USERNAME",
    "WAFProfile":"off",
    "WAFRuleMessage":"SQLi probing",
    "WorkerCPUTime":0,
    "WorkerStatus":"unknown",
    "WorkerSubrequest":false,
    "WorkerSubrequestCount":0,
    "ZoneName":"example.com"
    }
    
  • 请求与防火墙规则相匹配

    {
    "CacheCacheStatus":"unknown",
    "CacheResponseBytes":0,
    "CacheResponseStatus":0,
    "CacheTieredFill":false,
    "ClientASN":36351,
    "ClientCountry":"us",
    "ClientDeviceType":"desktop",
    "ClientIP":"1.1.1.1",
    "ClientIPClass":"noRecord",
    "ClientRequestBytes":90,
    "ClientRequestHost":"foo.com",
    "ClientRequestMethod":"GET",
    "ClientRequestPath":"/",
    "ClientRequestProtocol":"HTTP/1.1",
    "ClientRequestReferer":"",
    "ClientRequestURI":"/",
    "ClientRequestUserAgent":"curl/7.47.0",
    "ClientSSLCipher":"NONE",
    "ClientSSLProtocol":"none",
    "ClientSrcPort":57260,
    "EdgeColoID":26,
    "EdgeEndTimestamp":"2019-01-03T08:48:42Z",
    "EdgePathingOp":"ban",
    "EdgePathingSrc":"user",
    "EdgePathingStatus":"ip",
    "EdgeRateLimitAction":"",
    "EdgeRateLimitID":0,
    "EdgeRequestHost":"",
    "EdgeResponseBytes":3556,
    "EdgeResponseCompressionRatio":0,
    "EdgeResponseContentType":"text/html",
    "EdgeResponseStatus":403,
    "EdgeServerIP":"",
    "EdgeStartTimestamp":"2019-01-03T08:48:42Z",
    "OriginIP":"",
    "OriginResponseBytes":0,
    "OriginResponseHTTPExpires":"",
    "OriginResponseHTTPLastModified":"",
    "OriginResponseStatus":0,
    "OriginResponseTime":0,
    "OriginSSLProtocol":"unknown",
    "ParentRayID":"00",
    "RayID":"493a6341d02565e7",
    "SecurityLevel":"med",
    "WAFFlags":"0",
    "WAFMatchedVar":"",
    "WAFProfile":"unknown",
    "WAFRuleMessage":"",
    "WorkerCPUTime":0,
    "WorkerStatus":"unknown",
    "WorkerSubrequest":false,
    "WorkerSubrequestCount":0,
    "ZoneName":"example.com"
    }
    
  • 请求受到速率限制

    {
    "CacheCacheStatus":"unknown",
    "CacheResponseBytes":0,
    "CacheResponseStatus":0,
    "CacheTieredFill":false,
    "ClientASN":36351,
    "ClientCountry":"us",
    "ClientDeviceType":"desktop",
    "ClientIP":"1.1.1.1",
    "ClientIPClass":"noRecord",
    "ClientRequestBytes":90,
    "ClientRequestHost":"foo.com",
    "ClientRequestMethod":"GET",
    "ClientRequestPath":"/",
    "ClientRequestProtocol":"HTTP/1.1",
    "ClientRequestReferer":"",
    "ClientRequestURI":"/",
    "ClientRequestUserAgent":"curl/7.47.0",
    "ClientSSLCipher":"NONE",
    "ClientSSLProtocol":"none",
    "ClientSrcPort":33186,
    "EdgeColoID":26,
    "EdgeEndTimestamp":"2019-01-03T08:59:55Z",
    "EdgePathingOp":"ban",
    "EdgePathingSrc":"user",
    "EdgePathingStatus":"rateLimit",
    "EdgeRateLimitAction":"ban",
    "EdgeRateLimitID":1307134,
    "EdgeRequestHost":"",
    "EdgeResponseBytes":3559,
    "EdgeResponseCompressionRatio":0,
    "EdgeResponseContentType":"text/html",
    "EdgeResponseStatus":429,
    "EdgeServerIP":"",
    "EdgeStartTimestamp":"2019-01-03T08:59:55Z",
    "OriginIP":"",
    "OriginResponseBytes":0,
    "OriginResponseHTTPExpires":"",
    "OriginResponseHTTPLastModified":"",
    "OriginResponseStatus":0,
    "OriginResponseTime":0,
    "OriginSSLProtocol":"unknown",
    "ParentRayID":"00",
    "RayID":"493a73ad468419b6",
    "SecurityLevel":"med",
    "WAFFlags":"0",
    "WAFMatchedVar":"",
    "WAFProfile":"unknown",
    "WAFRuleMessage":"",
    "WorkerCPUTime":0,
    "WorkerStatus":"unknown",
    "WorkerSubrequest":false,
    "WorkerSubrequestCount":0,
    "ZoneName":"example.com"
    }
    
  • 源服务器停机(错误 521,Web 服务器停机)

    {
    "CacheCacheStatus":"miss",
    "CacheResponseBytes":177,
    "CacheResponseStatus":521,
    "CacheTieredFill":false,
    "ClientASN":56046,
    "ClientCountry":"cn",
    "ClientDeviceType":"desktop",
    "ClientIP":"1.1.1.1",
    "ClientIPClass":"noRecord",
    "ClientRequestBytes":1082,
    "ClientRequestHost":"foo.com",
    "ClientRequestMethod":"GET",
    "ClientRequestPath":"/favicon.ico",
    "ClientRequestProtocol":"HTTP/2",
    "ClientRequestReferer":"",
    "ClientRequestURI":"/favicon.ico",
    "ClientRequestUserAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:60.0) Gecko/20100101 Firefox/60.0",
    "ClientSSLCipher":"AEAD-AES128-GCM-SHA256",
    "ClientSSLProtocol":"TLSv1.3",
    "ClientSrcPort":3060,
    "EdgeColoID":134,
    "EdgeEndTimestamp":"2019-01-03T06:33:55Z",
    "EdgePathingOp":"wl",
    "EdgePathingSrc":"macro",
    "EdgePathingStatus":"nr",
    "EdgeRateLimitAction":"",
    "EdgeRateLimitID":0,
    "EdgeRequestHost":"foo.com",
    "EdgeResponseBytes":5177,
    "EdgeResponseCompressionRatio":0,
    "EdgeResponseContentType":"text/html",
    "EdgeResponseStatus":521,
    "EdgeServerIP":"172.69.98.148",
    "EdgeStartTimestamp":"2019-01-03T06:33:55Z",
    "OriginIP":"2.2.2.2",
    "OriginResponseBytes":0,
    "OriginResponseHTTPExpires":"",
    "OriginResponseHTTPLastModified":"",
    "OriginResponseStatus":0,
    "OriginResponseTime":3000000,
    "OriginSSLProtocol":"unknown",
    "ParentRayID":"00",
    "RayID":"49336fc9397ab080",
    "SecurityLevel":"med",
    "WAFFlags":"0",
    "WAFMatchedVar":"",
    "WAFProfile":"unknown",
    "WAFRuleMessage":"",
    "WorkerCPUTime":0,
    "WorkerStatus":"unknown",
    "WorkerSubrequest":false,
    "WorkerSubrequestCount":0,
    "ZoneName":"example.com"
    }
    

限制

使用 Logpull 功能部件时,以下使用限制适用。

  • 速率限制: 超过这些限制会导致 429 错误响应:
    • 每个专区每分钟 15 个请求
    • 每个用户每分钟 180 个请求
  • 时间范围: 开始和结束参数之间的最大差值可以是 1 小时。
  • 响应大小: 每个请求的最大响应大小为 10 GiB,当选择了大约 55 个字段时,相当于大约 15 M 个记录。 如果选择的字段较少,那么可以检索更多记录,因为每个记录的大小较小。
  • 超时: 响应将在 10 分钟后失败并终止连接。
  • 流超时: 如果连接处于空闲状态 30 秒,那么将终止请求并发出 408 错误响应。 此超时通常意味着请求过于详尽 (频繁超时-超过每小时 12 次)。 流超时将导致后续查询在 1 小时内被阻塞,状态码为 429。 要避免超时,请尝试使用较少的字段来请求记录,或者尝试使用较小的开始和结束参数。