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

摘要

  • 背景

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

在此,我将实际配置的操作步骤,记录一下,方便有需要的同事,借鉴使用 (【官方文档--快速入门>>>】) …


前提条件

①. ESC (阿里云服务器)

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

②. nginx 配置文件

nginx.conf 文件中,完成对参数 log_formataccess.log 的配置

  • 我的配置信息如下:
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;

【提示】: 在 Nginx中,由 log_format 控制日志格式,access_log 控制存储路径

  • 日志样例为:
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"

【提示】: 当前的日志样例,是重启 nginx 服务后,跑出的最新日志,后面的 Logtail 配置时要用到


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

从工作台,快速找到 【日志服务 SLS】,也可直接进入 >>> 链接 >>>

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

【提示】: 机器组心跳检查,可能会出现失败的情况,详情见附录

⑤. 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"';

要求 nginx 服务器中 nginx.conf文件的配置字段log_format ,也如上所示,保证配置的统一性

2、 对应的日志样例如下
(建议从 服务器的 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、填写查询语句、预览 …

当前我使用的都是默认配置,具体样式,可根据右侧指导栏 进行 属性配置

核心操作便是 sql 查询语句的确认,可以通过帮助文档,学习借鉴,从而构造出更符合要求的图表

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

总结

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

其他的图片配置,大同小异,重要的是 设计 查询语句 和选定 图表类型 ,多加摸索 …


附录

①. nginx 配置参数 log_format

对于 参数的解释,可以参考文章:【nginx 访问日志 access_log】

  • 当前,我对 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"';

②. 机器组心跳检查

猜你喜欢

转载自blog.csdn.net/u011415782/article/details/124143139