我的编程空间,编程开发者的网络收藏夹
学习永远不晚

ELK收集Tomcat日志的实现

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

ELK收集Tomcat日志的实现

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="{&quot;client&quot;:&quot;%h&quot;,  &quot;client user&quot;:&quot;%l&quot;,   &quot;authenticated&quot;:&quot;%u&quot;,   &quot;access time&quot;:&quot;%t&quot;,     &quot;method&quot;:&quot;%r&quot;,   &quot;status&quot;:&quot;%s&quot;,  &quot;send bytes&quot;:&quot;%b&quot;,  &quot;Query?string&quot;:&quot;%q&quot;,  &quot;partner&quot;:&quot;%{Referer}i&quot;,  &quot;Agent version&quot;:&quot;%{User-Agent}i&quot;}"/>
# 查看修改内容
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格式

在这里插入图片描述

在这里插入图片描述

到此这篇关于ELK收集Tomcat日志的实现的文章就介绍到这了,更多相关ELK Tomcat日志内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

ELK收集Tomcat日志的实现

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SpringCloud中如何进行日志收集Kafka-ELK

本篇文章给大家分享的是有关SpringCloud中如何进行日志收集Kafka-ELK,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。微服务应用在容器化后,日志的查询就会变成困难的
2023-06-19

基于python实现日志收集

脚本:#! /usr/bin/python# encoding:utf-8import paramikoimport timeimport osimport reimport codecsimport commandsfrom time i
2023-01-31

GoLang实现日志收集器流程讲解

这篇文章主要介绍了GoLang实现日志收集器流程,看日志是开发者平时排查BUG所必须的掌握的技能,但是日志冗杂,所以写个小工具来收集这些日志帮助我们排查BUG,感兴趣想要详细了解可以参考下文
2023-05-20

利用Redis实现分布式日志收集

Redis是一个高性能的内存数据库,可用于缓存、队列、分布式锁、发布/订阅等多种应用场景。本文将介绍如何利用Redis实现分布式日志收集,其中包括:使用Redis的List数据结构保存日志;使用Redis的Pub/Sub(发布/订阅)功能实
利用Redis实现分布式日志收集
2023-11-07

如何利用Redis和VB.NET实现实时日志收集功能

如何利用Redis和VB.NET实现实时日志收集功能引言:在现代的软件开发和运维中,日志的重要性不言而喻。通过日志的收集和分析,我们可以了解系统的运行情况、检测问题和故障,从而帮助我们及时发现和解决潜在的风险。本文将介绍如何利用Redis和
2023-10-22

如何进行Docker安装ELK并实现JSON格式日志

本篇文章给大家分享的是有关如何进行Docker安装ELK并实现JSON格式日志,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。ELK是什么ELK是elastic公司提供的一套完整
2023-06-16

Shell脚本实现切割tomcat的日志文件

这篇文章主要介绍“Shell脚本实现切割tomcat的日志文件”,在日常操作中,相信很多人在Shell脚本实现切割tomcat的日志文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Shell脚本实现切割to
2023-06-09

Golang与RabbitMQ实现分布式日志收集与分析系统

要使用Golang和RabbitMQ来实现分布式日志收集与分析系统,可以按照以下步骤进行:1. 安装RabbitMQ:首先需要在系统中安装RabbitMQ。可以根据官方文档下载和安装RabbitMQ服务器。2. 创建消息队列:使用Golan
2023-10-08

SQLServer日志收缩的两种方法实现

目录通过图形界面进行日志收缩通过 Transact-Sql 进行日志收缩在日常运维中,有时会遇到“The transaction log for database ‘xxxx’ is full due t
SQLServer日志收缩的两种方法实现
2024-08-30

Go语言开发实现分布式日志收集系统的方法与实践

随着互联网时代的到来,日志分析已经成为互联网公司的重要组成部分。日志的规模庞大,分散在多个服务器上,如何高效地收集并进行数据分析成为了互联网公司共同面对的问题。本文将介绍使用Go语言开发实现分布式日志收集系统的方法与实践。一、日志分析的重要
Go语言开发实现分布式日志收集系统的方法与实践
2023-11-20

编程热搜

目录