关于Tomcat访问日志即localhost_access_log.2023-06-18.txt的分析和配置

一般的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)

附:做一个在线分析访问日志的页面

假设pcaccess.log是某应用的accesslog

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

左边的数字是出现的次数,右边的参数是对应的URL

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 秒的文件

首先把请求时间和文件提取出来(假如倒数第四个域是请求时间)

#cat pcaccess.log|awk ‘{print 9 , 9 , 9(NF-4)}’ >timeurl

找出传输时间超过3s的文件

#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

页面制作中,敬请期待…

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
最近学习Nginx+tomcat实现 负载均衡。 首先大家注意: 本文章中没有session共享,关于session共享我会在下一篇中讲解,先实现Nginx+tomcat负载均衡再实现session共享。 从网上查了好多资料,多走了很多弯路,现在把自己成功的方法拿出来与大家分享。 Window7 我是在Win7上做的。不是什么Linux,网上好多资料,特别麻烦。 Nginx Nginx 比较好找到,直接去网上下载 网址: http://nginx.org/en/download.html 版本不作要求了,(比如1.2.9版本),都有。 JDK JAVA的各种环境都要有。 版本不要求 Tomcat 这里我给大家提供tomcat6 Tomcat各种版本的下载地址我也提供给大家:http://tomcat.apache.org/download-60.cgi 大家可以先用我tomcat6 学会了,在下载自己需要的版本。 词条科普 另外我把实现过程中遇到的知识点都总结好了,一起提供给大家学习。 步骤: 注:本例程以一台win7机器为例子,即同一台机器上装一个nginx和2个Tomcat。 且安装了JDK。 便于管理将用到的资料放在一个文件夹下 我在D盘 创建 server 文件夹 . 1. Nginx 下载直接解压缩到server,点nginx.exe 执行 安装后如果可用,可在任务管理其中找到如图类似,并且在浏览器中输入 http://localhost/ 浏览器显示如下两个图 说明成功 2.Tomcat 同样将自己下载的或者我提供的tomcat 放到D盘的server下不过要复制成两份或者多份。 命名如:(便于区别 我们只用两个来讲解 ,多个tomcat和两个原理是一样的) 1、server.xml配置 我们需要在一台机器上跑 2 个不同的 tomcat ,避免出现端口被占用的情况,为了规范统一,我们修改全部tomca端口。分别找到tomcat6的1和2 的conf下的 server.xml。 修改Server端口 找到Server将: 改为 XXXX 在这里表示不同的端口:我的两个 tomcat 分别使用 8005和8006; 2.1.2、修改Connector端口 找到Connector将: 改为 XXXX 在这里表示不同的端口:我的两个 tomcat 分别使用 8081和8082; 2.1.3、修改Engine端口 找到Engine将: 改为 tomcatX 在这里表示不同的tomcat,我的两个 tomcat 分别使用 tomcat1和tomcat2;来区分。 这个设置是主要用以tomcat的集群。 如果看不懂可以去看我提供的tomcat我已经改好了。 启动tomcat服务 分别到两个tomcat下,直接双击D:\server\apache-tomcat-6.0.39_1\bin\startup.bat启动tomcat1 D:\server\apache-tomcat-6.0.39_2\bin\startup.bat启动tomcat2 出现以下页面表示启动成功 在浏览器中输入 http://localhost:8081 http://localhost:8082 出现 标示成功 3、Nginx+Tomcat负载均衡配置 首先创建两个文件,这两个文件 我来提供,将这两个文件拷入Nginx的conf文件夹下 1.proxy.conf 文件内容 #负责代理转发 proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值