之前一直在用 ELK 那一套,因为 logstash 占用资源较多和 JDK 版本问题不适合部署在业务机器上,于是使用 Filebeat ( go 语言实现, https://www.elastic.co/products/beats/filebeat ),推送日志到线下 logstash 集群,效果很好,很稳定。
但某些老古董机器 glib 版本过低, filebeat 也无法运行,所有用 Python 实现了个“低配版” filebeat 。已在线上跑了几个月了,今天改了一点 bug 发了出来,希望能帮助到需要的小伙伴。
项目地址: https://github.com/iyaozhen/filebeat.py 代码很渣,求指正
1
rale 2016-08-15 22:33:00 +08:00
👍,看完代码了,楼主用 tail 命令实现的,很实用的工具,老古董的机器很适合,以后遇到那些低配的前端机就用这个来收集,期待楼主继续完善功能。。比如第一次监控到存在的文件的时候,看能不能取到全量的数据。
|
2
knktc 2016-08-15 23:37:08 +08:00 via Android
logstash 有的时候确实太重了
|
3
9hills 2016-08-16 00:56:17 +08:00 via iPad
Lz 思路真广。。。
我是用 TCP 流,直接 NC 就好了 |
4
rale 2016-08-16 08:06:12 +08:00
@9hills NC 只适合临时传个文件啥的, 一份文件只传一次比较适合,如果多次,必然很多重复数据,这样反而为后续流程增加了不少麻烦。
|
9
iyaozhen OP @9hills 谢谢,之前没使用过 nc 指令。确实更加简单。不过我们这边有些日志会有当前时间戳, shell 的话比较麻烦。还有配置文件,扩展性、代码可维护性等。所以 Python 可能更合适一些。
|
10
xi_lin 2016-08-16 12:23:22 +08:00
这个结点。。
|
12
iyaozhen OP @Livid /go/create 麻烦了,感谢
|