大家好,又見面了,我是你們的朋友全棧君。
01 Tomcat 安裝與測試
1.1 安裝 Tomcat
安裝Tomcat的本體和相關官方測試demo,參考連結
apt-get install tomcat8 -y # 安裝Tomcat本體
apt-get install tomcat8-docs tomcat8-examples tomcat8-admin -y # 安裝測試demo
複制
1.2 Tomcat 啟動檢查
systemctl start tomcat8 # 啟動Tomcat
systemctl status tomcat8
netstat -lntup|grep 8080 # 端口測試
lsof -i:8080
# 端口檢查得到輸出
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 4502 tomcat8 63u IPv6 125026 0t0 TCP *:http-alt (LISTEN)
複制
1.3 檢視 Tomcat 日志
啟動tomcat之後,使用本地浏覽器通路
http://localhost:8080/
通路tomcat頁面,在頁面中點選按鈕産生HTTP請求,讓tomcat産生日志
tail -f /var/log/tomcat8/localhost_access_log.2021-08-01.txt
複制
02 修改 Tomcat 日志為 Json 格式
打開Tomcat的
server.xml
配置檔案進行修改,在日志檔案中的文末修改如下對應設定
# 編輯配置檔案
vim /etc/tomcat8/server.xml
#将以下内容替換配置檔案中135行對應内容
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".log"
pattern="{"client":"%h", "client user":"%l", "authenticated":"%u", "access time":"%t", "method":"%r", "status":"%s", "send bytes":"%b", "Query?string":"%q", "partner":"%{Referer}i", "Agent version":"%{User-Agent}i"}"/>
# 檢視修改内容
cat -n /etc/tomcat8/server.xml
複制
重新啟動tomcat并檢視日志,檢驗是否配置成功,産生新的日志還是需要通過使用浏覽器通路8080端口,在Tomcat的demo樣例中對tomcat發送請求産生日志。
# 先清空日志
> /var/log/tomcat8/localhost_access_log.2021-08-02.txt
# 重新啟動Tomcat
systemctl restart tomcat8
# 檢視日志
root@master:/var/log/tomcat8# tail -f /var/log/tomcat8/localhost_access_log.2021-08-02.log # 檢視日志指令
{
"client":"172.16.255.1", "client user":"-", "authenticated":"-", "access time":"[02/Aug/2021:02:23:55 +0000]", "method":"GET /examples/servlets/images/return.gif HTTP/1.1", "status":"200", "send bytes":"1231", "Query?string":"", "partner":"http://172.16.255.131:8080/examples/servlets/", "Agent version":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"}
{
"client":"172.16.255.1", "client user":"-", "authenticated":"-", "access time":"[02/Aug/2021:02:23:57 +0000]", "method":"GET /examples/servlets/servlet/RequestParamExample HTTP/1.1", "status":"200", "send bytes":"673", "Query?string":"", "partner":"http://172.16.255.131:8080/examples/servlets/", "Agent version":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"}
{
"client":"172.16.255.1", "client user":"-", "authenticated":"-", "access time":"[02/Aug/2021:02:24:01 +0000]", "method":"GET /host-manager/html HTTP/1.1", "status":"401", "send bytes":"2044", "Query?string":"", "partner":"http://172.16.255.131:8080/", "Agent version":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"}
複制
03 配置 Filebeat 采集 Tomcat 日志
新增Filebeat輸入配置,将tomcat日志參照Nginx的Json格式日志采集方式配置如下
vim
小技巧:将連續多行内容複制對應位置使用
t
指令,在Normal模式中輸入
:2,7t11
表示将第二到第七行的内容複制到第十一行開頭;将連續多行内容移動對應位置使用
m
指令,在Normal模式中輸入
:2,7m11
表示将第二到第七行的内容移動到第十一行開頭
vim
小技巧:在輸入内容時要使用到某個檔案路徑可以是用
!
指令然後使用shell指令檢視内容,例如檢視某個檔案的路徑可以在Normal模式中輸入
:!ls /var/log/tomcat8/...
提示
# ================== Filebeat inputs ===============
# ------------------------------Tomcat----------------------------------
- type: log
enabled: true
paths:
# - /var/log/tomcat8/localhost_access_log.2021-08-02.log
# 為了能夠采集所有日期的日志,将檔案名中的指定日期改成通配符`*`
- /var/log/tomcat8/localhost_access_log.*.log
json.keys_under_root: true
json.overwrite_keys: true
tags: ["tomcat"]
# ================================== Outputs ===================================
# ---------------------------- Elasticsearch Output ----------------------------
output.elasticsearch:
hosts: ["172.16.255.131:9200"]
indices:
- index: "nginx-access-%{[agent.version]}-%{+yyyy.MM}"
when.contains:
tags: "access"
- index: "nginx-error-%{[agent.version]}-%{+yyyy.MM}"
when.contains:
tags: "error"
# 在輸出配置中添加如下索引設定識别tomcat日志,值得注意的時這裡不需要再重新編輯template設定,應該pattern配置隻在第一次使用時進行比對識别
- index: "tomcat-access-%{[agent.version]}-%{+yyyy.MM}"
when.contains:
tags: "tomcat"
複制
04 使用Kibana檢視Tomcat日志
配置完成之後,重新啟動Filebeat采集Json格式日志
systemctl restart filebeat
複制
檢視ES中存儲的Tomcat日志是否是Json格式

釋出者:全棧程式員棧長,轉載請注明出處:https://javaforall.cn/151373.html原文連結:https://javaforall.cn