跳转至

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.vip172-26-32-45.ipa.vip 两台主机的ucenter日志

remote-tail -conf ucenter.toml

img

配置文件样例

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"