Remote-Tail远程tail
Remote-Tail 是一款用 Go 语言开发的开源工具,专为同步监控多台远程服务器的日志文件变更而设计。它通过 SSH 协议连接到目标服务器,执行 tail -f 命令来实时获取日志内容,并将多台服务器的日志输出合并展示在本地终端,无需在远程服务器上安装额外的代理程序
核心特性
- 多主机聚合:可同时监控两台或更多服务器的日志文件,例如同时查看负载均衡后两台 Web 服务器的访问日志。
- 无 Agent 部署:基于 SSH 远程执行命令,减少了对远程服务器的依赖和耦合。
- 灵活配置:支持通过命令行参数或 TOML 格式的配置文件进行设置,可指定服务器列表、日志路径、SSH 端口、私钥认证等。
- 输出控制:提供静默模式(
-silent=true),仅输出纯净日志内容,便于重定向到文件或集成到其他系统。
使用前提
- SSH 免密登录:本地主机必须配置好与远程服务器的 SSH 公钥认证,否则无法自动连接。
- 网络连通性:本地机器需能通过网络访问远程服务器的 SSH 服务(默认端口 22)
使用方法
从 GitHub Releases 页面 下载对应平台的可执行文件
将文件移动到系统 PATH 目录,例如:
mv remote-tail-linux /usr/local/bin/remote-tail
执行命令监控日志
remote-tail -hosts 'user@server1_ip,user@server2_ip' -file '/path/to/logfile.log'
通过使用-conf参数读取指定的配置文件,查看需要的日志,配置文件为TOML格式
举例:查看172-26-32-44.ipa.vip、172-26-32-45.ipa.vip 两台主机的ucenter日志
remote-tail -conf ucenter.toml

配置文件样例
| Bash |
|---|
| slient=false #如果不输出欢迎信息,可以改为True
[servers]
[servers.1]
server_name="44"
hostname="172-26-32-44.ipa.vip"
user="username"
tail_file="/opt/ucenter-server/logs/info.log"
password="123456" # 这里把密码替换成自己的
[servers.2]
server_name="45"
hostname="172-26-32-45.ipa.vip"
user="username"
tail_file="/opt/ucenter-server/logs/info.log"
password="123456" # 这里把密码替换成自己的
|
配置文件详细介绍 example.toml:
| Bash |
|---|
| # 全局配置,所有的servers中tail_file配置的默认值
tail_file="/data/logs/laravel.log"
# tail 命令的选项,一般Linux服务器不需要设置此项,采用默认值即可
# 如果是AIX等服务器,可能tail命令不支持下面这两个选项,可以修改该配置项为 "-f"
#tail_flags="--retry --follow=name"
# 服务器配置,可以配置多个
# server_name, hostname, user 配置为必选,其它可选
[servers]
[servers.1]
server_name="测试服务器1"
hostname="test1.server.aicode.cc"
user="root"
tail_file="/var/log/messages"
# 指定ssh端口,不指定的情况下使用默认值22
port=2222
[servers.2]
server_name="测试服务器2"
hostname="test2.server.aicode.cc"
user="root"
tail_file="/var/log/messages"
tail_flags="-f"
[servers.3]
server_name="测试服务器3"
hostname="test2.server.aicode.cc"
user="demo"
password="123456"
|