架构图html
本次没有使用redis,直接用logstash(生产环境的话,建议搭建使用filebeat)收集到的数据送到es中去,这样的坏处,当量大的话,致使es压力上去web
1,安装redis
jdk,es,kibana省略。。。apache
#安装tomcat [root@localhost ~]# wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.0.38/bin/apache-tomcat-8.0.38.tar.gz [root@localhost ~]# tar xvf apache-tomcat-8.0.38.tar.gz [root@localhost ~]# mv apache-tomcat-8.0.38 /data/application/tomcat
2,启动tomcat
json
#来个简单界面 [root@localhost ~]#mkdir /data/application/tomcat/webapps/webdir [root@localhost ~]#echo "Hello,Tomcat" > /data/application/tomcat/webapps/webdir/index.html
#启动tomcat [root@localhost webapps]# /data/application/tomcat/bin/startup.sh Using CATALINA_BASE: /data/application/tomcat Using CATALINA_HOME: /data/application/tomcat Using CATALINA_TMPDIR: /data/application/tomcat/temp Using JRE_HOME: /data/application/jdk1.8.0_91/ Using CLASSPATH: /data/application/tomcat/bin/bootstrap.jar:/data/application/tomcat/bin/tomcat-juli.jar
进行访问
bootstrap
3,修改tomcat日志为json格式
vim
#根据本身须要修改tomcat
[root@localhost tomcat]# vim /data/application/tomcat/conf/server.xmlbash
<Valve className="org.apache.catalina.valves.AccessLogValve"架构
directory="logs"
prefix="tomcat_access_log" suffix=".log"
pattern="{"clientip":"%h","ClientUser":"%l","authenticated":"%u","AccessTime":"%t","method":"%r","status":"","SendBytes":"%b","Query?string":"%q","partner":"%{Referer}i","AgentVersion":"%{User-Agent}i"}"/>
#中止tomcat [root@localhost tomcat]# ./bin/shutdown.sh #启动tomcat [root@localhost tomcat]# ./bin/startup.sh
4,查看tomcat日志格式
#验证json日志
4,测试logstash配置文件
[root@localhost server_config]# /data/application/logstash-5.2.0/bin/logstash -f tomcat.conf -t
#启动logstash服务 [root@localhost server_config]# cat tomcat.conf input { file { path => "/data/application/tomcat/logs/tomcat_access_log*.log" start_position => "end" type => "tomcat-log" stat_interval => "3" } } output { if [type] == "tomcat-log" { elasticsearch { hosts => ["192.168.201.135:9200"] index => "tomcat-access-%{+YYYY.MM.dd}" codec => "json" }} } [root@localhost server_config]# /data/application/logstash-5.2.0/bin/logstash -f tomcat.conf
5,查看es情况
6,kibana效果
至此tomcat收集日志结束
注意:
logstash的output中,输入同一个集群的不一样机器上效果是一致的,由于他们是一个集群。固然也能够指定输出到不一样的集群中。
2. 从kibana Tomcat页面中能够看出,Tomcat日志,已经变成了json格式,这是因为logstash中指定了参数codec="json" 的结果,不然kibana这里就是一坨
3. 这个坑是关于时间同步的,若是kibana与你的logstash时间不一样步,kibana上的日志可能没法显示,这就须要养成作标准化的习惯,切记