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

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

  • 相关阅读:
    systemctld 启动理解
    公私钥(证书)理解
    布隆过滤器
    python linux下dbg
    iOS基础尺寸图
    metadataObjectTypes 详解
    pkg_config_path 环境变量设置 教程
    Cloning failed using an ssh key for authentication, enter your GitHub credentials to access private 解决方案
    docker php安装GD扩展
    mysql 隔离级别
  • 原文地址:https://www.cnblogs.com/beautiful-code/p/6416712.html
Copyright © 2011-2022 走看看