tomcat采集阿里云slb真实客户端ip🫚

tomcat采集阿里云slb真实客户端ip🫚


一、在阿里云slb控制台配置采集信息

阿里云已默认开启通过X-Forwarded-For头字段获取客户端真实IP功能:

 可按需勾选其他字段:

二、配置tomcat日志采集

打开server.xml文件,添加 “X-Forwarded-For”字段

具体配置如下:

 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%{X-Forwarded-For}i %h %u %t &quot;%r&quot; %s %b " />

 配置完成后,需要重启tomcat。


 

三、扩展部分

可添加用户代理字段及上述勾选字段信息:

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
       prefix="localhost_access_log." suffix=".txt"
       pattern="%{X-Forwarded-For}i %h %l %u %t &quot;%r&quot; %s %b %{User-Agent}i %{SLB-ID}i %{SLB-IP}i %{X-Forwarded-Proto}i %{X-Forwarded-Port}i %{X-Forwarded-Client-srcport}i" /> 

在上述示例中,%{User-Agent}i{SLB-ID}i%{SLB-IP}i%{X-Forwarded-Proto}i%{X-Forwarded-Port}i%{X-Forwarded-Client-srcport}i 分别代表从请求头中获取 SLB 相关信息,并将其记录到访问日志中。

 

其他字段解释:

在Tomcat的AccessLogValve中,您可以使用多种格式化字符串来记录访问日志。除了%{X-Forwarded-For}i之外,以下是一些其他常用的格式化字符串:
%a:远程IP地址。如果使用了RemoteIpValve,这将是X-Forwarded-For头中指定的客户端IP地址。
%A:本地IP地址。
%b:发送给客户端的字节数,不包括HTTP头的大小。
%B:发送给客户端的字节数,包括HTTP头的大小。
%h:远程主机名(如果DNS查找是成功的),否则是IP地址。
%H:请求协议。
%l:远程逻辑用户名,通常不会记录,或者记录为-%m:请求方法(如GET、POST)。
%p:本地端口。
%q:查询字符串(如果有的话)。
%r:请求的第一行,包括请求方法、URL和HTTP版本。
%s:响应的状态码(如200、404)。
%S:用户的会话ID。
%t:请求时间。
%u:请求的用户名,如果没有认证,则记录为-%U:请求的URL路径。
%v:本地服务器名。
%D:处理请求的时间(以毫秒为单位)。
%T:处理请求的时间(以秒为单位)。
您可以根据需要组合这些格式化字符串,以记录对您的应用程序最有用的信息。

 

posted @ 2024-03-20 11:36  Noleaf  阅读(72)  评论(0编辑  收藏  举报