tomcat访问日志转json格式3 min read

  • A+
所属分类:ELKstack

  

要修改为json格式tomcat日志文件:localhost_access_log

  

在 tomcat 主配置文件 server.xml 中在最下面找到定义 localhost_access_log 日志格式的配置:

  1. # tomcat/conf/server.xml  
  2. ......  
  3.    ......  
  4.         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  
  5.                prefix="localhost_access_log" suffix=".txt"             # 日志默认名称(也可以修改)  
  6.                pattern="%h %l %u %t &quot;%r&quot; %s %b" />          # 此行就是定义访问日志的配置  
  7. ......  
  8.    ......  

  

我们将定义访问日志格式的配置替换为如下配置:

  1. <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  
  2.        prefix="tomcat-access-log" suffix=".txt"  
  3.        pattern="{&quot;clientip&quot;:&quot;%h&quot;, &quot;Client User&quot;:&quot;%l&quot;, &quot;authenticated&quot;:&quot;%u&quot;, &quot;AccessTime&quot;:&quot;%t&quot;, &quot;method&quot;:&quot;%r&quot;, &quot;status&quot;:&quot;%s&quot;, &quot;SendBytes&quot;:&quot;%b&quot;, &quot;Query?string&quot;:&quot;%q&quot;, &quot;partner&quot;:&quot;%{Referer}i&quot;, &quot;AgentVersion&quot;:&quot;%{User-Agent}i&quot;}"/>  

日志格式配置简单解释:以一个 &quot;clientip&quot;:&quot;%h&quot; 为例,其中的 &quot 就是双引号,被两个 &quot 中的 clientip 是key, %h是一个值,这个值也是必须tomcat中支持的。 

  

修改好以上配置之后重启tomcat,访问页面,然后查看日志输出,对日志输出是否是json格式验证一下看我们是否修改成正确,验证网址:https://www.json.cn/  

tomcat 访问日志格式修改好之后就可以配置logstash配置并重启,然后在 kibana 界面添加索引进行查看日志了 

  

logstash配置参考:

  1. [root@elk-node3 ~]# vim /etc/logstash/conf.d/logstash-tomcat-access-log.conf  
  2. input {  
  3.     file {  
  4.         path => "/usr/local/tomcat/logs/localhost_access_log.*.log"  
  5.         type => "tomcat-access-log-node3"  
  6.         start_position => "beginning"  
  7.         stat_interval => "2"  
  8.         codec => "json"       # 日志如果是json格式的话需要配置对json解析的编码  
  9.   }  
  10. }  
  11.   
  12. output {  
  13.     elasticsearch {  
  14.         hosts => ["192.168.56.31:9200"]  
  15.         index => "logstash-tomcat-access-log-node3-%{+YYYY.MM.dd}"  
  16.     }  
  17.     file {         # 这里输出到文件可以进行调试,调试成功之后将该配置去除即可  
  18.         path => "/tmp/tomcat.txt"  
  19.     }  
  20. }  
  21.   
  22.   
  23. [root@elk-node3 conf]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/logstash-tomcat-access-log.conf -t  

  

  

zhaoyulin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: