要通過logstash來處理tomcat日志,可以依照下列步驟進行操作:
-
調整tomcat日志格式:首先,你需要修改Tomcat的配置文件server.xml,將日志格式轉換為JSON格式。在/usr/local/tomcat/conf/server.xml中找到日志配置部分,并將pattern更改為以下內容:
pattern "%{clientip:%h,ClientUser:%l,authenticated:%u,accessTime:%t,method:%r,status:%s,SendBytes:%b,Query?string:%q,partner:%{Referer}i,AgentVersion:%{User-Agent}i}"
配置文件修改后的示例如下:
<valve classname="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%{clientip:%h,ClientUser:%l,authenticated:%u,AccessTime:%t,method:%r,status:%s,SendBytes:%b,Query?string:%q,partner:%{Referer}i,AgentVersion:%{User-Agent}i}" prefix="tomcat_access_json" suffix=".log"></valve>
完成修改后,重啟Tomcat以使新配置生效。
-
設置Logstash:創建一個Logstash配置文件,例如logstash-tomcat.conf,內容如下:
input { file { path "/usr/local/tomcat/logs/tomcat_access_json.*.log" start_position "end" type "tomcat_log" } } filter { grok { match { "message" => "%{clientip:%h,ClientUser:%l,authenticated:%u,AccessTime:%t,method:%r,status:%s,SendBytes:%b,Query?string:%q,partner:%{Referer}i,AgentVersion:%{User-Agent}i}" } } } output { elasticsearch { hosts ["192.168.136.101:9200"] index "tomcatlog-%{yyYY.MM.dd}" } }
該配置文件將從指定的日志文件讀取數據,使用Grok過濾器解析日志,并將處理后的數據發送到Elasticsearch。
-
啟動Logstash:運行以下命令啟動Logstash并加載配置文件:
logstash -f /etc/logstash/conf.d/tomcat_log_es.conf
-
檢查配置:使用Elasticsearch的Head插件刷新索引,并在Kibana中搜索配置的日志,確認配置是否正確。
通過上述步驟,你就可以利用Logstash來收集、解析并分析Tomcat的日志數據了。