網站首頁 編程語言 正文
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://blog.csdn.net/qq_41773806/article/details/123475700
相關推薦
- 2022-04-25 C#使用NPOI實現Excel導入導出功能_C#教程
- 2023-07-03 Python實現曲線的肘部點檢測詳解_python
- 2022-08-18 python數據可視化pygal模擬擲骰子實現示例_python
- 2022-05-12 Kotlin map 高級函數返回新的集合
- 2022-04-28 shell命令返回值判斷的方法實現_linux shell
- 2022-03-21 C語言中關于scanf函數的一些問題詳解_C 語言
- 2022-10-08 react-redux的基本使用_React
- 2022-12-29 python解決循環依賴的問題分析_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支