今天讲下tomcat访问日志方面的内容,会比较杂,主要是关于access.log一般会去怎么配置和获取什么信息。下面介绍访问日志的配置、通过脚本查访问日志得到所有请求的url,还有通过访问日志来查看前30条访问比较慢的接口。
tomcat访问日志格式配置,在config/server.xml里Host标签下加上
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" [%{postdata}r] %s %{Referer}i %{User-Agent}i %T %b" />
在日志文件中将看到如下文本:
10.217.14.16 - - [21/Oct/2018:15:48:54 0800] "POST /updates/related_notice_num.json HTTP/1.0" [channel=App Store&gid=92391918-2173-4A66-8B31-B2FB3F8FB3DF&os=2&plat=2&sver=10.000000&token=MzM1OTc0MjQ1MkB3ZWliby55bXguY29tfHdlaWJvfDQ5ZGFmMjk0YjQ5YWQxMTZiZjBmYWM4ZDdhYzg3ZWQ0&ua=&ver=4.2.1] 200 - AllApp/4.2.1 (iPhone; iOS 10.0.2; Scale/3.00) 0.004 91
参数说明:
#! /bin/bash #执行本脚本,可以得到tomcat access.log所有的url DIR_NAME="/home/tomcat8081/logs/" REPORT_FILENAME="/opt/url.txt" for line in `dir $DIR_NAME` do line=${DIR_NAME}${line} echo current file is $line cat $line | awk {'print "http://"substr($6,0,length($6)-1)'} >> $REPORT_FILENAME done
执行脚本chmod u x tomcat_access.sh ./tomcat_access.sh
查看前二十行内容:head -n 20 url.txt
查看最耗时的接口命令如下:
cat /home/tomcat8081/logs/localhost_access_log.2018-03-27.txt | awk '{print $(NF-1)" "$0}' | sort -n -r| awk '{$1="";print $0}'
说明:因为日志倒数第二列显示的访问时间,所以按照倒数第二列由大到小显示接口以及访问时间。这样我们就能找出接口口耗时较大,然后对其进行优化,提高用户体验。
掌握上面内容,tomcat access.log方面就七七八八了,建议大家生产环境也这样配置,这些信息对于我们调优和排错是有用的。同样道理,nginx的access.log也可以考虑怎么配置,一通百通。
后面会分享更多关于devops和DBA方面内容,感兴趣的朋友可以关注下!
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved