RemoteTail —— 多主机的远程 tail

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

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

logo

使用场景

假设公司有两台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'
demo

如果服务器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

文章转载自 开源中国社区 [http://www.oschina.net]

时间: 2024-09-28 04:43:22

RemoteTail —— 多主机的远程 tail的相关文章

如何在Atomic主机上远程使用 Docker

来自Atomic项目的Atomic主机是一个轻量级的容器基于的操作系统,它可以运行 Linux 容器.它已被优化为用作云环境的容器运行时系统.例如,它可以托管 Docker 守护进程和容器.有时,你可能需要在该主机上运行 docker 命令,并从其他地方管理服务器.本文介绍如何远程访问 Fedora Atomic 主机(你可以在这里下载到它)上的 Docker 守护进程.整个过程由 Ansible 自动完成 - 在涉及到自动化的一切上,这真是一个伟大的工具! 安全备忘录 由于我们通过网络连接,所

在 Atomic 主机上远程使用 Docker

来自 Atomic 项目 的 Atomic 主机是一个轻量级的容器基于的操作系统,它可以运行 Linux 容器.它已被优化为用作云环境的容器运行时系统.例如,它可以托管 Docker 守护进程和容器.有时,你可能需要在该主机上运行 docker 命令,并从其他地方管理服务器.本文介绍如何远程访问 Fedora Atomic 主机(你可以在这里下载到它)上的 Docker 守护进程.整个过程由 Ansible 自动完成 - 在涉及到自动化的一切上,这真是一个伟大的工具! 安全备忘录 由于我们通过网

云主机无法远程登录

之前加了一台云主机,今天新创建了两台,并加入到之前的系统默认创建的安全组.但现在三台服务器都无法通过ssh登录,信息提示如下: Xshell:\> ssh root@123.56.236.69 Connecting to 123.56.236.69:22... Connection established. Escape character is '^@]'. Connection closed by foreign host. 请问该如何解决?

《Windows Server 2012 Hyper-V虚拟化管理实践》一3.3 远程管理Hyper-V主机

3.3 远程管理Hyper-V主机 作为Hyper-V管理员,不可能每次都到部署Hyper-V主机前进行配置和管理,那样不仅费时费力,有时也往往很难实现(例如出差或者在家中).因此,实现对Hyper-V主机的远程管理,就成为不可或缺的网络管理手段.Windows XP以上版本操作系统中内置了"远程桌面(Mstsc)"工具,通过该工具,管理员可以方便地管理远程计算机.远程桌面连接成功后管理员可以访问远程计算机的所有应用程序.文件和网络资源,好像正坐在工作计算机前面操控计算机一样. 3.3

Putty实现自动登陆远程Linux主机的方法_linux shell

由于工作需要,经常要从 Windows 主机访问远程的 Ubuntu 服务器,每次输入账号和老长的密码,感觉很麻烦,于是参考网上的教程简单的设置了一下就能自动登陆远程主机了,非常的方便. 虽然 Putty 也提供了 puttygen.exe 生成公/密钥,但是和 Linux 主机生成的 KEY 格式不同,需要手工修改格式,所以采用 Linux 主机自己生成 KEY 的方式. 首先登陆到 Linux 主机,具体过程如下: 1. 生成公钥和密钥 复制代码 代码如下: verdana@hostname

《Windows Server 2012 Hyper-V虚拟化管理实践》——3.3 远程管理Hyper-V主机

3.3 远程管理Hyper-V主机 作为Hyper-V管理员,不可能每次都到部署Hyper-V主机前进行配置和管理,那样不仅费时费力,有时也往往很难实现(例如出差或者在家中).因此,实现对Hyper-V主机的远程管理,就成为不可或缺的网络管理手段.Windows XP以上版本操作系统中内置了"远程桌面(Mstsc)"工具,通过该工具,管理员可以方便地管理远程计算机.远程桌面连接成功后管理员可以访问远程计算机的所有应用程序.文件和网络资源,好像正坐在工作计算机前面操控计算机一样. 3.3

Server 2008 R2远程桌面授权

平时在使用远程桌面过程,我们经常会遇到这样的两个问题. 问题一.远程桌面的连接数限制 Server 2008 R2默认远程桌面连接数是2个用户,如果多余两个用户进行远程桌面连接时,系统就会提示超过连接数.如下图示: 问题二.远程桌面连接时,同一个用户不能同时开启两个桌面连接 如下图示: 为了解决这个问题,我们只需要开启Server 2008 R2的远程桌面授权服务.以下是该次实验所要使用到的三个用户:用户administrator.用户1.用户2,如下图示: 而且这个三个用户已经加入到远程桌面用

Windows系统怎么远程登陆桌面Linux?

  1.我们先在windows主机上下载TigerVNC软件包.TigerVNC是一款开源免费的VNC连接软件,我们可以通过它对带桌面的linux主机进行远程.这里,我们从SourceForge网站下载TigerVNC软件包. 2.安装TigerVN,打开下载的tigervnc-2.30.exe可执行文件.双击进行安装,点击"运行"; 3.点击"Next";勾选"I accept the agreement"复选框,点击"Next&qu

asp中利用xmlhttp实现远程管理数据库

xml|数据|数据库 A Review of Remote Database Administer几年之前, CGI-BIN 模块被用作远程管理数据库.现在, CGI-BIN 用得越来越少了,原因是它运行速度很慢,而且难于维护. 近几年,组件对象模型 (COM) 得到了广泛的运用,不幸的是,在虚拟主机上注册 COM 组件是一件很麻烦的事. 在 .NET 或 J2EE 平台上, 我们可以很方便地开发n层结构的 Web 应用程序.但是对于网站来说,我们有更方便的方法远程管理数据库,例如:运用 XML