乐趣区

关于前端:filebeat收集json格式的tomcat

filebeat 收集 json 格局的 tomcat 日志

公司中罕用的 web 程序个别都是 nginx 和 tomcat,tomcat 也有 access 拜访日志,输入和 nginx 相似,咱们也将 tomcat 的日志输入成 json 格局,在配合 filebeat 进行收集展现

1. 部署 tomcat

1.1. 部署 tomcat

1. 装置 java
[root@nginx02 ~]# yum -y install java

2. 装置 tomcat
[root@nginx02 ~]# mkdir /data
[root@nginx02 ~]# tar xf apache-tomcat-8.5.53.tar.gz -C /data
[root@nginx02 /data]# cd /data/
[root@nginx02 /data]# mv apache-tomcat-8.5.53 tomcat

3. 启动 tomcat
[root@nginx02 /tomcat]# ./bin/startup.sh 
Using CATALINA_BASE:   /data/apache-tomcat-8.5.53
Using CATALINA_HOME:   /data/apache-tomcat-8.5.53
Using CATALINA_TMPDIR: /data/apache-tomcat-8.5.53/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /data/apache-tomcat-8.5.53/bin/bootstrap.jar:/data/apache-tomcat-8.5.53/bin/tomcat-juli.jar
Tomcat started.

4. 拜访 tomcat

1.2. 批改 tomcat 配置文件反对 json 格局日志输入

1. 批改配置
[root@nginx02 /data/tomcat]# vim conf/server.xml 
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="{"clientip":"%h","ClientUser":"%l","authenticated":"%u","AccessTime":"%t","method":"%r","status":"%s","SendBytes":"%b","Query?string":"%q","partner":"%{Referer}i","AgentVersion":"%{User-Agent}i"}"/>

2. 重启
[root@nginx02 /data/tomcat]# ./bin/startup.sh 
Using CATALINA_BASE:   /data/apache-tomcat-8.5.53
Using CATALINA_HOME:   /data/apache-tomcat-8.5.53
Using CATALINA_TMPDIR: /data/apache-tomcat-8.5.53/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /data/apache-tomcat-8.5.53/bin/bootstrap.jar:/data/apache-tomcat-8.5.53/bin/tomcat-juli.jar
Tomcat started.

1.3. 查看 tomcat 日志

tomcat 日志位于 logs 文件夹

最次要的就是 catalina.out 和 localhost_access_log 这两个日志

刚刚批改完反对 json 格局后,只是对拜访日志失效

曾经是 json 格局的日志了

json 解析工具也是能够解析的

2.1. 配置 filebeat 收集 tomcat 日志

vim 小技巧,在输出模式应用 ctrl+ p 既能够补全单词,在命令模式要删除 ”” 之间的内容,能够应用 d +i+” 即可删除

1. 配置 filebeat 收集 tomcat 日志
[root@nginx02 ~]# vim /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /data/tomcat/logs/localhost_access_log.*            #localhost_access_log 日志要写成通配符的模式,因为这个日志每天都会生成一份
  json.keys_under_root: true
  json.overwrite_keys: true
  tags: ["tomcat"]

output.elasticsearch:
  hosts: ["192.168.81.210:9200"]gg
    - index: "tomcat-access-%{+yyyy.MM.dd}"
      when.contains:
        tags: "tomcat"

2. 重启 filebeat
[root@nginx02 ~]# systemctl restart filebeat

2.2. 应用 ab 压测工具生成 1000 行 tomcat 日志

[root@nginx02 ~]# yum -y intsall httpd-tools
[root@nginx02 ~]# ab -c 100 -n 1000 http://127.0.0.1:8080/

[root@nginx02 ~]# wc -l /data/tomcat/logs/localhost_access_log.2021-01-20.txt 
1000 /data/tomcat/logs/localhost_access_log.2021-01-20.txt

2.3. 查看 es 是否收集到日志

索引曾经创立且日志曾经收集到 1000 条

3.kibana 关联 es 索引库进行数据查问

3.1. 关联 es 索引库

Managerment— 索引模式 — 创立索引

关联胜利

3.2. 查看收集来的 tomcat 日志

点击 Discovery— 抉择 tomcat 索引库,依据本人的条件进行查问即可

退出移动版