多服务器日志文件变更 RemoteTail

MIT
Google Go
跨平台
2016-09-21
mylxsw

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

如何贡献

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

问题反馈

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

加载中

评论(0)

暂无评论

暂无资讯

暂无问答

命令行接口(译)

整合 Tachyon 运行 Spark,原文地址:http://www.tachyon-project.org/documentation/Command-Line-Interface.html 如译文有误,请指正。...

2015/10/19 17:15
27
0
Nginx 日志

Nginx日志描述 通过访问日志,你可以得到用户地域来源、跳转来源、使用终端、某个URL访问量等相关信息;通过错误日志,你可以得到系统某个服务或server的性能瓶颈等。因此,将日志好好利用,...

2018/05/08 13:58
18
0
openshift 安装

安装控制命令(git,ruby要先安装上去,若安装失败先查看网络,再升级ruby) sudo gem install rhc 登录 rhc setup xxxxx@xxx.com (用户名) xxxxx(密码) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...

2013/03/05 20:39
397
0
Linux系统中使用head命令和tail命令查看指定文件中的指定行到某行命令

Linux系统下,不像windows图形化文件来操作文件,在命令行下如何查看指定文件的某行到指定行之间的命令如何来写呢?今天我们将利用head命令和tail命令来实现指定行的查看。 使用head命令和t...

2015/01/12 09:21
8K
0
Nginx访问日志、日志不记录静态文件、日志切割

Nginx访问日志 日志的内容是通过编辑Nginx主配置文件来定义的。 日志的格式(显示在日志文件中的内容) log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$st......

前天 16:34
6
0
Nginx访问日志

Nginx访问日志 就是用户访问网站的记录,用户点击网站的图片,文件的记录都会记录下来 主配置文件定义日志的格式 # vim nginx.conf //查看主配置文件 定义格式部分如下: log_format main '$...

前天 10:08
0
0
nginx日志分析——用sed彩色标记特定内容

nginx日志分析——用sed彩色标记特定内容

2015/03/22 21:10
2.6K
15
Linux 运维2月1日 4.36-4.40

目录 一、域名重定向 二、用户认证 三、Nginx访问日志 四、日志不记录静态文件 五、日志切割 域名重定向 添加hosts 配置第二个域名: vi /etc/nginx/conf.d/blog.jerrylinux.com.conf 在 se...

02/01 22:17
0
0
Laravel php artisan命令

Laravel Framework version 4.1.16 Usage: [options] command [arguments] Options: --help -h Display this help message. --quiet -q Do not output any message. --verbose -v|vv|vvv Inc...

2014/01/14 16:47
1K
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部