实验环境
主机:156 IP:192.168.121.156 角色:tomcat和filebeat
主机:158 IP:192.168.121.158 角色:redis
首先安装好
tomcat
redis
filebeat
这三个软件先安装好,关于这三个软件的安装我之前的博文也有
可以用一台机子,也可以三台机子,多少台都行,看个人喜欢
我是用两台,156安装tomcat和filebeat,158安装redis
redis安装好直接启动起来就可以不用管了
tomcat的配置
首先修改tomcat的日志格式,当然也可以不改 我是为了后面的实验才改的
vim /usr/local/tomcat-8.5/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"}" />
然后启动tomcat
/usr/local/tomcat-8.5/bin/startup.sh
然后就去访问tomcat ,让tomcat 的日志中有信息
filebeat的配置
filebeat的配置文件
vim /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
enabled: true
paths:
- /usr/local/tomcat-8.5/logs/catalina.*.log
tags: ['tomcat-java']
exclude_files: ['.gz$','.zip$']
#java 多行错误日志合并
multiline.pattern: '^([0-9]{2}-[a-zA-Z]{3}-[0-9]{4})'
multiline.negate: true
multiline.match: after
- type: log
enabled: true
paths:
- /usr/local/tomcat-8.5/logs/*.txt
tags: ['tomcat']
json.keys_under_root: true
json.overwrite_keys: true
# output to redis
output.redis:
#指定redis的 地址,或者集群地址
#hosts: ["192.168.50.104","192.168.50.105","192.168.50.106"]
hosts: ["192.168.121.158"]
#连接redis的密码,我的redis是没有密码的,所以注释掉密码这一选项
#password: ""
#指定redis的工作端口
port: 6379
#指定redis的 库 编号
db: 10
#连接redis超时间 5秒
timeout: 5
#redis将日志数据以 list 类型存储,key 指定 list的键
key: "filebeat"
然后就运行filebeat采集tomcat的日志数据存到redis中
filebeat -e -c /etc/filebeat/filebeat.yml
然后去redis查看数据
192.168.121.158:6379> select 10
OK
192.168.121.158:6379[10]> keys *
1) "filebeat"
192.168.121.158:6379[10]> LLEN filebeat
(integer) 83
192.168.121.158:6379[10]> LRANGE filebeat 20 21
1) "{\"@timestamp\":\"2023-10-15T08:33:52.716Z\",\"@metadata\":{\"beat\":\"filebeat\",\"type\":\"doc\",\"version\":\"6.8.22\"},\"prospector\":{\"type\":\"log\"},\"host\":{\"name\":\"server156\"},\"source\":\"/usr/local/tomcat-8.5/logs/catalina.2023-10-15.log\",\"tags\":[\"tomcat-java\"],\"offset\":2318,\"input\":{\"type\":\"log\"},\"beat\":{\"name\":\"server156\",\"hostname\":\"server156\",\"version\":\"6.8.22\"},\"log\":{\"file\":{\"path\":\"/usr/local/tomcat-8.5/logs/catalina.2023-10-15.log\"}},\"message\":\"15-Oct-2023 16:07:01.067 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=\"}"
2) "{\"@timestamp\":\"2023-10-15T08:33:52.716Z\",\"@metadata\":{\"beat\":\"filebeat\",\"type\":\"doc\",\"version\":\"6.8.22\"},\"offset\":2456,\"tags\":[\"tomcat-java\"],\"input\":{\"type\":\"log\"},\"source\":\"/usr/local/tomcat-8.5/logs/catalina.2023-10-15.log\",\"log\":{\"file\":{\"path\":\"/usr/local/tomcat-8.5/logs/catalina.2023-10-15.log\"}},\"message\":\"15-Oct-2023 16:07:01.067 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat-8.5\",\"prospector\":{\"type\":\"log\"},\"beat\":{\"name\":\"server156\",\"hostname\":\"server156\",\"version\":\"6.8.22\"},\"host\":{\"name\":\"server156\"}}"
192.168.121.158:6379[10]>
可以看到我们的日志数据已经存到redis中了
记得我存到的是10库,要切换库 不然查0库是没有数据的
这样就完成了