LB常见问题
异常定位
- 大量QPS的场景,少量客户端请求异常,RS端未收到请求,LB是否接收到,无从判断。
- 终端客户反馈部分请求异常,比如缓慢,RS日志记录response_time正常,耗时来自哪里?
- 某段时间,内网7层请求异常,是哪里的问题
统计分析
- 期望有一个全链路的耗时拓扑,request_time,connect,response_time。
- 开启了http2,是否生效,整个协议占比如何?
- 核心域名分布在不同实例上,请求占比情况分析。
LB7层接入CLS的方式
单实例接入
- 选择对应7层实例,点击小圆笔进行编辑即可。
- 打开"启用日志"开关
- 选择对应日志集和日志主题即可,如无合适日志集或者日志主题,可以去"访问日志"页面新建,然后点击提交即可完毕。
- 到日志集管理,选择对应的日志主题(topic)编辑索引。
- 有日志进来,可以选择自动配置,建议全部打开"开启统计",以便后续的统计分析功能。
批量接入(创建CLB专有日志集)
备注:目前批量接入,需要找CLB产品开启白名单,才可以看到入口。
建议:按照业务实际情况区分不同的日志主题,比如http层,缓存层,数据层或者按照业务维度,金融业务,主站业务,订单业务等,因CLS也同时是一个管道,对应不同的日志主题可以选择不同的路径,到COS,CKAFKA,SCF等等进一步处理,归档数据。
- 开通白名单后,点击"访问日志"按钮,进入clblog日志集配置页面。
- CLB日志集名称是固定的,无需填写,可以选择保存时间。
- 新增日志主题,建议按照实际情况填写,选择添加对应LB实例,保存即可。
- 保存完,稍等5·10分钟生效。
- 索引开启及统计开关打开,参考单实例接入即可。
LB日志字段含义说明
参考链接:https://cloud.tencent.com/document/product/214/41379
语法与规则
具体语法请参考:https://cloud.tencent.com/document/product/614/47044
语法规则
检索语句示例
实际场景使用
- 检索一个URL,请求时间且大于某个值的示例
request:"HEAD /aaa/ HTTP/1.1" AND request_time:>0.005
- 查看某个rs 4xx请求的日志
status:[400 TO 500} AND upstream_addr:"10.0.1.12:80"
分析统计添加Dashboard
分析简介请参考:https://cloud.tencent.com/document/product/614/44061
时间大盘
- 比如平均请求时长,实时观测网站响应情况:
* | SELECT HISTOGRAM(CAST(__TIMESTAMP__ AS TIMESTAMP), INTERVAL 1 MINUTE) AS dt,AVG(request_time) AS "请求处理平均时长/clb实例", server_addr GROUP BY dt, server_addr order by dt
可以清晰细节的判断各个阶段的处理时长,最快定位问题。
容量大盘
- 比如实时到各rs的请求数,判断各个rs的负载容量:
* | SELECT HISTOGRAM(CAST(__TIMESTAMP__ AS TIMESTAMP), INTERVAL 1 MINUTE) AS dt, COUNT(1) AS "每分钟到rs的请求数", upstream_addr GROUP BY dt, upstream_addr order by dt
状态码大盘
- 比如实时统计各个维度的状态码情况,以了解健康度:
* | SELECT HISTOGRAM(CAST(__TIMESTAMP__ AS TIMESTAMP), INTERVAL 1 MINUTE) AS dt, count(1), status GROUP BY dt, status order by dt
添加统计分析图表到Dashboard
选择对应图标,点击"添加到仪表盘"即可:
实时告警
告警简介参考:https://cloud.tencent.com/document/product/614/51741
基于检索分析灵活添加告警规则,根据告警规则添加告警策略,告警通知到微信,企业微信,webhook等,实时接收线上LB的健康情况。