Linux

將幾行tomcat access-logs合併為一行

  • September 11, 2016

我需要你的幫助。我想在SLES 12上的****Apache Tomcat網路伺服器上記錄訪問。他正在跑步並且正在正常記錄。但是當我訪問該站點時,tomcat 正在將 8 行寫入文件。像這樣:localhost_access_log.txt

10.XXX.XX.XXX - - [27/Jul/2016:08:28:29 +0200] "GET / HTTP/1.1" 200 11250 10.XXX.XX.XXX - - [27/Jul/2016:08:28:29 +0200] "GET /tomcat.css HTTP/1.1" 200 5576 10.XXX.XX.XXX - - [27/Jul/2016:08:28:29 +0200] "GET /tomcat.png HTTP/1.1" 200 5103 10.XXX.XX.XXX - - [27/Jul/2016:08:28:29 +0200] "GET /favicon.ico HTTP/1.1" 200 21630 10.XXX.XX.XXX - - [27/Jul/2016:08:28:29 +0200] "GET /bg-nav.png HTTP/1.1" 200 1401 10.XXX.XX.XXX - - [27/Jul/2016:08:28:29 +0200] "GET /asf-logo.png HTTP/1.1" 200 17811 10.XXX.XX.XXX - - [27/Jul/2016:08:28:29 +0200] "GET /bg-middle.png HTTP/1.1" 200 1918 10.XXX.XX.XXX - - [27/Jul/2016:08:28:29 +0200] "GET /bg-button.png HTTP/1.1" 200 713 10.XXX.XX.XXX - - [27/Jul/2016:08:28:29 +0200] "GET /bg-upper.png HTTP/1.1" 200 3103 10.XXX.XX.XXX - - [27/Jul/2016:08:28:29 +0200] "GET /favicon.ico HTTP/1.1" 206 21630 10.XXX.XX.XXX - - [27/Jul/2016:08:28:29 +0200] "GET /favicon.ico HTTP/1.1" 200 21630

當我以管理員身份登錄時也是如此,然後tomcat寫了5行。

10.XXX.XX.XXX - - [27/Jul/2016:10:37:01 +0200] "GET /manager/status HTTP/1.1" 401 2473 10.XXX.XX.XXX - admin [27/Jul/2016:10:37:02 +0200] "GET /manager/status HTTP/1.1" 200 7010 10.XXX.XX.XXX - - [27/Jul/2016:10:37:03 +0200] "GET /manager/images/tomcat.gif HTTP/1.1" 200 2066 10.XXX.XX.XXX - - [27/Jul/2016:10:37:03 +0200] "GET /manager/images/asf-logo.gif HTTP/1.1" 200 7279 10.XXX.XX.XXX - - [27/Jul/2016:10:37:03 +0200] "GET /favicon.ico HTTP/1.1" 200 21630

現在我的問題:有可能,tomcat每次訪問只寫一行?還是那個tomcat以個人格式寫日誌?因為我想用graylog2分析訪問日誌,而 grayog 對此有一些問題。

有點晚了,但還是。

我不認為你可以減少日誌文件中的行數,但為了分析你可以過濾掉一些行

egrep -v ' /tomcat.[^\b]{3}|/favicon.ico| /[^\.]*.png' acces.log > filtered.log

在哪裡

  • egrep -v從匹配模式的輸出行中刪除
  • /tomcat.[^\b]{3}: 一個空白,/tomcat 字元串一個點和 3 個非空白
  • /favicon.ico直截了當
  • /[^\.]*.png一個空白一個斜線,任意數量的非點和png

當然日誌分析器可能有一些預先建構的過濾器,或者你可能需要花一些時間來定制它。

引用自:https://serverfault.com/questions/792209