? 摘要
-
背景
在工作中, 可分析
nginx服务器生成的日志 判断服务器访问负载、资源使用、接口访问、流量时间等信息; 相对而言,与我们自己筛选分析相比,耗时费力,难以保证满意度; 更建议选择一些第三方工具,方便我们分析nginx服务器生成的日志 因此,建议在这里使用 阿里云-日志服务SLS …
在此,我将记录实际配置的操作步骤,方便有需要的同事学习使用 () …
? 前提条件
①. ESC (阿里云服务器)
1. 已有可用的ECS 2. ECS需要在服务器上收集的日志
②. nginx 配置文件
在
nginx.conf对参数在文件中完成log_format、access.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;
【提示】:
- 日志样例如下:
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 相关服务配置
快速找到工作台 【日志服务 SLS】,也可直接进入
①. 创建 Project
- 进入页面后,可以重新创建
Project, 如果以前创建过相关项目,可以在相应的记录中使用
②. 创建日志库
- 进入Project 之后,切换左导航栏-日志库
logtail 配置
目前,我以初创为例
③. 创建机器组
- 在这里,如果是第一次配置, 可切换日志服务
"自建机器"然后,安装Logtail 客户端如果之前已经配置好了,可以点击按钮 使用现有机组 - 如下图是,创建机器组的操作页面 可根据底部文档指导填写相关信息
④. 机器组配置
- 选择右侧需要使用的机组 点击下一步
【提示】:
⑤. Logtail 配置
- 根据页面提示填写相关信息
【注意】
1.这里填的是,nginx.conf 文件中的配置信息:
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytessent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$request_time" "$http_app_key" "$args"';
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 服务器的配置为:
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"';
②. 机器组心跳检查
- 机器组心跳检查可能会 失败, 根据提示进行排查,阿里云文档 -
- 如果显示 心跳
OK,继续下一步