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测试脚本;

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

  • 相关阅读:
    网络字体图标制作说明
    一些Office365官方的文章连接
    使用Microsoft Graph API整合Office 365
    如何获取Azure 租户ID
    如何在Azure的管理门户中注册应用程序并且分配Graph API权限
    网页简单整合Skype
    如何在windows10中保持Hyper-V与VMWare同时存在
    苹果企业开发者账号申请步骤
    git 取消 文件夹 版本控制
    在 sql server 中,查询 数据库及数据库中各表的大小
  • 原文地址:https://www.cnblogs.com/beautiful-code/p/6625515.html
Copyright © 2011-2022 走看看