ELK收集Tomcat日志的实现

目录
  • 01 Tomcat 安装与测试
  • 02 修改 Tomcat 日志为 Json 格式
  • 03 配置 Filebeat 采集 Tomcat 日志
  • 04 使用Kibana查看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日志内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Shell脚本切割tomcat的日志文件

    鉴于在调试logback和log4j的文件切割一直无法成功,随性用shell写个脚本用来切割tomcat下的日志文件(大家如果有在logback或log4j使用文件切割成功的话,可以留下使用方式,先谢谢了) 1:废话少说,直接贴上脚本: #!/bin/sh log_dir=/var/log/tomcat monitor_file=$1 #tomcat目录下的catalina.out文件的绝对路径 file_size=`du $monitor_file | awk '{print $1}'` if

  • tomcat访问(access)日志配置和记录Post请求参数

    一.配置与说明 tomcat访问日志格式配置,在config/server.xml里Host标签下加上 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r&qu

  • tomcat在linux中修改日志路径

    1.   修改catalina.sh 进入tomcat安装目录/bin,找到catalina.sh,并下载到本地,同时进行备份. 对本地的catalina.sh进行修改,将下图红框所示地方改为CATALINA_OUT=/u01/app/dt/dt_logs 这里是以将日志目录修改为/u01/app/dt/dt_logs为例,以下都以此目录为例. 修改后如下 将修改后的catalina.sh文件上传到tomcat安装目录/bin,覆盖原来的文件. 2.   修改logging.properties

  • Tomcat 日志切割(logrotate)详细介绍

    Tomcat 日志切割 logrotate是个强大的系统软件,它对日志文件有着一套完整的操作模式,譬如:转储.邮件和压缩等,并且默认logrotate加到cron(/etc/cron.daily/logrotate)作为每日任务执行.自动有了logrotate,我想不用再自己写日志切割脚本. 如下对Tomcat日志catalina.out日志切割 # ls -lh /usr/local/tomcat/logs/catalina.out -rw-r--r-- 1 www www 14M Aug 2

  • Tomcat日志文件定时清理备份的脚本

    以下脚本主要备份的日志文件为tomcat的catalina.out.localhost_access_log.yyyy-mm-dd.log日志和项目的日志文件,其中项目的日志文件格式为"projectname-yyyy-mm-dd.log",以下为备份脚本,具体的操作都有相应的注释,供大家参考,具体情况请根据日志文件的格式和要求来使用本脚本. #!/bin/sh ###### # 日志定时运行时间为每天0点1分 # 删除20天之前的日志文件,压缩一周之前的日志文件 # 日志文件时间是根

  • ELK收集Tomcat日志的实现

    目录 01 Tomcat 安装与测试 02 修改 Tomcat 日志为 Json 格式 03 配置 Filebeat 采集 Tomcat 日志 04 使用Kibana查看Tomcat日志 01 Tomcat 安装与测试 1.1 安装 Tomcat 安装Tomcat的本体和相关官方测试demo,参考链接 apt-get install tomcat8 -y # 安装Tomcat本体 apt-get install tomcat8-docs tomcat8-examples tomcat8-admi

  • ELK收集Nginx日志的项目实战

    目录 01 安装 Nginx 和 ab 工具 1.1 安装 nginx 1.2 启动 Nginx 并测试 02 使用 Filebeat 采集日志并展示 2.1 配置 filebeat 采集 Nginx 日志 2.2 使用 Kibana 展示 Nginx 日志数据 03 采集 JSON 格式的 Nginx 日志 3.1 修改 Nginx 日志为 Json 格式 3.2 Filebeat 重新采集 Nginx 日志 3.3 自定义存储 Filebeat 采集日志的 ES 索引 04 使用 Fileb

  • filebeat收集json格式的tomcat日志详解

    目录 1.部署tomcat 1.1.部署tomcat 1.2.修改tomcat配置文件支持json格式日志输出 1.3.查看tomcat日志 2.配置filebeat收集tomcat日志 2.1.配置filebeat收集tomcat日志 2.2.使用ab压测工具生成1000行tomcat日志 2.3.查看es是否收集到日志 3.kibana关联es索引库进行数据查询 3.1.关联es索引库 3.2.查看收集来的tomcat日志 1.部署tomcat 公司中常用的web程序一般都是nginx和to

  • Spring Boot 搭建 ELK正确看日志的配置流程

    为什么要用ELK ELK实际上是三个工具,Elastricsearch + Logstash + Kibana,通过ELK,用来收集日志还有进行日志分析,最后通过可视化UI进行展示.一开始业务量比较小的时候,通过简单的SLF4J+Logger在服务器打印日志,通过grep进行简单查询,但是随着业务量增加,数据量也会不断增加,所以使用ELK可以进行大数量的日志收集和分析 简单画了一下架构图 在环境配置中,主要介绍Mac和Linux配置,Windows系统大致相同,当然,前提是大家都安装了JDK 1

  • 一文秒懂logstash收集springboot日志的方法

    maven依赖 <dependency> <groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-encoder</artifactId> <version>5.1</version> </dependency> springboot 配置文件 logging: config: classpath:logback.xml logb

  • Linux下把tomcat日志按日期自动分割

    Linux中tomcat日志分割需要用到cronolog 附上cronolog-1.6.2.tar.gz 1. 安装cronolog tar –zxvf cronolog-1.6.2.tar.gz ./configure && make && make install 解压,编译, 安装 (安装后目录一般在/usr/local/中) 2. 为了能够一次正确通过还是验证一下是在哪个目录 which cronolog 3.修改catalina.sh脚本 vim /usr/loc

  • Linux下定时切割Tomcat日志并删除指定天数前的日志记录

    System.out和System.err都被打印到catalina.out.catalina.out不会rotate.一般在部署Tomcat后,运行久了,catalina.out文件会越来越大,对系统的稳定造成了一定的影响. 1.可通过修改conf/logging.properties日志配置文件来屏蔽掉这部分的日志信息. [root@localhost conf]# pwd /usr/local/tomcat/conf [root@localhost conf]# cp logging.pr

  • LINUX 查找tomcat日志关键词命令

    #查询catalina.out日志文件中的关键词为2016-04-13 11:26:00的日志信息 grep -C 10 '2016-04-13 11:26:00' catalina.out |more 解释: grep :查询,筛选 -C : grep的-A, -B, -C选项分别可以显示匹配行的后,前,后前多少行内容: 10 :是前后多少行 '2016-04-13 11:26:00' :关键词,注意是单引号包裹 catalina.out : 检索的文件 可以是目录 ./ |more : 这个

  • CentOS7按时间段截取指定的Tomcat日志到指定文件的方法

    CentOS7之按时间段截取指定的Tomcat日志到指定文件的方法,很多朋友对此都不是很清楚,下面由脚步之家小编给大家讲解下. 复制代码 代码如下: sed -n '/2016-11-02 15:00:/,/2016-11-02 15:05:/p' catalina.out > /tmp/123/error.txt 将 catalina.out 文件的中的日志信息,按 2016-11-02 15:00 到 2016-11-02 15:05 时间段截取,然后放到 /tmp/123/ 目录下的 er

随机推荐