实时日志文件集中收集方法

2017-03-31 22:45:19 +08:00
 salmon5

公司很多应用服务器 tomcat 等,业务日志输入没有统一的规范,由于是非结构化数据,各种抛异常 debug 等,没法用 ELK , 又没有专门的架构人员去规范业务日志,去做这套平台, 怎么实时的同步到一台机器上,比如 ip 地址是 10.1.1.1 的 /usr/local/tomcat/logs/* 到一台机器的 /data/logs/10.1.1.1/*,这样按日志的行同步,不用关心日志规范,以此类推 N 多应用服务器。 这样普通开发人员想分析日志只要这一个集中的服务器权限就可以了。

6080 次点击
所在节点    DevOps
11 条回复
momocraft
2017-03-31 22:48:16 +08:00
感覺可以用 fluentd 把各機器的各種 log 轉發到一處
miao1007
2017-03-31 23:25:14 +08:00
上 MQ 发送日志
goodryb
2017-03-31 23:59:50 +08:00
同步文件 rsync ?
jimzhong
2017-04-01 07:33:03 +08:00
syslogd 支持远程日志服务器吧
willakira
2017-04-01 08:22:29 +08:00
Log4j 的 Appender 支持写到远程服务器
https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/net/SocketAppender.html
知道这个的话剩下就是找个合适的服务了, logstash, syslog-nd 等等

但是你这样只是解决了一个问题,日志的集中归纳

建议你们在这之上搞一个日志分析系统,好处至少有这样几个:
- 工程师可以更广地看待整个系统问题
- 学习成本不高,因此 PM 也可以很好分析各种业务情况
pekingzcc
2017-04-01 15:13:46 +08:00
最简单的就是折腾下 syslogd 或 Rsyslog
bengle
2017-04-01 16:05:38 +08:00
ELK 不就是干这个的么,不通的日志用不通的规则去解析,除非这些应用日志打在一个文件里??
wingyiu
2017-05-18 15:47:24 +08:00
写一个 LogUtil 库,统一一下日志格式,然后用 ELK 不就行了?
glennxie
2017-09-07 14:03:20 +08:00
服务端:ELK,其实如果不过滤接收的日志,logstash 可以不装。
tomcat 上装 filebeat 作为 agent 直接传输到 elasticsearch 或者传到 logstash 做过滤
glennxie
2017-09-07 14:04:08 +08:00
机器多可以加 redis 或者其他作为缓存
iappled
2017-12-04 14:38:37 +08:00
rsyslog

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/351845

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX