一般的web server有两部分日志:
一是运行的日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息;
二是访问日志信息,他是记录的访问的时间,ip,url,sessionId等信息。
下面来介绍使用tomcat记录访问日志的使用,这个是在tomcat/conf/server.xml
文件,需要配置如下的配置:
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log"
suffix=".txt"/>
有的版本可能默认不开启记录,只需要把这解注释就好了,记录的文件默认放在/tomcat/logs/${file},默认是每天产生一个文件,产生的文件类似于:
localhost_access_log.2023-06-11.txt
localhost_access_log.2023-06-12.txt
localhost_access_log.2023-06-13.txt
66.249.55.170 - - [11/Jun/2023:00:14:51 +0800] "GET /login HTTP/1.1" 200 6541
101.32.44.117 - - [11/Jun/2023:00:11:56 +0800] "-" 400 -
102.32.11.117 - - [11/Jun/2023:00:12:56 +0800] "-" 401 -
101.32.22.117 - - [12/Jun/2023:00:13:57 +0800] "-" 404 -
103.32.33.117 - - [12/Jun/2023:00:14:57 +0800] "-" 302 -
如果想自己定义书写的文件的格式可以对上面的pattern里面的内容进行修改,可以修改的参数有以下数据
具体的日志产生样式说明如下(从官方文档中摘录):
%a - 远端IP地址
%A - 本地IP地址
%b - 发送的字节数,不包括HTTP头,如果为0,使用"-"
%B - 发送的字节数,不包括HTTP头
%h - 远端主机名(如果resolveHost=false,远端的IP地址)
%H - 请求协议
%l - 从identd返回的远端逻辑用户名(总是返回 '-')
%m - 请求的方法(GET,POST,等)
%p - 收到请求的本地端口号
%q - 查询字符串(如果存在,以 '?'开始)
%r - 请求的第一行,包含了请求的方法和URI
%s - 响应的状态码
%S - 用户的session ID
%t - 日志和时间,使用通常的Log格式
%u - 认证以后的远端用户(如果存在的话,否则为'-')
%U - 请求的URI路径
%v - 本地服务器的名称
%D - 处理请求的时间,以毫秒为单位
%T - 处理请求的时间,以秒为单位
// 另外还可以将cookie, 客户端请求中带的HTTP头(incoming header), 会话(session)
// 或是ServletRequest中的数据都写到Tomcat的访问日志中,你可以用下面的语法来引用。
%{xxx}i – 记录客户端请求中带的HTTP头xxx(incoming headers)
%{xxx}c – 记录特定的cookie xxx
%{xxx}r – 记录ServletRequest中的xxx属性(attribute)
%{xxx}s – 记录HttpSession中的xxx属性(attribute)
附:做一个在线分析访问日志的页面
a.查看日志中访问次数最多的前10个IP
cat pcaccess.log|cut -d ’ ’ -f 1 |sort |uniq –c | sort -nr | awk ‘{print $0 }’ | head -n 10 |less
b.查看日志中出现100次以上的IP
#cat pcaccess.log |cut -d ’ ’ -f 1 |sort |uniq -c | awk ‘{if ($1 > 100) print $0}’|sort -nr |less
c.查看最近访问量最高的URL
假设第九个位置是url,则命令如下:
#cat pcaccess.log |tail -10000|awk ‘{print $9}’|sort|uniq -c|sort -nr|less
d.查看最近访问量最高的页面(.jsp)
#cat pcaccess.log |awk ‘{print $9}’|grep ‘.jsp’|sort|uniq -c|sort -nr |head -n 10
e.查看日志中访问超过100次的页面
#cat pcaccess.log | cut -d ’ ’ -f 9| sort |uniq -c | awk ‘{if ($1 > 100) print $0}’ | less
f.某天访问网站的独立IP有多少
#cat pcaccess.log|grep ‘17/Oct/2012’|grep “******”|wc|awk ‘{print $1}’|uniq
g.统计某类url,一天的访问次数
#cat pcaccess.log |grep ‘17/Oct/2012’|awk ‘{print $9}’|grep ‘/model.html’|wc -l
h.列出传输时间超过 3 秒的文件
9
,
9 ,
#cat timeurl|awk ‘($NF > 3){print $1,$2}’
找出传输时间超过3s的文件并且出现次数最多的前20个
#cat timeurl|awk ‘($NF > 3){print $1}’|sort -n|uniq -c|sort -nr|head -20
i.列出传输最大的几个exe文件(分析下载站的时候常用)
#cat pcaccess.log |awk ‘($7~/.exe/){print $14,$9}’|sort -nr|head -20
j.统计404的连接
#awk ‘($12 ~/404/)’ pcaccess.log | awk ‘{print $12,$9}’ | sort|uniq -c|sort -nr
k.统计http status
#cat pcaccess.log |awk ‘{counts[$(12)]+=1}; END {for(code in counts) print code, counts[code]}’
#cat pcaccess.log |awk ‘{print $12}’|sort|uniq -c|sort -rn
统计意向 转载于 https://blog.csdn.net/weixin_34406796/article/details/93072464
原文地址:https://blog.csdn.net/qq_26599807/article/details/131430927
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_33910.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!