zoukankan      html  css  js  c++  java
  • 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测试脚本;

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

  • 相关阅读:
    CF1051F The Shortest Statement 题解
    CF819B Mister B and PR Shifts 题解
    HDU3686 Traffic Real Time Query System 题解
    HDU 5969 最大的位或 题解
    P3295 萌萌哒 题解
    BZOJ1854 连续攻击游戏 题解
    使用Python编写的对拍程序
    CF796C Bank Hacking 题解
    BZOJ2200 道路与航线 题解
    USACO07NOV Cow Relays G 题解
  • 原文地址:https://www.cnblogs.com/beautiful-code/p/6625515.html
Copyright © 2011-2022 走看看