TOMCAT 开启访问日志功能(ACCESS LOG)
- 格式:pdf
- 大小:558.42 KB
- 文档页数:10
tomcataccess⽇志详解配置在:/home/admin/wdetail/conf/tomcat-server.xml开启⽇志将下⾯内容的注释去掉:<valve classname="org.apache.catalina.valves.AccessLogValve" <="" div="" style="word-wrap: break-word;">prefix="localhost_access_log." suffix=".log"pattern="common" directory="${jboss.server.home.dir}/log"resolveHosts="false" />pattern 项的修改,可以改变⽇志输出的内容。
该项值可以为: common 与 combined ,这两个预先设置好的格式对应的⽇志输出内容如下:common 的值: %h %l %u %t %r %s %bcombined 的值: %h %l %u %t %r %s %b %{Referer}i %{User-Agent}ipattern的格式也可以⾃定义:<valve classname="org.apache.catalina.valves.AccessLogValve" <="" div="" style="word-wrap: break-word;">prefix="localhost_access_log." suffix=".log"pattern="%{X-Real-IP}i %a %l %u %D %t %r %s %b %{Referer}i %{User-Agent}i" directory="${jboss.server.home.dir}/../logs" resolveHosts="false" />这⾥log的路径可以更改:directory="${jboss.apphome.dir}/logs"jboss.apphome.dir这个变量必须要到jbossctl⾥去定义,加到JAVA_OPTS⾥⾯去:JAVA_OPTS="${JAVA_OPTS} -Djboss.apphome.dir=$BASE_HOME"碰到问题,jboss记录的ip不是真实ip,需要在nginx上配置下:proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;pattern的详细说明%a 远端IP%A 本地IP%b 发送的字节数,不包含HTTP头,如果为0,使⽤”-”%B 发送的字节数,不包含HTTP头%h 远端主机名(如果resolveHosts=false),远端的IP%H 请求协议%l 从identd返回的远端逻辑⽤户名,总是返回’-’%m 请求的⽅法%p 收到请求的本地端⼝号%q 查询字符串%r 请求的第⼀⾏%s 响应的状态码%S ⽤户的sessionID%t ⽇志和时间,使⽤通常的log格式%u 认证以后的远端⽤户(如果存在的话,否则为’-’)%U 请求的URI路径%v 本地服务器的名称%D 处理请求的时间,以毫秒为单位%T 处理请求的时间,以秒为单位参数/选项说明:className: 实现的java类名,必须设置成org.apache.catalina.valves.AccessLogValve;directory: 存放⽇志⽂件的⽬录;pattern: 需要记录的⽇志信息的格式布局,如果是”common”或者”combined”,说明是使⽤的标准记录格式,也有⾃定义的格式,下⾯会详细说明;prefix: ⽇志⽂件名的前缀,如果没有指定,缺省值是”access_log.;(要注意后⾯有个⼩点);resolveHosts: 将远端主机的IP通过DNS查询转换成主机名,设为true。
tomcat常用面试题当面试Tomcat相关职位时,以下是一些常见的面试问题及参考答案,供您参考:1. 请介绍一下Tomcat?Tomcat是一个开源的Web服务器和Servlet容器,是Apache软件基金会的一个项目。
它实现了Java Servlet、JavaServer Pages (JSP)和Java WebSocket技术,并提供了一个运行这些技术的环境。
Tomcat是当前最流行的Java应用服务器之一。
2. Tomcat和其他Web服务器有什么区别?Tomcat是一个Servlet容器,能够处理Java Servlet和JSP等Java Web技术,而其他Web服务器则可能只能处理静态内容或其他语言的Web应用。
Tomcat是一个轻量级的服务器,非常适合用于开发和测试环境,而其他Web服务器如Apache HTTP Server则更适合用于处理复杂的Web应用和大规模流量。
3. 请解释一下Tomcat的架构?Tomcat的架构包括以下几个主要组件:Connector(连接器)、Container(容器)、Realm(领域)和Processor(处理器)。
- Connector用于接受客户端请求,并将其传递给Tomcat的容器。
- Container负责管理Servlet和JSP等应用组件的生命周期,并处理请求和响应。
- Realm用于进行用户认证和授权等安全相关操作。
- Processor负责处理每个请求,将其传递给适当的容器处理。
4. 如何配置Tomcat的连接器(Connector)?Tomcat支持多种连接器,常用的是HTTP Connector和AJP Connector。
可以通过修改Tomcat的server.xml文件来配置连接器。
例如,可以指定连接器的端口、协议和其他属性,以满足特定的应用需求。
5. 请介绍一下Tomcat的类加载机制?Tomcat使用了一个叫做"Catalina"的类加载器体系。
修改位置如下图具体的解释如下Access Log Valve用来创建日志文件,格式与标准的web server日志文件相同。
可以使用用日志分析工具对日志进行分析,跟踪页面点击次数、用户会话的活动等。
Access Log Valve 的很多配置和行为特性与File Logger相同,包括每晚午夜自动切换日志文件。
Access Log Valve可以和任何Catalina容器关联,记录该容器处理的所有请求。
例子如下:<Valve className="org.apache.catalina.valves.AccessLogValve"directory="logs" prefix="localhost_access_log." suffix=".txt"pattern="%{X-Forwarded-For-Pound}i %l %u %t "%r" %s %b %T"%{HTTP_X_UP_CALLING_LINE_ID}i" "%{x-up-calling-line-id}i" "%{User-Agent}i""pattern属性值由字符串常量和pattern标识符加上前缀"%"组合而成。
pattern标识符加上前缀"%",用来代替当前请求/响应中的对应的变量值。
目前支持如下的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 - 处理请求的时间,以秒为单位运行结果常使用web服务器的朋友大都了解,一般的web server有两部分日志:一是运行中的日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息二是访问日志信息,它记录的访问的时间,IP,访问的资料等相关信息。
tomcat常用的调优参数Tomcat常用的调优参数Tomcat是一个开源的Java Servlet容器,广泛应用于Java Web 应用程序的部署和运行。
为了提高Tomcat的性能和稳定性,我们可以通过调优参数来优化其配置。
本文将介绍一些常用的Tomcat 调优参数,帮助您更好地配置和优化T omcat服务器。
1. 内存设置- -Xms: 设置JVM的初始堆大小,建议设置为物理内存的1/4或1/3。
- -Xmx: 设置JVM的最大堆大小,建议设置为物理内存的1/2或2/3。
- -XX:MaxPermSize: 设置JVM的永久代大小,建议设置为256MB或512MB。
- -XX:MaxMetaspaceSize: 设置JVM的元空间大小,建议设置为256MB或512MB。
2. 线程设置- maxThreads: 设置Tomcat的最大线程数,建议根据服务器的硬件配置和并发请求数进行调整。
- acceptCount: 设置Tomcat接受请求的队列大小,建议设置为200或300。
- connectionTimeout: 设置Tomcat的连接超时时间,建议设置为30秒或60秒。
3. 连接器设置- protocol: 设置连接器的协议,常用的有HTTP/1.1和AJP/1.3。
- port: 设置连接器的监听端口,建议使用80端口作为HTTP连接器的默认端口。
- maxKeepAliveRequests: 设置每个Keep-Alive连接的最大请求数,建议设置为100或200。
- keepAliveTimeout: 设置Keep-Alive连接的超时时间,建议设置为5秒或10秒。
4. 缓存设置- cacheSize: 设置Tomcat的静态文件缓存大小,建议根据静态文件的数量和大小进行调整。
- cacheTTL: 设置静态文件缓存的过期时间,建议设置为1小时或更长。
- cacheObjectMaxSize: 设置缓存对象的最大大小,建议根据缓存对象的平均大小进行调整。
springbootTomcat访问⽇志1.Tomcat设置访问⽇志1 <Host name="localhost" appBase="webapps"2 unpackWARs="true" autoDeploy="true">3 <!--4 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"5 prefix="localhost_access_log." suffix=".txt"6 pattern="%h %l %u %t "%r" %s %b" />7 -->8 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"9 prefix="localhost_access_log." suffix=".txt"10 pattern="%h,%l,%u,%t,%T,"%r",%s,%b,%{Referer}i,"%{User-Agent}i",%{X-Requested-With}i"11 fileDateFormat="yyyy-MM-dd.HH"12 />1314 </Host>2.springboot设置访问⽇志,在properties配置⽂件中添加tomcat⽇志配置1 #内嵌tomcat⽇志2 server.tomcat.accesslog.buffered=true3 server.tomcat.accesslog.directory=/usr/microStorage/tomcatLog4 server.tomcat.accesslog.enabled=true5 #每天保存⼀个6 server.tomcat.accesslog.file-date-format=yyyy-MM-dd7 server.tomcat.accesslog.pattern=%h %l %T %t %r %s %b %{Referer}i %{User-Agent}i8 server.tomcat.accesslog.prefix=access_log9 server.tomcat.accesslog.rename-on-rotate=false10 server.tomcat.accesslog.request-attributes-enabled=false11 server.tomcat.accesslog.rotate=true12 server.tomcat.accesslog.suffix=.log3.⽇志分析,通过正在表达式,将需要分析的信息进⾏正则捕获提取,然后根据需要进⾏相关数据的统计及可视化展⽰ 1public static void parse() throws Exception{2 String path = "D:/logs/localhost_access_log.2018-09-30.11.txt";3 BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(path)));4 String line = null;5 String reg = "^(.+?),(.+?),(.+?),(.+?),(.+?),(\\\".+?\\\"),(.+?),(.+?),(.+?),(\\\".+?\\\"),(.+?),(.+?)$";6 Pattern pattern = pile(reg);7while((line=br.readLine())!=null) {8 System.out.println(line);9 Matcher matcher = pattern.matcher(line);10 matcher.matches();11// pattern="%h,%l,%u,%t,%T,"%r",%s,%b,%{Referer}i,"%{User-Agent}i",%{X-Requested-With}i,%{passport}c"12 System.out.println("ip="+matcher.group(1));13 System.out.println("date="+matcher.group(4));14 System.out.println("cost="+matcher.group(5));15 System.out.println("request="+matcher.group(6));16 System.out.println("status="+matcher.group(7));17 System.out.println("bytes="+matcher.group(8));18 System.out.println("Referer="+matcher.group(9));19 System.out.println("User-Agent="+matcher.group(10));20 System.out.println("X-Requested-With="+matcher.group(11));21 System.out.println("passport="+matcher.group(12));22 System.out.println("------------------------------------");23 }24 br.close();25 }。
tomcat访问(access)⽇志配置和记录Post请求参数⼀、配置与说明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/2016: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参数说明:className 官⽅⽂档上说了:This MUST be set toorg.apache.catalina.valves.AccessLogValve to use the default access log valve。
tomcat的localhost_access_log⽇志⽂件⼀、服务器打印⽇志要关闭hibernate的⽇志,⾸先要把hibernate.show_sql设置为false;然后设置log4j.properties。
# Control logging for other open source packages.opensymphony.oscache=ERROR.sf.navigator=ERROR.sf.acegisecurity=WARN.sf.acegisecurity.intercept.event.LoggerListener=WARNmons=ERROR.apache.struts=WARN.displaytag=ERROR.springframework=WARN.ibatis.db=WARN.apache.velocity=WARN# Don't show debug logs for WebTest.canoo.webtest=WARN# All hibernate log output of "info" level or higher goes to stdout.# For more verbose logging, change the "info" to "debug" on the last line..hibernate.ps.PreparedStatementCache=WARN.hibernate=WARN# Changing the log level to DEBUG will result in Hibernate generated# SQL to be logged..hibernate.SQL=ERROR# Changing the log level to DEBUG will result in the PreparedStatement# bound variable values to be logged..hibernate.type=ERROR⼆、tomcat的localhost_access_log⽇志⽂件 tomcat的logs⽬录下除了有catalina.out⽇志⽂件外,还有个localhost_access_log.yyyy-MM-dd.txt的⽇志⽂件。
Tomcataccesslog配置在tomcat的access中打印出请求的情况可以帮助我们分析问题,通常⽐较关注的有访问IP、线程号、访问url、返回状态码、访问时间、持续时间。
在Spring boot中使⽤了内嵌的tomcat,可以通过server.tomcat.accesslog配置tomcat 的access⽇志,这⾥就以Spring boot 1.5.3为例。
server.tomcat.accesslog.buffered=true # Buffer output such that it is only flushed periodically.server.tomcat.accesslog.directory=logs # Directory in which log files are created. Can be relative to the tomcat base dir or absolute.server.tomcat.accesslog.enabled=false # Enable access log.server.tomcat.accesslog.file-date-format=.yyyy-MM-dd # Date format to place in log file name.server.tomcat.accesslog.pattern=common # Format pattern for access logs.server.tomcat.accesslog.prefix=access_log # Log file name prefix.server.tomcat.accesslog.rename-on-rotate=false # Defer inclusion of the date stamp in the file name until rotate time.server.tomcat.accesslog.request-attributes-enabled=false # Set request attributes for IP address, Hostname, protocol and port used for the request.server.tomcat.accesslog.rotate=true # Enable access log rotation.server.tomcat.accesslog.suffix=.log # Log file name suffix.⽐较常⽤的有(省略了前缀server.tomcat.accesslog.):enabled,取值true、false,需要accesslog时设置为truedirectory,指定access⽂件的路径pattern,定义⽇志的格式,后续详述rotate,指定是否启⽤⽇志轮转。
通过查看服务器各种日志1. 访问日志(Access Logs):2. 错误日志(Error Logs):错误日志记录了服务器上发生的各种错误信息,如404错误(页面未找到)、500错误(服务器内部错误)等。
通过查看错误日志,可以快速定位和解决服务器上的错误。
这对于网站管理员和开发人员来说是非常有帮助的,可以及时修复bug,提高网站的稳定性和可用性。
3. 安全日志(Security Logs):安全日志记录了关于服务器安全方面的信息,如登录失败记录、被拒绝的访问尝试等。
通过查看安全日志,可以及时发现潜在的安全威胁,并采取相应的安全措施来保护服务器。
这对于网络管理员和安全专家来说是非常重要的,可以确保服务器的安全性。
4. 应用程序日志(Application Logs):应用程序日志记录了应用程序在服务器上的运行情况,如出现异常、调试信息等。
通过查看应用程序日志,可以定位和解决应用程序中的问题。
这对于开发人员来说是非常有帮助的,可以帮助他们改进应用程序的质量和性能。
5. 系统日志(System Logs):系统日志记录了服务器操作系统的运行情况,如启动信息、关机信息、内核信息等。
通过查看系统日志,可以了解服务器的性能状况和资源利用情况,及时发现和解决系统故障。
这对于系统管理员来说是非常重要的,可以确保服务器的稳定运行。
总之,通过查看服务器各种日志,可以获得服务器的各种信息,有助于监控服务器的性能、诊断问题和进行故障排除。
不同类型的日志提供了不同的信息,可以帮助不同的用户解决不同的问题。
因此,合理利用服务器日志是服务器管理和维护的重要手段之一。
Tomcat日志配置Tomcat 日志信息分为两类:一是运行中的日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息。
二是访问日志信息,它记录的访问的时间,IP ,访问的资料等相关信息。
一:Tomcat server.xml日志的设定Tomcat的访问日志是靠org.apache.catalina.valves.AccessLogValve来控制的,你可以修改$tomcat/conf/server.xml来启用它($tomcat是Tomcat安装的目录)。
AccessLogValve默认应该是注释掉的,简单的将其注释去掉,然后重启Tomcat就可以了。
以下是Tomcat默认的配置:在server.xml里的<host>标签下加上<Valve className=“org.apache.catalina.valves.AccessLogValve”directory=“logs” prefix=“localhost_access_log.” suffix=“.txt”pattern=“common” resolveHosts=“false”/>各个参数:Ps:具体参数详见Tomcat官网:/tomcat-6.0-doc/config/valve.html className 官方文档上说了This MUST be set to org.apache.catalina.valves.AccessLogValve to use the default access log valve. &<60; 想配置访问日志?这就必须得写成这样。
directory这个东西是日志文件放置的目录,在tomcat下面有个logs文件夹,那里面是专门放置日志文件的,当然你也可以修改,我就给改成了D:\Prefix这个是日志文件的名称前缀,我的日志名称为localhost_access_log.2007-09-22.txt,前面的前缀就是这个localhost_access_logSuffix 这就是后缀名啦,可以改成别的 .txt就是后缀名Pattern这个是最主要的参数了,具体的咱们下面讲,这个参数的内容比较丰富resolveHosts如果这个值是true的话,tomcat会将这个服务器IP地址通过DNS转换为主机名,如果是false,就直接写服务器IP地址啦还有一些参数:Rotatable默认为true,默认的设置使得你的tomcat生成的文件命为prefix(前缀)+.+时间(一般是按天算)+.+suffix(后缀),参照我的日志名就知道了:localhost_access_log.2007-09-22.txt、使用这个需要谨慎,因为你将其设置为false的话,tomcat会忽略时间,不会新生成文件,最后导致你的文件超级大,这样生成的文件名就是:localhost_access_log.txtcondition这个参数不太实用,可以设置任何值,比如咱们设置成condition="tkq",那么只有当ServletRequest.getAttribute("tkq")为空的时候,才会被记录下来fileDateFormat最后的一个参数,很明白,这就是时间格式嘛,但是这个时间格式是针对日志文件起作用的,还记得咱们生成的日志文件全名么:localhost_access_log.2007-09-22.txt,这里面的2007-09-22就是这么来的,如果你想让tomcat每小时生成一个日志文件,也很简单,将这个值设置为:fileDateFormat="yyyy-MM-dd.HH",当然也可以按分钟生成什么的,自己改改吧pattern以下列出了一些基本的日志格式项:∙%a–远程主机的IP (Remote IP address)∙%A–本机IP (Local IP address)∙%b–发送字节数,不包含HTTP头,0字节则显示‘-’ (Bytes sent, excluding HTTP headers, or ‘-’ if no byteswere sent)∙%B–发送字节数,不包含HTTP头(Bytes sent, excluding HTTP headers)∙%h–远程主机名(Remote host name)∙%H–请求的具体协议,HTTP/1.0 或HTTP/1.1 (Request protocol)∙%l–远程用户名,始终为‘-’ (Remote logical username from identd (always returns ‘-’))∙%m–请求方式,GET, POST, PUT (Request method)∙%p–本机端口(Local port)∙%q–查询串(Query string (prepended with a ‘?’ if it exists, otherwise an empty string)∙%r– HTTP请求中的第一行(First line of the request)∙%s– HTTP状态码(HTTP status code of the response)∙%S–用户会话ID (User session ID)∙%t–访问日期和时间(Date and time, in Common Log Format format)∙%u–已经验证的远程用户(Remote user that was authenticated∙%U–请求的URL路径(Requested URL path)∙%v–本地服务器名(Local server name)∙%D–处理请求所耗费的毫秒数(Time taken to process the request, in millis)∙%T–处理请求所耗费的秒数(Time taken to process the request, in seconds)你可以用以上的任意组合来定制你的访问日志格式,也可以用下面两个别名common和combined 来指定常用的日志格式:∙common–%h %l %u %t "%r" %s %b∙combined -%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"另外你还可以将cookie, 客户端请求中带的HTTP头(incoming header), 会话(session)或是ServletRequest中的数据都写到Tomcat的访问日志中,你可以用下面的语法来引用。
tomcat 的安全审计日志
Tomcat的安全审计日志在Web应用的安全管理中占据着重要的地位。
通过对安全审计日志的监控和分析,管理员可以实时了解系统的安全状况,及时发现并处理潜在的安全威胁。
Tomcat的安全审计日志主要包括访问日志、操作日志和安全事件日志等。
访问日志记录了用户对Web应用的访问情况,包括访问时间、访问IP、访问页面等信息,通过分析访问日志可以发现异常的访问行为,如频繁的访问、非法的访问等。
操作日志则记录了用户对Web应用的操作情况,如登录、注销、修改配置等操作,通过操作日志可以追溯用户的操作轨迹,便于问题的排查和追责。
安全事件日志则记录了系统中发生的安全事件,如用户认证失败、访问被拒绝等事件,这些事件是评估系统安全性的重要依据。
在实际应用中,为了更好地满足安全审计的需求,可以对Tomcat的安全审计日志进行定制化配置。
例如,可以通过配置AccessLogValve来开启访问日志,并设置日志的输出格式和输出位置。
同时,可以通过开发自定义的日志记录模块来记录操作日志和安全事件日志,以满足特定的安全审计需求。
除了配置日志记录外,还需要对日志进行定期的分析和审计。
通过分析日志可以发现系统的安全漏洞和异常行为,及时采取相应的措施进行修复和防范。
同时,还需要制定相应的安全策略和流程,确保日志的安全性和可靠性,避免日志被篡改或泄露。
总之,Tomcat的安全审计日志是保障Web应用安全的重要手段之一,通过对日志的监控和分析,可以及时发现并处理潜在的安全威胁,确保系统的稳定性和安全性。
tomcat日志类型
Tomcat的日志类型主要包括以下几种:
1.应用日志:主要记录应用事件的,针对应用级别的排错比较有用,比如应用性能比较慢。
2.服务器日志:和console日志是相同的,不同之处在于,服务器日志是保存在文件中的,可以随时查看。
3.控制台日志:记录了tomcat的启动和加载器的顺序的详细信息,该日志文件叫做catalina.out。
在排查服务器启动、应用的部署错时比较有用。
4.访问日志:记录所有进入Tomcat服务器的HTTP请求。
这些日志包含有关请求的详细信息,如客户端IP地址、请求的时间戳、请求方法、请求的URL、HTTP状态码等。
5.错误日志:记录在处理请求过程中发生的错误和异常。
这些日志包含有关错误的详细信息,如错误的时间戳、错误类型、异常堆栈跟踪等。
6.Catalina日志:记录Tomcat服务器的启动、关闭以及关键组件(如Servlet、过滤器等)的初始化和销毁过程。
这些日志提供有关服务器运行状态的信息。
7.安全日志:记录与安全相关的事件和活动,如用户认证、授权失败等。
这些日志帮助管理员监视和审计服务器的安全性。
8.应用程序日志:这些日志由部署在Tomcat上的应用程序生成,用于记录应用程序自身的日志信息。
应用程序日志可以包括调试信息、业务日志、应用程序错误等。
这些日志可以帮助管理员更好地了解Tomcat服务器的运行状态,及时发现并解决问题。
tomcat⽇志查看⽅式tomcat/logs/catalina.out ⽇志⽂件sed -n '/2022-03-29 10:08:00*/,/2022-03-29 10:16:00*/p' catalina.out > ccc.txt 截取某个时间段的⽇志sed -n '/2022-01-05 15:20:11*/,/2022-01-05 15:25:11*/p' catalina.out > web1.txttar -zcvf ccc.txt.tar.gz web.txt 压缩web.txt⽂件scp ccc.txt.tar.gz root@ip:/data/ 拷贝⽂件du -sh bbb.txt 查看⽂件⼤⼩head -n 10 xxx.log 查看开始的10条⽇志信息tail -n 10 xxx.log 查看最后的10条⽇志信息cat /dev/null > /data/tomcat/logs/xxx.log 清空⽇志tail -f catalina.out 实时查看⽇志du -h --max-depth=1 * 查看⽂件⽬录地下所有⽂件⼤⼩ps -ef | grep tomcat-xmgl 新项⽬管理系统查看进程https:///u010257076/article/details/51327546 参考地址,后台⽇志显⽰,参数配置1、修改startup.bat把call “%EXECUTABLE%” start %CMD_LINE_ARGS%修改为call "%EXECUTABLE%" run %CMD_LINE_ARGS%,修改之后如下图:2、修改catalina.bat查找catalina.bat含有%ACTION%的4⾏内容(在⽂件末),在后⾯添加 >> %CATALINA_HOME%/logs/catalina.out ,修改之后如下图:scp -P 9416 1.tar.gz root@ip:/data/download/0831/ 拷贝⽂件注:⾮默认的22端⼝加 -P 如果是拷贝⽂件夹,加 -rrsync -avzu -e 'ssh -p 22' /data/download/pudong/ROOT/r/cms/www/ root@ip:/data/tomcat/webapps/ROOT/r/cms/www/ 增量覆盖⽂件sync; echo 3 > /proc/sys/vm/drop_caches 清除系统缓存执⾏命令echo后⾯的数字意义:0 // 默认参数为 0. 1 - 清空页⾯缓存. 2 - 清空inodes(索引) 和⽬录树缓存 3 - 清空所有缓存.。
springboot打开tomcat的access⽇志 spring boot虽说内置了tomcat,但打出来的是jar包⽽⾮war包,更没有access⽇志,那么如何打开access⽇志呢?只需在application.properties中加⼊相关配置即可。
这⾥仍以多环境配置为例,原有配置就不贴了(参见),下⾯只贴打开access⽇志需要新增的配置: application.properties(也可⽤yml)加⼊通⽤配置:#tomcat的accesslog⽇志server.tomcat.accesslog.buffered=trueserver.tomcat.accesslog.enabled=trueserver.tomcat.accesslog.file-date-format=.yyyy-MM-ddserver.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %Dserver.tomcat.accesslog.prefix=access_logserver.tomcat.accesslog.rename-on-rotate=falseserver.tomcat.accesslog.request-attributes-enabled=falseserver.tomcat.accesslog.rotate=trueserver.tomcat.accesslog.suffix=.logserver.tomcat.accesslog.directory=logs application-dev.properties:#tomcat⽇志路径server.tomcat.basedir=/home/wumanshu application-prod.properties:#tomcat⽇志路径server.tomcat.basedir=/home/wulf/translate application-test.properties:#tomcat⽇志路径server.tomcat.basedir=/home/lulu 打完收⼯。
tomcat访问⽇志配置
tomcat中的logs⽬录中的localhost_access_log.XXX.txt⽂件就是tomcat的访问⽇志
打开看下,可以看到是这样的结构
从⽂件内容可以看出,这个⽇志⽂件可以很清楚的记录下每⼀个接⼝的访问IP以及访问时间、接⼝请求类型、URL、状态码以及字节⼤⼩等等
从接⼝发出⼀直到接⼝相应可以⼤致为下⾯的过程
客户端-----⽹络----中间件-----应⽤程序-----数据库----应⽤程序----中间件-----⽹络-----客户端
那么我们想要获取到中间件(tomcat)这⾥的耗时可以吗?答案是可以的,tomcat存在这样的功能配置
在conf/server.xml 配置⽂件中最后⾯存在
我们只需要在最后⾯加上 %T即可
最后进⼊tomcat中的bin⽬录重启tomcat,然后访问,检查⽇志中是否存在响应时间
看来中⽂会乱码,记得不要⽤中⽂的":"啊
改成英⽂的":"就OK了。
第一章Cronolog配置讲解1.1.cronolog介绍cronolog小工具可以很好处理Apache、Tomcat服务日志。
Apache有两个log文件access.log 和error.log。
error.log中存放诊断信息和处理请求中出现的错误,由于这里经常包含了出错细节以及如何解决,如果服务器启动或运行中有问题,首先就应该查看这个错误日志。
access.log 访问日志中会记录服务器所处理的所有请求。
在默认情况下,log记录存在于这两个单独的文件中,当网站访问量较大或者错误信息较多的时候,log文件的大小会急速增长。
一般每10000个请求,访问日志就会增加1MB或更多。
在这种情况下,如果当日志文件过大,就很难通过日志文件来分析。
而且,对于AWStats这样的日志分析软件,它要求日志文件是按日存储的。
Apache httpd可以通过管道将访问记录和出错信息传递给另一个进程,而不是写入一个文件。
只要用管道操作符”|“后面跟一个可执行文件名,就可以使这个程序从标准输入设备获得事件记录。
Apache在启动时,会同时启动这个管道日志进程,并且在运行过程中,如果这个进程崩溃了,会重新启动这个进程(所以我们称这个技术为”可靠管道日志”)。
Apache推荐使用cronolog程序对log文件进行截断并按日存放。
Tomcat服务默认将控制台的日志存放在catalina.out中,随着日志记录增加,查看维护信息很不方便,而使用cronolog程序对log文件进行截断并按日存放,很容易维护。
1.2.Linux 下的安装与配置步骤如下:✧下载:cronolog-1.6.2.tar.gz✧安装(默认是安装在/usr/local/sbin/下):√ # tar zxvf cronolog-1.6.2.tar.gz√ # ./configure (进入上面tar后生成的目录)√ # make√ # make install√ # which cronolog/usr/local/sbin/cronolog✧修改tomcat配置文件:tomcat/bin/catalina.sh中找到:org.apache.catalina.startup.Bootstrap "$@" start \>> "$CATALINA_BASE"/logs/catalina.out 2&1 &把上面的内容改成:org.apache.catalina.startup.Bootstrap"$@" start|/usr/local/sbin/cronolog$"CATALINA_BASE"/logs/catalina%Y%m%d.out >> /dev/null 2&1 &✧修改httpd.conf文件(如果有虚拟主机,虚拟主机也要配置)<VirtualHost *:80>ServerName CustomLog "|bin/cronolog.exe D:/logs/access_%Y%m%d.log" combined ErrorLog "|bin/cronolog.exe D:/logs/error_%Y%m%d.log"</VirtualHost>✧重启Tomcat|Apache服务1.3.Window下的安装与配置步骤如下:✧下载:win_version(ZIP file)✧cronolog.exe解压Copy到apache目录下的bin目录中。
tomcat的linux日志Tomcat是一种常用的开源Web服务器,广泛应用于Linux系统中。
在Tomcat运行的过程中,会生成各种日志文件,记录着服务器的运行状态、错误信息以及访问日志等。
本文将探讨Tomcat的Linux日志,包括日志的种类、作用、如何查看和分析等。
一、Tomcat日志的种类及作用1. 访问日志(access log):记录了用户对Tomcat服务器的访问情况,包括访问的URL、访问时间、客户端IP等信息。
访问日志可以帮助我们分析网站的访问量、用户行为等,进而优化网站的性能和用户体验。
2. 错误日志(error log):记录了Tomcat服务器在运行过程中的错误信息,比如请求超时、内存溢出、数据库连接失败等。
通过分析错误日志,可以及时发现和解决服务器的故障和异常情况,保证网站的稳定性和安全性。
3. 调试日志(debug log):记录了Tomcat服务器的调试信息,包括请求的处理流程、参数的传递、方法的调用等。
调试日志可以帮助开发人员快速定位和解决程序的bug,提高开发效率和代码质量。
二、如何查看和分析Tomcat日志1. 查看访问日志:访问日志通常存储在Tomcat的logs目录下,文件名为"localhost_access_log.[日期].txt"。
可以使用文本编辑器打开日志文件,查看其中的访问记录。
为了方便分析,可以将日志导入到Excel或数据库中进行统计和分析。
2. 查看错误日志:错误日志存储在Tomcat的logs目录下,文件名为"catalina.[日期].log"。
使用文本编辑器打开日志文件,查找关键字"ERROR"或"Exception",定位到错误信息所在的行。
根据错误信息中的提示,排查错误的原因,并采取相应的措施进行修复。
3. 查看调试日志:调试日志存储在Tomcat的logs目录下,文件名为"catalina.[日期].log"。
修改位置如下图具体的解释如下Access Log Valve用来创建日志文件,格式与标准的web server日志文件相同。
可以使用用日志分析工具对日志进行分析,跟踪页面点击次数、用户会话的活动等。
Access Log Valve 的很多配置和行为特性与File Logger相同,包括每晚午夜自动切换日志文件。
Access Log Valve可以和任何Catalina容器关联,记录该容器处理的所有请求。
例子如下:<Valve className="org.apache.catalina.valves.AccessLogValve"directory="logs"prefix="localhost_access_log."suffix=".txt"pattern="%{X-Forwarded-For-Pound}i%l%u%t"%r"%s%b%T"%{HTTP_X_UP_CALLING_LINE_ID}i""%{x-up-calling-line-id}i""%{User-Agent}i""resolveHosts="false"/>className实现的Java类名。
必须被设置成org.apache.catalina.valves.AccessLogValve。
directory 存放日志文件的目录,可以是相对路径或者绝对路径。
如果使用相对路径,是指相对于$CATALINA_HOME的路径。
如果不指定directory属性,缺省值是“logs”(相对于$CATALINA_HOME)pattern需要记录的请求/响应不同信息域的格式布局。
如果是“common”或者“combine”,说明选择标准格式。
下面会有关于配置这个属性的更多信息。
prefix 日志文件名的前缀。
如果没有指定,缺省值是“access_log.”。
如果不想使用前缀,使用长度为0的字符串。
resolveHosts 将远端主机的IP地址通过DNS查询转换成主机名,设为true。
如果为false,忽略DNS查询,报告远端的IP地址。
suffix 日志文件名的后缀。
如果没有指定,缺省值是“”。
如果不想使用后缀,使用长度为0的字符串。
rotatable缺省值为true,用来决定日志是否翻转的标志。
如果为false,日志文件永远不翻转,并且忽略fileDataFormat。
要谨慎使用。
condition打开条件日志。
如果设置了这个属性,只有在ServletRequest.getAttribute()是null的时候,才会为请求创建日志。
比如,如果condition设为junk,则只有在Servlet.getAttribute("junk")==null的时候,才会记录这个请求。
使用过滤器,可以很容易设置(或者取消设置)不同请求的属性。
fileDateFormat 允许在日志文件名称中使用定制的日期格式。
日志的格式也决定了日志文件翻转的频率。
如果想每个小时翻转一次,将这个值设为yyyy-MM-dd.HHpattern属性值由字符串常量和pattern标识符加上前缀"%"组合而成。
pattern标识符加上前缀"%",用来代替当前请求/响应中的对应的变量值。
目前支持如下的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-处理请求的时间,以秒为单位运行结果常使用web服务器的朋友大都了解,一般的web server有两部分日志:一是运行中的日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息二是访问日志信息,它记录的访问的时间,IP,访问的资料等相关信息。
现在我来和大家介绍一下利用tomcat产生的访问日志数据,我们能做哪些有效的分析数据?首先是配置tomcat访问日志数据,默认情况下访问日志没有打开,配置的方式如下:编辑${catalina}/conf/server.xml文件.注:${catalina}是tomcat的安装目录把以下的注释(<!---->)去掉即可。
<!--<Valve className="org.apache.catalina.valves.AccessLogValve"directory="logs"prefix="localhost_access_log."suffix=".txt"pattern="common"resolveHosts="false"/>-->其中directory是产生的目录tomcat安装${catalina}作为当前目录pattern表示日志生产的格式,common是tomcat提供的一个标准设置格式。
其具体的表达式为%h%l%u%t"%r"%s%b但本人建议采用以下具体的配置,因为标准配置有一些重要的日志数据无法生。
%h%l%u%t"%r"%s%b%T具体的日志产生样式说明如下(从官方文档中摘录):*%a-Remote IP address*%A-Local IP address*%b-Bytes sent,excluding HTTP headers,or'-'if zero*%B-Bytes sent,excluding HTTP headers*%h-Remote host name(or IP address if resolveHosts is false)*%H-Request protocol*%l-Remote logical username from identd(always returns'-')*%m-Request method(GET,POST,etc.)*%p-Local port on which this request was received*%q-Query string(prepended with a'?'if it exists)*%r-First line of the request(method and request URI)*%s-HTTP status code of the response*%S-User session ID*%t-Date and time,in Common Log Format*%u-Remote user that was authenticated(if any),else'-'*%U-Requested URL path*%v-Local server name*%D-Time taken to process the request,in millis*%T-Time taken to process the request,in secondsThere is also support to write information from the cookie,incoming header,the Session or something else in the ServletRequest.It is modeled after the apache syntax:*%{xxx}i for incoming headers*%{xxx}c for a specific cookie*%{xxx}r xxx is an attribute in the ServletRequest*%{xxx}s xxx is an attribute in the HttpSession现在我们回头再来看一下下面这个配置%h%l%u%t"%r"%s%b%T生产的访问日志数据,我们可以做哪些事?先看一下,我们能得到的数据有:*%h访问的用户IP地址*%l访问逻辑用户名,通常返回'-'*%u访问验证用户名,通常返回'-'*%t访问日时*%r访问的方式(post或者是get),访问的资源和使用的http协议版本*%s访问返回的http状态*%b访问资源返回的流量*%T访问所使用的时间有了这些数据,我们可以根据时间段做以下的分析处理(图片使用jfreechart工具动态生成):*独立IP数统计*访问请求数统计*访问资料文件数统计*访问流量统计*访问处理响应时间统计*统计所有404错误页面*统计所有500错误的页面*统计访问最频繁页面*统计访问处理时间最久页面*统计并发访问频率最高的页面分析工具包括两大部分,一个是后台解释程序,每天执行一次对后台日志数据进行解析后保存到数据库中。
第二个是显示程序,从数据库中查询数据并生成相应的图表信息。