关键字
访问日志、slb-nginx、nginx、ingress日志、QPS
适用产品
- AnyShare 5、6、7
目的
通过分析访问日志,分析客户端访问情况,比如检查是否存在高频访问接口、接口的QPS情况、客户端请求量TOP10、接口响应耗时分布情况等
解决方案
1、首先下载 nginx 日志分析工具
https://anyshare.aishu.cn/link/AR6AC84189CCD74EB7B0FD8B1D2201A685
文件夹名:nginx日志分析工具
文件夹路径:AnyShare://技术资料(Technical Knowledge)/1-AnyShare Family/04.系统工具/nginx日志分析工具
2、AnyShare5.0、AnyShare6.0 收集访问日志方法
AS5、AS6默认没有打开nginx日志,使用的是默认nginx日志格式。我们需要修改nginx配置打开access日志,并且调整日志格式。另外AS5、AS6是LVS负载均衡模式,最好是能把所有应用负载节点的日志同时收集然后合并到一个文件分析。
AS5、AS6 打开收集完后,一定要及时关闭,防止访问日志占用大量空间,导致系统异常
AnyShare 5.0、6.0 日志设置方法:
备份 nginx.conf,然后修改 /usr/loca/nginx/conf/nginx.conf
添加下列内容,然后注释 access_log off;
log_format main '[$time_local] [$remote_addr] - [$remote_user] --> [$http_host] [$server_port] --> [$upstream_addr] '
'[$request_time] [$upstream_response_time] [$request] '
'[$status] [$request_body] [$body_bytes_sent] '
'[$http_user_agent] [$http_x_forwarded_for] [$upstream_cache_status]' ;
access_log /usr/local/nginx/logs/access.log main;
然后保存 /usr/loca/nginx/conf/nginx.conf
测试 nginx 配置是否正确
/usr/loca/nginx/sbin/nginx -t
显示ok successful 无问题后再重载配置,如果报错先检查配置
重载配置
/usr/loca/nginx/sbin/nginx -reload
检查是否生效,和日志格式,日志位于 /usr/local/nginx/logs 目录下
收集后的关闭:
编辑 nginx.conf
注释上一行 access_log /usr/local/nginx/logs/access.log main;
取消 access_log off; 的注释
然后测试和重载 nginx 配置
/usr/loca/nginx/sbin/nginx -t
/usr/loca/nginx/sbin/nginx -s reload
3、AnyShare7.0 收集访问日志方法
较新版本一般都默认开启了 ingress 日志,我们可以通过检查 ov 节点的日志看是否开启了相关日志,看看日志格式是否正确
可以根据节点找到对应的 ov 节点的 nginx class-443 pod,并查看日志
默认日志格式示例:
收集一段时间日志,可以通过重定向方式输出到一个文件,如果终止收集 ctrl + c
4、分析日志方法
可以将日志下载到 windows 电脑,把日志文件(日志要用.log作为后缀名)和分析工具放到一个目录下
直接双击会分析当前目录下最新的日志,不加参数的情况下默认是匹配 AS5、AS6的日志格式
如果点击后长期没有信息输出可以关闭后重试,正常会输出一个csv报告
命令行方式:
如果是分析 anyshare 7.0 默认日志格式,需要通过命令行方式执行,比如:
analyse_nginx.exe -f ar xxxx.log
更多命令行参数可以查看说明文档
5、报告示例
第一个 sheet 是根据 URL 生成的统计信息
第二个是根据客户端 IP 生成的统计信息