logstash收集tomcat-json日誌

架構圖html

image.png

本次沒有使用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

image.png

3,修改tomcat日誌爲json格式
vim

#根據本身須要修改tomcat

[root@localhost tomcat]# vim /data/application/tomcat/conf/server.xmlbash

image.png

 <Valve className="org.apache.catalina.valves.AccessLogValve"架構

directory="logs"

        prefix="tomcat_access_log" suffix=".log"

        pattern="{&quot;clientip&quot;:&quot;%h&quot;,&quot;ClientUser&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;&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;}"/>

#中止tomcat
[root@localhost tomcat]# ./bin/shutdown.sh
#啓動tomcat
[root@localhost tomcat]# ./bin/startup.sh

4,查看tomcat日誌格式

image.png

#驗證json日誌

https://www.json.cn

image.png

4,測試logstash配置文件

[root@localhost server_config]# /data/application/logstash-5.2.0/bin/logstash -f tomcat.conf -t

image.png

#啓動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

image.png


5,查看es情況

image.png

6,kibana效果

image.png

至此tomcat收集日誌結束

注意:

  1. logstash的output中,輸入同一個集羣的不一樣機器上效果是一致的,由於他們是一個集羣。固然也能夠指定輸出到不一樣的集羣中。

2. 從kibana Tomcat頁面中能夠看出,Tomcat日誌,已經變成了json格式,這是因爲logstash中指定了參數codec="json" 的結果,不然kibana這裏就是一坨

3. 這個坑是關於時間同步的,若是kibana與你的logstash時間不一樣步,kibana上的日誌可能沒法顯示,這就須要養成作標準化的習慣,切記

相關文章
相關標籤/搜索