开发者社区> 问答> 正文

云监控网站访问日志数据统计与报警


场景
使用ECS搭建网站,并且将网站的访问日志(比如Nginx,Apache)收集到阿里云日志服务后,您可以使用日志监控统计QPS、状态码(HTTP CODE)、响应时间(rt)等指标,并对这些指标设置报警规则。
下文以Nginx的AccessLog为例,说明如何使用日志监控统计网站的QPS、状态码、响应时间。
日志字段

  1. [backcolor=transparent] [backcolor=transparent]192.168[backcolor=transparent].[backcolor=transparent]1.2[backcolor=transparent] [backcolor=transparent]-[backcolor=transparent] [backcolor=transparent]-[backcolor=transparent] [backcolor=transparent][[backcolor=transparent]10[backcolor=transparent]/[backcolor=transparent]Jul[backcolor=transparent]/[backcolor=transparent]2015[backcolor=transparent]:[backcolor=transparent]15[backcolor=transparent]:[backcolor=transparent]51[backcolor=transparent]:[backcolor=transparent]09[backcolor=transparent] [backcolor=transparent]+[backcolor=transparent]0800[backcolor=transparent]][backcolor=transparent] [backcolor=transparent]"GET /ubuntu.iso HTTP/1.0"[backcolor=transparent] [backcolor=transparent]0.032[backcolor=transparent] [backcolor=transparent]129[backcolor=transparent] [backcolor=transparent]200[backcolor=transparent] [backcolor=transparent]168[backcolor=transparent] [backcolor=transparent]"-"[backcolor=transparent] [backcolor=transparent]"Wget/1.11.4 Red Hat modified"

以上述日志为例,在日志服务中配置提取如下字段:
字段字段样例说明
time2015-06-10 15:51:09日志时间戳,日志系统默认值字段。
rt0.032执行时间,单位为秒,精度为毫秒。
URL/ubuntu.iso访问的URL。
status200HTTP 返回码。
body168返回客户端的HTTP body大小,不包含header。

备注: URL的值不要包含参数GET请求“?”后面的值,如果是Rest风格则不要包含资源定位符,否则无法进行单URL的QPS统计。
如果您是第一次使用日志监控功能,在使用日志监控功能前,需要授权云监控读取可以读取您的日志,详情可参考 授权日志监控

统计网站总QPS或各个URL的QPS
  1. 登录云监控,进入日志监控页面后,点击页面右上角的“新建日志监控”,进入配置页面。
  2. 在[backcolor=transparent]关联资源中选择需要统计的网站访问日志数据源。
  3. 在[backcolor=transparent]分析日志中,统计方法选择任意一个日志字段,countps计算方式,和日志筛选条件”。如果统计网站的总QPS,则group by不需要填写内容。如果统计各个URL的QPS,group by选择“URL”字段。(URL的个数需要在1000以内,否则会导致没有监控数据。)
  4. 单击[backcolor=transparent]确认保存设置。

以上设置即可统计出网站整体的QPS和各个URL的QPS(平均每秒访问次数)。

统计网站的整体响应时间分布

  1. 登录云监控,进入日志监控页面后,单击页面右上角的“新建日志监控”,进入配置页面。
  2. 在[backcolor=transparent]关联资源中选择需要统计的网站访问日志数据源。

  3. 在[backcolor=transparent]分析日志中,统计方法选择rt字段,并且根据实际需求选择求和、P50、P75、P90、P99等计算方法。日志过滤和group by不需要填写内容。
    • 选择“平均”,表示1分钟内的平均时间。
    • 选择“P50”,表示1分钟内rt的中位数。
    • 选择“P75”,表示1分钟内75%的rt小于此值。
    • 选择“P90”,表示1分钟内90%的rt小于此值。
    • 选择“P99”,表示1分钟内99%的rt小于此值。

  • 单击[backcolor=transparent]确认保存设置。


  • 统计网站HTTP访问请求为2XX/3XX情况下的响应时间分布

    1. 登录云监控,进入日志监控页面后,单击页面右上角的“新建日志监控”,进入配置页面。
    2. 在[backcolor=transparent]关联资源中选择需要统计的网站访问日志数据源。
    3. 在[backcolor=transparent]分析日志中,统计方法选择rt字段,并且根据实际需求选择求和、P50、P75、P90、P99等计算方法。
      • 选择“平均”,表示1分钟内的平均时间。
      • 选择“P50”,表示1分钟内rt的中位数。
      • 选择“P75”,表示1分钟内75%的rt小于此值。
      • 选择“P90”,表示1分钟内90%的rt小于此值。
      • 选择“P99”,表示1分钟内99%的rt小于此值。
  • 在[backcolor=transparent]日志过滤中选择“status”字段,选择条件“>=”, 填写“200”,然后点击“+”添加一条筛选条件,选择“status”字段,选择条件“<=”, 填写“399”。“KEY关系”,选择“与”。
  • 如果统计网站的整体2XX/3XX 响应时间分布,group by不需要填写内容。如果统计网站下各个URL的2XX/3XX 响应时间分布,group by选择“URL”字段。URL的个数需要在1000以内,否则会出现没有监控数据。)
  • 单击[backcolor=transparent]确认保存设置。


  • 统计网站HTTP访问请求的4XX、5XX状态码的个数

    1. 登录云监控,进入日志监控页面后,单击页面右上角的“新建日志监控”,进入配置页面。
    2. 在[backcolor=transparent]关联资源中选择需要统计的网站访问日志数据源。
    3. 在[backcolor=transparent]分析日志中,统计方法选择“status”字段,并且选择“计数”的计算方式。
    4. 在[backcolor=transparent]日志过滤中选择“status”字段,选择条件“>=”, 填写“400”,然后点击“+”添加一条筛选条件,选择“status”字段,选择条件“<=”, 填写“599”。“KEY关系”,选择“与”。
    5. 如果统计网站的整体4XX/5XX 响应个数,group by不需要填写内容。如果统计网站下各个URL的4XX/5XX 响应个数,group by选择“URL”字段。URL的个数需要在1000以内,否则会出现没有监控数据。)
    6. 单击[backcolor=transparent]确认保存设置。

    展开
    收起
    反向一觉 2017-10-31 13:42:17 4260 1
    0 条回答
    写回答
    取消 提交回答
    问答排行榜
    最热
    最新

    相关电子书

    更多
    PostgresChina2018_赖思超_PostgreSQL10_hash索引的WAL日志修改版final 立即下载
    Kubernetes下日志实时采集、存储与计算实践 立即下载
    日志数据采集与分析对接 立即下载