3 Star 50 Fork 24

aqu415 / tailf

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 6.08 KB
一键复制 编辑 原始数据 按行查看 历史
aqu415 提交于 2022-08-14 12:35 . update

tailf

一个类似linux tail的web版本日志滚动查看工具

码云(https://gitee.com/aqu415/tailf)

CSDN(https://blog.csdn.net/Aqu415/article/details/114419320)

背景

前一段时间由于项目原因,需要经常上服务器看日志;由于没有公共的页面查看与下载,就需要频繁的登录服务器,然后执行一堆命令,最后才能看到日志;

这个过程太繁琐痛苦,网上搜了一圈没有合适的工具,于是自己写了一个简单的日志实时查看的工具;

原理

  1. Websocket + FileAlterationListenerAdaptor:通过监听文件变化,再增量获得变化的内容通过websocket发送给浏览器客户端
  2. 多服务器场景下master与slave之间netty连接(异常后重连逻辑未开发)

gitee地址

https://gitee.com/aqu415/tailf

原理


整体架构:

在这里插入图片描述

内部实现:

  1. Websocket + FileAlterationListenerAdaptor:通过监听文件变化,增量获得变化的内容通过websocket发送给浏览器客户端
  2. 多服务器场景下master与slave之间netty连接(异常后重连逻辑未开发)

特性

  1. 支持界面实时查看、搜索日志功能
  2. 支持文件下载
  3. 支持master、slave模式,通过master界面直接查看所有服务器日志(省去多个服务器需要记住多个访问链接的问题)
  4. slave自动部署(未开发)
  5. 日志智能分析(未开发)

本地调试

  • 本地调试如果需要监听多个目录可以通过以下配置,多个目录间以英文 ; 分隔
  • 然后执行 com.xx.log.LogApplication.main 方法即可本地启动;

注:配置文件里的监听目录配置是默认配置,可被启动参数覆盖(如:IDE配置启动参数,或者打成jar包后用 jar 命令启动后的参数)

在这里插入图片描述

打包

依赖spring-boot打包插件,打成可执行jar包

在这里插入图片描述

服务器上jar包启动

支持监听多个目录

linux:

使用springboot参数策略:
nohup java -jar -Dtailf.monitor-path=/usr/logs/tomcat1;/usr/logs/tomcat2 tailf-web-xxx.jar &

nohup java -jar tailf-web-xxx.jar --tailf.monitor-path=/usr/logs/tomcat1;/usr/logs/tomcat2 &
具体参数会在下面列表列举

或者指定整个配置文件 
nohup java -jar tailf-web-xxx.jar --spring.config.location=/usr/local/application.yaml &


windows:

使用springboot参数策略:
java -jar -Dtailf.monitor-path=/usr/logs/tomcat1;/usr/logs/tomcat2 tailf-web-xxx.jar

java -jar tailf-web-1.0-xxx.jar --tailf.monitor-path=d:/tomcat1;d:/tomcat2

或者指定整个配置文件 
java -jar tailf-web-xxx.jar --spring.config.location=d:/application.yaml
参数名称 备注 属性
tailf.monitor-path 本地监听目录,可以设置多个以 ; 隔开 com.xx.log.properties.AppProperties
tailf.default-show-line-num 默认初始显示内容行数 同上
tailf.web-role 当前应用的角色(master、slave) 同上
tailf.master-netty-host 如果当前应用角色是slave,则需要配置向master web注册IP 同上
tailf.master-netty-port 如果当前应用角色是slave,则需要配置向master web注册netty端口 同上

参考:spring boot参数传递

界面视图

Extjs风格

在这里插入图片描述

文件下载

在树节点上右键即可弹出下载菜单

在这里插入图片描述

master-slave模式

如果有多台服务器需要进行日志查看,但是又不想记住多个服务器访问地址则可以使用master-slave模式,具体操作如下:

1、master配置

  • 配置当前服务器角色是master
  • 配置master服务器的内网IP(与slave通信会使用)
  • 配置master netty监听端口

在这里插入图片描述

2、slave配置

  • 这三个配置除了角色配置成 slave,其他两项都配置成一样的。如下:

在这里插入图片描述

3、启动服务

  • 首先启动master

在这里插入图片描述

  • 再启动slave(另外启动一个IDE)

master控制台打印slave注册信息: 在这里插入图片描述

  • 界面效果:

在这里插入图片描述

文件支持下载和搜索

关于我

如果觉得文章内容还可以,可关注我获得更多优质的输出,您的关注是我最大的动力;

在这里插入图片描述

remark

  • 如有使用本工具,可在评论区备注留下贵公司名字
Java
1
https://gitee.com/aqu415/tailf.git
git@gitee.com:aqu415/tailf.git
aqu415
tailf
tailf
master

搜索帮助