• Packetbeat协议扩展开发教程(2)


    我们打开Packetbeat项目,看看里面长什么样:

    现在beats项目都合并在一起了,第一级可以看到各个子项目:


    /libbeat: 公共依赖;
    /filebeat: 替代Logstash-forwarder,处理日志类型数据;
    /packetbeat: 本文扩展重点,网络抓包;
    /topbeat: 监控系统性能;
    /winlogbeat: 监控windows下面的日志信息;
    /vender: 依赖的第三方库;
    /tests: 用于测试的pcamp抓包文件,非常有用;
    /scripts: 一些用于开发和测试的Docker脚本文件;


    现在重点看看/packetbeat下面目录都有些什么:

    /packetbeat/main.Go: 启动入口,里面没有什么逻辑;
    /packetbeat/beat/: 里面就一个packetbeat.go文件,packetbeat主程序,处理配置和命令行参数,协议需要在这里进行注册;
    /packetbeat/config/: 里面就一个config.go文件,定义了所有的配置相关的struct结构体,新协议需要在这里定义其配置的结构体;
    /packetbeat/debian/: debian打包相关;
    /packetbeat/decoder/: 解码类,网络传输层包的解码;
    /packetbeat/docs/: 项目的相关文档;
    /packetbeat/etc/: 示例配置文件;
    /packetbeat/procs/: 获取系统内核运作状态与进程信息的工具类;
    /packetbeat/protos/:自定义协议类,每个目录对应一个应用协议,我们需要在此新增我们的协议,如SMTP;
    /packetbeat/sniffer/: 三种不同抓包方式的实现:pcap、af_packet、pf_ring,关于这三者的区别,请参照文档: Traffic Capturing Options(https://www.elastic.co/guide/en/beats/packetbeat/1.0.1/capturing-options.html) ;
    /packetbeat/tests/: 测试相关的文件,里面有每一个协议的pcab抓包样板,还有一堆Python测试脚本;

    知道项目的大概架构就知道从哪下手了,下节分解。

  • 相关阅读:
    Echarts入门踩坑记录
    作业帮前端面经
    猿辅导前端面经
    昆仑万维前端面经
    顺丰科技前端面经
    云从科技前端面经
    亿联网络前端面经
    寒武纪前端面经
    纽约州交通事故数据可视化
    Vue中Object和Array数据变化侦测原理
  • 原文地址:https://www.cnblogs.com/beautiful-code/p/6625515.html
Copyright © 2020-2023  润新知