0
点赞
收藏
分享

微信扫一扫

阿里云配置-日志服务SLS-[通过筛选 nginx access.log 日志获取访问耗时最多的请求]

黄昏孤酒 2022-04-14 阅读 81
nginx

摘要

  • 背景

    在工作中,
    可以通过分析 nginx 服务器产生的日志
    来判断服务器访问负载、资源使用、接口访问、流量时间等信息;
    相对而言,比起我们去自己筛选分析,耗时耗力,且难以保证满意度;
    更建议选择一些第三方工具,方便我们分析 nginx 服务器产生的日志
    所以,这里可以建议使用 阿里云-日志服务SLS


前提条件

①. ESC (阿里云服务器)

	1. 已有可用的ECS 
	2. ECS服务器上已有待采集的日志

②. nginx 配置文件

  • 我的配置信息如下:
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for" "$request_time" "$http_app_key" "$args"';
                  
access_log /var/log/nginx/zc.access.log main;
  • 日志样例为:
127.0.0.1 - - [12/Apr/2022:11:31:17 +0800] "GET /admin HTTP/1.1" 502 560 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36" "-" "0.008" "-" "s=//error/502.html"

第一步、阿里云 Logtail 相关服务配置

①. 创建 Project
  • 进入页面后,可以重新创建 Project
    如果以前已对相关项目创建过,可在对应的记录中使用
②. 创建日志库
  • 进入Project 后,切换左侧导航栏-日志库,进行 logtail 配置
 当前,我以初始创建为例
③. 创建机器组
  • 这里,如果是第一次配置 日志服务,可以切换 "自建机器"
    然后,安装 Logtail 客户端
    如果以前已配置过,可点击按钮 “使用现有机器组”
  • 如下图是,创建机器组的操作页面
    可以根据底部文档指导,填写相关信息
④. 机器组配置
  • 将需要使用的机器组,选中到右边
    点击下一步

【提示】

  • 此时,机器组心跳检查可能会 失败,
    根据提示进行排查,阿里云文档 - Logtail机器组无心跳排查思路
  • 如果显示 心跳OK ,继续下一步
⑤. Logtail 配置
  • 根据页面提示,填写相关信息

    【提示】
  1. 这里填入的便是,nginx.conf 文件中的配置信息:
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for" "$request_time" "$http_app_key" "$args"';
  1. 对应的日志样例如下
    (建议从 服务器的 nginx 访问日志中获取,同时还能检验是否对应正确)
127.0.0.1 - - [12/Apr/2022:11:31:17 +0800] "GET /admin HTTP/1.1" 502 560 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36" "-" "0.008" "-" "s=//error/502.html"
  • 查询分析配置
    顺利的话,会出现如下信息

第二步、配置仪表盘与创建图表

  • 以我的实际操作为例
    切换左侧导航栏的 仪表盘图标,然后创建一个 仪表盘

  • 然后点击右侧按钮 “新建图表”
    选取 图表类型为 “表格”
    然后根据下图指导,设置标题、选取 logstore、填写查询语句、预览 …

  • 预览效果达到要求后,点击 确定,并保存
    如果需要对已保存的图表进行修改,先点击仪表盘的 编辑按钮,才能再点击图表编辑
分析
  • 对于生成的 图表,我们后期可以点击查看分析详情
  • 通过自定义查询语句,定位耗时较长的请求
    分析问题,优化访问性能

总结

  • 整体操作过程中需要注意的几点如下:
1. 阿里云服务器,需要配置 Logtail 客户端(满足日志服务)
2. 创建 机器组时,要保证心跳检测通过
3. log_format 的配置信息,要保证与 nginx.conf 的一致
4. 创建的图表,根据查询语句的规则,选择合适的图表类型,合理显示

附录

nginx 配置参数 log_format

  • 当前,我对 nginx 服务器的配置为:
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for" "$request_time" "$http_app_key" "$args"';

举报

相关推荐

0 条评论