V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
iyaozhen
V2EX  ›  分享创造

Python 版 Filebeat

  •  1
     
  •   iyaozhen ·
    iyaozhen · 2016-08-15 21:20:57 +08:00 · 5462 次点击
    这是一个创建于 3052 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前一直在用 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 条附言  ·  2016-08-22 00:52:47 +08:00
    增加了配置文件说明,修复了一些小 bug ,发布了 1.0 版本: https://github.com/iyaozhen/filebeat.py/tree/1.0
    15 条回复    2016-08-22 10:47:21 +08:00
    rale
        1
    rale  
       2016-08-15 22:33:00 +08:00
    👍,看完代码了,楼主用 tail 命令实现的,很实用的工具,老古董的机器很适合,以后遇到那些低配的前端机就用这个来收集,期待楼主继续完善功能。。比如第一次监控到存在的文件的时候,看能不能取到全量的数据。
    knktc
        2
    knktc  
       2016-08-15 23:37:08 +08:00 via Android
    logstash 有的时候确实太重了
    9hills
        3
    9hills  
       2016-08-16 00:56:17 +08:00 via iPad
    Lz 思路真广。。。

    我是用 TCP 流,直接 NC 就好了
    rale
        4
    rale  
       2016-08-16 08:06:12 +08:00
    @9hills NC 只适合临时传个文件啥的, 一份文件只传一次比较适合,如果多次,必然很多重复数据,这样反而为后续流程增加了不少麻烦。
    9hills
        5
    9hills  
       2016-08-16 08:09:14 +08:00 via iPhone
    @rale tail 加 nc 加 logstash 的 tcp input
    rale
        6
    rale  
       2016-08-16 08:32:15 +08:00
    @9hills 嗯,这个方法不错,加 tail 后效果跟这个类似,开始我理解成 nc 传文件过去
    tanywei
        7
    tanywei  
       2016-08-16 09:33:40 +08:00
    @knktc 是啊,我装了 logstash ,搬机器的时候真心扛不动。
    iyaozhen
        8
    iyaozhen  
    OP
       2016-08-16 11:13:03 +08:00 via Android
    @rale 嗯,第一个文件之前的数据会丢失,可以改进下,不过这部分的数据缺失也是可以接受的。
    iyaozhen
        9
    iyaozhen  
    OP
       2016-08-16 11:19:29 +08:00 via Android
    @9hills 谢谢,之前没使用过 nc 指令。确实更加简单。不过我们这边有些日志会有当前时间戳, shell 的话比较麻烦。还有配置文件,扩展性、代码可维护性等。所以 Python 可能更合适一些。
    xi_lin
        10
    xi_lin  
       2016-08-16 12:23:22 +08:00
    这个结点。。
    iyaozhen
        11
    iyaozhen  
    OP
       2016-08-16 13:01:02 +08:00 via Android
    @xi_lin 额,确实好像不对。这个节点好像是 iOS 的。⊙﹏⊙
    iyaozhen
        12
    iyaozhen  
    OP
       2016-08-16 13:08:14 +08:00 via Android
    @Livid /go/create 麻烦了,感谢
    Livid
        13
    Livid  
    MOD
       2016-08-16 14:41:54 +08:00
    iyaozhen
        14
    iyaozhen  
    OP
       2016-08-22 00:54:20 +08:00
    @rale "第一次监控到存在的文件的时候,看能不能取到全量的数据。" 通过使用 cat file && tail -F file 解决了此问题
    rale
        15
    rale  
       2016-08-22 10:47:21 +08:00
    @iyaozhen 赞~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3127 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:40 · PVG 20:40 · LAX 04:40 · JFK 07:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.