• Stars
    star
    195
  • Rank 199,374 (Top 4 %)
  • Language
    Go
  • Created about 8 years ago
  • Updated about 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

RemoteTail用于同步监控多台服务器日志文件变更,一句话说就是多主机的远程tail。

RemoteTail

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 '[email protected],[email protected]' \
-file '/usr/local/openresty/nginx/logs/access.log'

demo

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

简单的日志收集

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

nohup remote-tail -hosts '[email protected],[email protected]' -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"

# tail 命令的选项,一般Linux服务器不需要设置此项,采用默认值即可
# 如果是AIX等服务器,可能tail命令不支持下面这两个选项,可以修改该配置项为 "-f"
#tail_flags="--retry --follow=name"

# 服务器配置,可以配置多个
# 如果不提供password, 则默认使用系统配置的 ssh-agent 设置,
# 你也可以通过指定 private_key_path 配置项来指定使用特定的私钥来登录 (private_key_path=/home/mylxsw/.ssh/id_rsa)
# 私钥如果有密码的话,需要指定 private_key_passphrase 配置项来指定私钥密码
# 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"

执行命令:

remote-tail -conf=example.toml

如何贡献

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

问题反馈

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

Stargazers over time

Stargazers over time

More Repositories

1

aidea

AIdea 是一款支持 GPT 以及国产大语言模型通义千问、文心一言等,支持 Stable Diffusion 文生图、图生图、 SDXL1.0、超分辨率、图片上色的全能型 APP。
Dart
6,381
star
2

growing-up

程序猿成长计划
2,302
star
3

wizard

Wizard是一款开源的文档管理工具,支持Markdown/Swagger/Table类型的文档。
PHP
2,170
star
4

aidea-server

AIdea 是一款支持 GPT 以及国产大语言模型通义千问、文心一言等,支持 Stable Diffusion 文生图、图生图、 SDXL1.0、超分辨率、图片上色的全能型 APP。
Go
1,518
star
5

redis-tui

A Redis Text-based UI client in CLI
Go
895
star
6

aidea-docker

本项目为 AIdea 项目的一键部署安装包,基于 docker compose。
Shell
85
star
7

heimdall

Heimdall is a tool to perform import, export, direct SQL query and format conversion on excel files. Currently supports json, yaml, markdown, csv, xlsx, html, sql ...
Go
70
star
8

glacier

glacier is a app framework for rapid service development
Go
47
star
9

go-ioc

Go-IOC is a runtime dependency injection library for Go
Go
42
star
10

rabbitmq-pubsub-php

“RabbitMQ发布订阅实战-实现延时重试队列”一文的php代码示例
PHP
35
star
11

Excel2Entity

该项目实现批量导入Excel记录时,自动转换行为Java实体对象
Java
31
star
12

coyotes

非常简单的异步命令执行队列
Go
26
star
13

go-toolkit

Golang 工具集,平时在开发中常用的一些库或者封装的函数
Go
22
star
14

vagrant-lnmp

Cent OS 7, Nginx 1.6, PHP 5.6, MySQL 5.6开发环境搭建,源码编译安装
Shell
20
star
15

eloquent

Eloquent is a ORM framework for golang
Go
20
star
16

rabbitmq-pubsub-java

“RabbitMQ发布订阅实战-实现延时重试队列”一文的java代码示例
Java
20
star
17

adanos-alert

adanos-alert is a alert manager with multi alert channel support
Go
16
star
18

sed-demo

《三十分钟学会SED》测试文件
C++
11
star
19

gemini-proxy

TypeScript
9
star
20

date-filter

用于筛选当前时间到之前指定的范围内的日志内容的小工具,支持对php慢查询日志等多行日志文件的筛选
Go
8
star
21

tuna

Tuna是使用Go开发的一款短网址服务器,支持redis和mysql作为后端存储以及网址过期
Go
7
star
22

FileWatcher

文件变动监控,在目录下的文件发生变动的时候,自动触发配置的命令,比如编译等
Go
6
star
23

FocusPHP

FocusPHP is a micro php framework
PHP
5
star
24

redis-ha

主备模式的Redis高可用配置,配合Keepalived实现
Shell
4
star
25

asteria

Asteria is a logging library for go.
Go
4
star
26

aidea-homepage

AIdea 项目主页
HTML
4
star
27

consul-kv-migrate

一个简单的小工具,用于在两个独立的 Consul 集群之间迁移 KV 数据和比较 KV 差异
Go
4
star
28

arsenals

Arsenals PHP开发框架,让PHP开发不在单调
JavaScript
4
star
29

extractor

extractor is an HTTP service used to convert PDF, Markdown, HTML, Docx, Xlsx, CSV and other files into plain text output. It is used in RAG implementation to read external documents for vectorization.
Python
3
star
30

aidea-server-v2

Go
3
star
31

mariadb-ha

Mariadb 10.4 + MaxScale + Keepalive HA
Shell
2
star
32

sync

Sync is a file sync server and client
Go
2
star
33

password-server

一个用于生成随机密码的 web 服务器
Go
2
star
34

go-utils

Some golang utils
Go
2
star
35

lua-study

学习lua写的例子,个人用
Lua
2
star
36

tinyhttpd-0.1.0-study

tinyhttpd-0.1.0 源码学习,全注释
C
2
star
37

file-lines-cal

用于统计不同文件的总行数,比如统计代码总行数
Go
1
star
38

mgosniff

Go
1
star
39

mylxsw

Config files for my GitHub profile.
1
star
40

reverse-proxy

反向代理
Go
1
star
41

healthcheck

Go
1
star
42

Focusman

基于SAE的Webdav Server
PHP
1
star
43

gitwebhook

gitwebhook项目实现了git提交hook事件的处理,可用于自动化部署项目。
Go
1
star
44

keepalived-example

Keepalived & LVS 实现高可用负载均衡示例
Shell
1
star
45

openai-dispatcher

openai-dispatcher 用于为多个 OpenAI 的 API 服务提供负载均衡以及故障转移。
Go
1
star
46

beike

贝壳找房
TSQL
1
star
47

FocusPHP-Blog

基于FocusPHP创建的个人博客系统
PHP
1
star
48

mq-customer

消息队列消费
Go
1
star
49

my-alfred-workflow

这是我的Alfred中使用到的工作流
1
star
50

lumen-swagger-demo

Lumen框架中整合Swagger示例
PHP
1
star
51

coll

Coll is a collection library for Go
Go
1
star
52

DockerDemo

Learning Docker
Nginx
1
star
53

anthropic-proxy

TypeScript
1
star
54

trojan-go-terraform

用于一键部署 Trojan-Go 到 Digital Ocean Droplet,并使用 Cloudflare 自动配置域名解析,Let's Encrypt 自动生成证书
HCL
1
star
55

maconfig

The configure files for my mac
Vim Script
1
star