web-tail 服务端调用系统的 tail
命令,使用 websocket 将需要滚动查看的日志文件显示在浏览器上,方便查看日志文件。
由于web-tail底层实际上是调用系统提供的tail命令,因此该工具不适用于Windows系统
web-tail 当前包含功能如下:
- 在浏览器中实时查看日志内容
- 在浏览器中切换日志
- 在服务端通过修改
log.li
配置文件即可实时添加或删除日志文件,无需重启web-tail - 支持tail -n参数
- 错误与警告日志着色
- 切换明暗两种主题
- 全屏显示
web-tail主要使用websocket技术实现日志在浏览器页面的实时滚动,web框架采用gin(以便于添加认证等扩展功能)
依赖项目如下:
web-tail只需要一个log.li
配置文件,配置比较简单,且支持热加载,示例配置文件内容如下:
# 请将该配置文件与web-tail执行程序放在同一目录下
# 需要通过浏览器查看的日志文件列表, 实时加载, 格式如下:
# 日志文件地址[=别名]
# 不配置别名时页面上将显示文件地址
# 加载该配置文件时,将自动检测文件是否存在,对于不存在的日志文件将自动过滤
# 前端页面首次访问时默认显示下述日志文件列表中的第一个日志文件
example.log=example
/usr/local/example1.log
/usr/local/example2.log
/usr/local/example3.log
可以下载源码自行编译也可下载已构建好的软件包直接使用,当前提供的编译后的包为mac与linux-amd64平台
根据需要,下载构建好的相应系统的二进制压缩包,解压后修改log.li
配置文件,启动web-tail
即可
# 下载web-tail-linux-amd64.zip或web-tail-Darwin-17.7.0.zip
# 解压
unzip web-tail-linux-amd64.zip
# 进入目录
cd web-tail-linux-amd64
# 根据需要修改log.li配置文件
# 启动 根据需要修改端口号
# 后台运行(linux)
setsid ./web-tail -addr=:8765 &> web-tail.log
# 前台运行
./web-tail -addr=:8765
下载web-tail代码,进入web-tail目录,构建应用,默认你的系统已安装golang
需要的环境
# 构建mac系统的软件包
make build-mac
# 构建linux-amd64系统的软件包
make build-linux
# 同时构建上述两种系统的软件包
make build-all
# 其他系统架构(Windows除外)可自行修改Makefile文件进行构建
在bin
目录下查看编译后生成的压缩包
将压缩包在本机或上传到相应的服务器上解压后,后续操作同`从二进制包启动
打浏览器进行访问,地址:http://ip:8765/log, 按 ESC
键可退出与服务器的连接或在页面右下角切换不同的日志进行查看:
git clone
cd web-tail
go mod init web-tail
go get github.com/gin-gonic/gin && go get github.com/gorilla/websocket
go build
# client.go中,修改
upgrader = websocket.Upgrader{
ReadBufferSize: 1024,
WriteBufferSize: 1024,
# 补充项目
CheckOrigin: func(r *http.Request) bool {
return true
},
}
# nginx.conf中
# http块下增加
http {
map $http_upgrade $connection_upgrade{
default upgrade;
'' close;
}
}
# server块下增加
server {
location ~* ^/_cat_ {
allow 192.168.130.0/23;
deny all;
proxy_pass http://127.0.0.1:18888;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_send_timeout 1800s;
proxy_read_timeout 1800s;
}
}
全局搜索/ws /log即可 main.go client.go log.index中