要使用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" prefix="tomcat_access_json" suffix=".log" 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}"/>
修改完成后,重启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日志了。