RemoteTail

多服务器日志文件变更
授权协议 MIT
开发语言 Google Go
所属分类 管理和监控、 日志分析和统计
软件类型 开源软件
地区 国产
投 递 者 梁学真
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

RemoteTail是一款支持同步显示多台远程服务器的日志文件内容更新的工具,使用它可以让你同时监控多台服务器中某个(某些)日志文件的变更,将多台服务器的tail -f xxx.log命令的输出合并展示。相比于其他流行的日志手机工具,RemoteTail去掉了在远程服务器安装agent的必要,减小了与远程服务器的耦合,但需要注意的是,由于日志收集使用的是远程执行tail命令,因此如果进程退出重启后会出现日志重复或者丢失部分日志的风险。

RemoteTail只适应于简单的日志收集聚合,如果你不介意重启服务时日志丢失或者重复的问题,那么推荐你尝试一下。

使用场景

假设公司有两台web服务器A和B,由于初期没有专业运维进行配置集中式的日志服务系统,两台服务器上分别部署了两套相同的代码提供web服务,使用nginx作为负载均衡,请求根据设定的策略转发的这两台web服务器上。

AB两台服务器中的项目均将日志写到文件系统的/home/data/logs/laravel.log文件。这种情况下如果我们需要查看web日志是否正常,一般情况下就需要分别登陆两台服务器,然后分别执行tail -f /home/data/logs/laravel.log查看日志文件的最新内容,这在排查问题的时候是非常不方便的。RemoteTail就是为了解决这种问题的,开发人员可以使用它同步显示两台(多台)服务器的日志信息。

安装

release页面下载对应的remote-tail-平台可执行文件,将该文件加入到系统的PATH环境变量指定的目录中即可。

比如,Centos下可以放到/usr/local/bin目录。

mv remote-tail-linux /usr/local/bin/remote-tail

使用方法

使用前需要宿主机建立与远程主机之间的ssh公钥免密码登陆

remote-tail -hosts 'watcher@192.168.1.226,watcher@192.168.1.225' \
-file '/usr/local/openresty/nginx/logs/access.log'

如果服务器sshd监听的非默认端口22,可以使用watcher@192.168.1.226:2222这种方式指定其它端口。

简单的日志收集

日志聚合后作为单独文件存储,可以使用下面的方法

nohup remote-tail -hosts 'watcher@192.168.1.226,watcher@192.168.1.225' -file '/usr/local/openresthy/nginx/logs/access.log' -slient=true > ./res.log &

-slient=true参数用于指定RemoteTail不输出欢迎信息和控制台彩色字符,只输出纯净整洁的日志。

指定配置文件

通过使用-conf参数可以为命令指定读取的配置文件,配置文件为TOML格式,请参考example.toml文件。

配置文件example.toml

# 全局配置,所有的servers中tail_file配置的默认值
tail_file="/data/logs/laravel.log"

# 服务器配置,可以配置多个
# 如果不提供password,则使用当前用户的ssh公钥,建议采用该方式,使用密码方式不安全
# 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"

[servers.3]
server_name="测试服务器3"
hostname="test2.server.aicode.cc"
user="demo"
password="123456"

执行命令:

remote-tail -conf=example.toml

如何贡献

欢迎贡献新的功能以及bug修复,Fork项目后修改代码,测试通过后提交pull request即可。

问题反馈

你可以在github的issue中提出你的bug或者其它需求。

  • RemoteTail是一款支持同步显示多台远程服务器的日志文件内容更新的工具,使用它可以让你同时监控多台服务器中某个(某些)日志文件的变更,将多台服务器的tail -f xxx.log命令的输出合并展示。相比于其他流行的日志手机工具,RemoteTail去掉了在远程服务器安装agent的必要,减小了与远程服务器的耦合,但需要注意的是,由于日志收集使用的是远程执行tail命令,因此如果进程退出重启后

 相关资料
  • 当我在conf文件的虚拟主机部分中没有指定日志文件时,日志会写入httpd中指定的文件中。conf(=访问日志)。日志条目如下所示: SOMEIP--[22/Jan/2013:18:34:08 0100]“GET/HTTP/1.1”200 1752-“Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.17(KHTML,比如Gecko)Chrome/S

  • 本文向大家介绍用服务器日志监控软件、服务器日志分析工具软件教你如何查看服务器日志?,包括了用服务器日志监控软件、服务器日志分析工具软件教你如何查看服务器日志?的使用技巧和注意事项,需要的朋友参考一下 现在很多公司局域网都有自己的文件服务器,用于存储或共享一些文件供局域网用户访问使用。但是,在设置共享文件访问的过程中,经常出现共享文件被随意复制、修改甚至删除的情况发生,这使得共享文件的安全管理面临着

  • 您是否知道如何设置远程配置,以便在服务器上而不是本地计算机上显示日志文件? 在编辑配置屏幕上(日志选项卡),我可以选择显示日志文件,但只能从我的机器日志,而不是从远程服务器。 我不介意,如果我必须为它安装任何插件,但直到现在我找不到任何做我想要的。 谢谢

  • MySQL服务日志 MySQL服务日志分类 慢查询日志 查看慢查询日志的定义 启动和设置慢查询日志 二进制日志 MySQL服务日志分类 错误日志(error):记录MySQL服务进程mysqld在启动/关闭或者运行过程中遇到的错误信息; 查询日志(query log),分为以下两类: 普通日志(general query log):记录客户端连接信息和执行的SQL语句信息( 生产环境中一般不开启

  • 我们知道,使用“@IP:端口”或“@@IP:端口”的格式可以把日志发送到远程主机上,那么这么做有什么意义吗? 假设我需要管理几十台服务器,那么我每天的重要工作就是查看这些服务器的日志,可是每台服务器单独登录,并且查看日志非常烦琐,我可以把几十台服务器的日志集中到一台日志服务器上吗?这样我每天只要登录这台日志服务器,就可以查看所有服务器的日志,要方便得多。 如何实现日志服务器的功能呢?其实并不难,不

  • 我从syslog得到了关于mysql的日志,但是它们太简短了,因为它们没有告诉我(或者至少我认为)是什么导致mysql以状态1终止。有人能帮我拿更详细的日志吗? 最好,袁 5月25日18:32:21巴纳德内核:[1587749.902491]type=1400审核(1337985141.215:263):apparmor=“STATUS”operation=“profile_replace”nam

  • 服务器 用于监听服务器中每个客户机的线程在名为OyenteCliente(ClientListener)的类中实现,每个客户机中监听服务器petitios的线程在OyenteServidor(ServerListener)中实现。 客户监听器 非常感谢!

  • 我们在生产Websphere liberty概要文件中使用mobilefirst 6.3。 mobilefirst中是否有方法更改默认日志文件,而不使用一些自定义java函数来记录?我们希望将适配器中的日志与服务器日志分开。