Zeek安装、使用与压力测试

news2024/10/2 14:14:33

Zeek安装与压力测试

  • Zeek安装、简单使用与压力测试
    • 环境
    • Zeek安装
    • zeek简单运行
    • 安装PF_RING
    • 修改Zeek配置文件,使用PF_RING,实现集群
    • 流量压力测试
    • 查看zeek日志

Zeek安装、简单使用与压力测试

科研需要,涉及到Zeek的安装、使用和重放流量压力测试评估Zeek性能,没有找到一个较完整的流程,以免后续忘记还是记下来吧

环境

ubuntu18.04

Zeek安装

Zeek官方文档地址:https://zeek-docs-cn.readthedocs.io/zh_CN/chinese/install/install.html
我参考的安装博文:https://qgrain.github.io/2020/03/12/Zeek%E5%AE%89%E8%A3%85/
1.安装所需要的依赖项

sudo apt-get install cmake make gcc g++ flex bison libpcap-dev libssl-dev python-dev swig zlib1g-dev

2.通过源码安装zeek
(1)在官网下载源码,官网下载地址:https://zeek.org/get-zeek/。通过git下载也可以,但是我在下载的时候总是下载不下来,所以直接从官网下载的
(2)解压缩下载的文件后,进入文件夹内,执行以下命令

# ./configure --help 
./configure
make
make install
# 默认安装路径为/usr/local/zeek

如果没安装上看看是否没有root权限,可以在前面加上sudo试试,如果缺少什么依赖项,就按照提示按照相应的依赖项
(3)配置运行时环境

export PATH=/usr/local/zeek/bin:$PATH

zeek简单运行

(1)进入zeek/bin文件夹内

cd /usr/local/zeek/bin

(2)运行zeekctl

sudo python3 zeekctl

(3)首次运行需要先在zeekctl交互窗口中输入deploy命令
(4)在zeekctl中输入start开启

(5)输入stop停止监测
在这里插入图片描述
(6)可以输入help了解其他命令使用方法

安装PF_RING

当要使用zeek集群时,需要安装PF_RING,集群的具体原理和作用以及PF_RING都可参考Zeek的官方文档:https://zeek-docs-cn.readthedocs.io/zh_CN/chinese/configuration/index.html?highlight=PF_RING#installing-pf-ring
(1)去ntop的github上下载PF_RING:https://github.com/ntop
(2)解压缩PF_RING后进行安装

cd PF_RING-5.6.2/userland/lib
sudo ./configure --prefix=/opt/pfring
sudo make install

(3)安装一些依赖
下载libcap、tcpdump包后的安装命令如下图

cd ../libpcap
./configure --prefix=/opt/pfring
make install

cd ../tcpdump-4.1.1
./configure --prefix=/opt/pfring
make install

cd ../../kernel
make
make install

(4)设置PF_RING模式
具体的设置可以参考ntop下PF_RING的官方文档,enable_tx_capture=0应该是不提取发送的数据包

modprobe pf_ring enable_tx_capture=0 min_num_slots=32768

(5)Zeek正确连接到PF_RING libpcap库
注意,在这之前我重新执行了zeek的安装命令,如下命令所示,我不知道是否必须要执行,大家可以自行尝试

./configure --with-pcap=/opt/pfring
make
make install

随后,执行下列命令,确保Zeek正确连接到PF_RING libpcap库

ldd /usr/local/zeek/bin/zeek | grep pcap
      libpcap.so.1 => /opt/pfring/lib/libpcap.so.1 (0x00007fa6d7d24000)

修改Zeek配置文件,使用PF_RING,实现集群

我设置了15个worker,每个worker分配了2个逻辑cpu,配置文件如下
注:要按情况设置worker,查清楚cpu内核数,不同worker使用不同的逻辑cpu,同时还需要给logger等其他节点预留cpu

# Example ZeekControl node configuration.
#
# This example has a standalone node ready to go except for possibly changing
# the sniffing interface.

# This is a complete standalone configuration.  Most likely you will
# only need to change the interface.
#[zeek]
#type=standalone
#host=localhost
#interface=eno1

## Below is an example clustered configuration. If you use this,
## remove the [zeek] node above.

[logger-1]
type=logger
host=localhost  #可以改成你的logger所在电脑的IP

[manager]
type=manager
host=localhost  #可以改成你的manager所在电脑的IP

[proxy-1]
type=proxy
host=localhost  #可以改成你的proxy所在电脑的IP

[worker-1]
type=worker
host=localhost  #可以改成你的worker所在电脑的IP
interface=eno1  #改成你的网卡信息
lb_method=pf_ring #使用pf_ring
lb_procs=2 #分配2个逻辑cpu
pin_cpus=0,1 #分配的两个cpu编号

[worker-2]
type=worker
host=localhost
interface=eno1
lb_method=pf_ring
lb_procs=2
pin_cpus=2,3

[worker-3]
type=worker
host=localhost
interface=eno1
lb_method=pf_ring
lb_procs=2
pin_cpus=4,5

[worker-4]
type=worker
host=localhost
interface=eno1
lb_method=pf_ring
lb_procs=2
pin_cpus=6,7

[worker-5]
type=worker
host=localhost
interface=eno1
lb_method=pf_ring
lb_procs=2
pin_cpus=8,9

[worker-6]
type=worker
host=localhost
interface=eno1
lb_method=pf_ring
lb_procs=2
pin_cpus=10,11

[worker-7]
type=worker
host=localhost
interface=eno1
lb_method=pf_ring
lb_procs=2
pin_cpus=12,13

[worker-8]
type=worker
host=localhost
interface=eno1
lb_method=pf_ring
lb_procs=2
pin_cpus=14,15

[worker-9]
type=worker
host=localhost
interface=eno1
lb_method=pf_ring
lb_procs=2
pin_cpus=16,17

[worker-10]
type=worker
host=localhost
interface=eno1
lb_method=pf_ring
lb_procs=2
pin_cpus=18,19

[worker-11]
type=worker
host=localhost
interface=eno1
lb_method=pf_ring
lb_procs=2
pin_cpus=20,21

[worker-12]
type=worker
host=localhost
interface=eno1
lb_method=pf_ring
lb_procs=2
pin_cpus=22,23

[worker-13]
type=worker
host=localhost
interface=eno1
lb_method=pf_ring
lb_procs=2
pin_cpus=24,25

[worker-14]
type=worker
host=localhost
interface=eno1
lb_method=pf_ring
lb_procs=2
pin_cpus=26,27

[worker-15]
type=worker
host=localhost
interface=eno1
lb_method=pf_ring
lb_procs=2
pin_cpus=28,29

流量压力测试

(1)安装tcpreplay

sudo apt-get install tcpreplay

(2)修改数据包

tcprewrite --infile=test.pcap --outfile=test_1.pcap --dstipmap=0.0.0.0/0:111.111.11.111 --enet-dmac=ab:cd:ef:ef:ab:cd

(3)更新数据包校验和

tcprewrite --infile=test_1.pcap --outfile=test_final.pcap --fixcsum

(4)重放数据包

tcpreplay -v  -i eth0 -M 1000 test_final.pcap

查看zeek日志

Zeek日志保存在zeek文件夹的log子文件夹内,即/usr/local/zeek/log,通过查看日志可以查看Zeek流量监控结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/397597.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【牛客刷题专栏】0x0F:JZ7 重建二叉树(C语言编程题)

前言 个人推荐在牛客网刷题(点击可以跳转),它登陆后会保存刷题记录进度,重新登录时写过的题目代码不会丢失。个人刷题练习系列专栏:个人CSDN牛客刷题专栏。 题目来自:牛客/题库 / 在线编程 / 剑指offer: 目录前言问题…

VKL060 SSOP24超低功耗/抗干扰15*4 LCD液晶段码驱动IC,适用于传感器/数字压力表

产品型号:VKL060产品品牌:永嘉微电/VINKA封装形式:SSOP24产品年份:新年份原厂,工程服务,技术支持!VKL060概述:VKL060是一个点阵式存储映射的LCD驱动器,可支持最大60点(15…

【ROS学习笔记13】ROS中的TF坐标变换

【ROS学习笔记13】ROS中的TF坐标变换 文章目录【ROS学习笔记13】ROS中的TF坐标变换前言1. 静态坐标变换2. 动态坐标变换3. 多坐标变换4. 坐标系关系查看5. TF坐标变换实操Reference写在前面,本系列笔记参考的是AutoLabor的教程,具体项目地址在 这里 前言…

sqli-labs靶场实战

sqli-labs靶场实战 (手工)SQL注入基本步骤: 第一步:注入点测试 第二步:查询字段数 第三步:判断回显位 第四步:查询数据库的基本信息 第五步:爆数据库名 第六步:爆数据库…

ROS云课使用CoCubeSim案例

源码压缩包:https://gitcode.net/ZhangRelay/cocubesim打开蓝桥ROS云课:下载cocubesim压缩包:https://gitcode.net/ZhangRelay/cocubesim.git注意文件路径,home文件夹下的code文件夹里面。解压缩:tar -xf cocubesim/co…

黑马Linux笔记03【su、sudo、groupadd、useradd、usermod、userdel、getent、chmod、chown】

资源 视频地址:黑马-新版Linux快速入门到精通资源下载:https://pan.baidu.com/s/1zExrsk09QVm3mpqaPTqe_g?pwd6666,提取码:6666笔记 黑马Linux笔记01【安装VMware Workstation、安装CentOS7、远程连接Linux系统、Win10配置WSL(Ub…

机器学习算法: Logistic 回归 详解

动动发财的小手,点个赞吧! 1. 导读 逻辑回归是在因变量为二元时进行的回归分析。它用于描述数据并解释一个因二元变量与一个或多个名义、有序、区间或比率水平变量之间的关系。二元或二项式 Logistic 回归可以理解为处理其中因变量的观察结果只能是二元的…

Mac电脑,python+appium+安卓模拟器使用步骤

1、第一步,环境搭建,参考这位博主的文章,很齐全 https://blog.csdn.net/qq_44757414/article/details/128142859 我在最后一步安装appium-doctor的时候,提示权限不足,换成sudo appium-doctor即可 2、第二步&#xff0…

Discuz X3.1 QQ互联登陆报错解决方法

安装X3.1后QQ互联登陆出现(1054) Unknown column conuintoken in field list,具体截图如下: 原因是用QQ登陆的时候是把你的账号信息写入数据表common_member_connect中的,而这个语句中有conuintoken 这个字段,但数据表common_mem…

【Java基础】10分钟看懂Java NIO

一、IO概述IO的操作方式通常分为几种:同步阻塞BIO、同步非阻塞NIO、异步非阳塞AIO1、在JDK1.4之前,我们建立网络连接的时候采用的是 BIO 模式。2、Java NIO(New IO或Non Blocking IO) 是从Java 1.4版本开始引入的一个新的IOAPI,可以替代标准的Java IO AP…

跨域问题解决方案

目录 1.同源策略 2.解决方案(后端) (1)在后端方法添加CrossOrigin (2)添加CORS过滤器 (3)实现WebMvcConfigure接口,重写addCorsMappings方法 3.解决方案(前端) (1)前端配置代理 1.同源策略 同源策略(Same origin policy)是一种约定&am…

代码随想录算法训练营day53 | 动态规划之子序列 1143.最长公共子序列 1035.不相交的线 53. 最大子序和

day531143.最长公共子序列1.确定dp数组(dp table)以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例推导dp数组1035.不相交的线53. 最大子序和1.确定dp数组(dp table)以及下标的含义2.确定递推公式3.dp数组如何…

【深入理解 线程池】

深入理解 线程池介绍源码学习线程池的类继承体系ThreadPoolExector核心数据结构核心配置参数线程池的执行流程如图:线程池的优雅关闭线程池的生命周期正确关闭线程池的步骤任务的提交过程分析任务的执行过程shutdonw() 与任务执行过程综合分析shutdonwNow() 与任务执…

python3.6 处理报错free(): invalid pointer

在运行脚本的时候遇到了这个报错,我在笔记本的win10 python3.7上正常运行,把程序考到服务器报了这个错,free(): invalid pointer 脚本里写了异常处理,用的是纯净的虚拟环境,所以我感觉问题是出在系统环境上 在网上搜…

Linux:tcp socket客户端和服务器端代码

服务器端代码&#xff1a; #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <string.h> #include <arpa/inet.h> #include <sys/un.h> #include <sy…

手工数据采集耗时耗力?Smartbi数据填报实现数据收集分析自动化

企业在日常经营管理过程中&#xff0c;往往需要收集很多内外部的信息&#xff0c;清洗整理后再进行存储、分析、呈现、决策支持等各种作业&#xff0c;如何高效收集结构化数据是企业管理者经常要面对的问题。传统手工的数据采集方式不仅耗费了大量人力时间成本&#xff0c;还容…

爽,我终于掌握了selenium图片滑块验证码

因为种种原因没能实现愿景的目标&#xff0c;在这里记录一下中间结果&#xff0c;也算是一个收场吧。这篇文章主要是用selenium解决滑块验证码的个别案列。 思路&#xff1a; 用selenium打开浏览器指定网站 将残缺块图片和背景图片下载到本地 对比两张图片的相似地方&#x…

【含源码】用python做游戏有多简单好玩

有很多同学问我还有其他什么小游戏吗&#xff0c;游戏是怎么做的&#xff0c;难不难。我就用两篇文章来介绍一下&#xff0c;如何使用Python做游戏。 兔子与灌 俄罗斯方块 休闲五子棋 走迷宫 推箱子 消消乐 超多小游戏玩转不停↓ 更多小游戏可以评论区讨论哦&#xff0c;喜欢…

C中AES_cbc_encrypt加密对应java中的解密

前言知识&#xff1a; 1.AES&#xff08;Advanced Encryption Standard&#xff09;高级加密标准&#xff0c;作为分组密码&#xff08;把明文分成一组一组的&#xff0c;每组长度相等&#xff0c;每次加密一组数据&#xff0c;直到加密完整个明文&#xff09;。 2.在AES标准…

C#基础教程12 数组

文章目录 C# 数组(Array)C# 中的数组声明数组初始化数组赋值给数组访问数组元素C# 数组细节C# 数组(Array) 数组是一个存储相同类型元素的固定大小的顺序集合。数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合。 声明数组变量并不是声明 number0、number1…