现在项目上有需求,需要把 pcap 包解析并存储到系统中,并支持用户按照一些关键属性进行搜索,比如按照 ip 、端口、域名之类的属性去搜索。因为每种网络协议的格式都不一样,存储的结构也不同,所以用什么数据库、什么样的格式存储现在还没有敲定,求助大家有没有好的方法或者经验去存储网络数据包
1
opengps 2023-08-24 14:46:59 +08:00
太大了,存储能力跟不上网络能力,你这不是向数据库应用发起挑战,你这是向存储速度发起挑战了
|
2
sniperking1234 OP @opengps 网络流量不是全量和实时采集的,数据倒是没那么多,目前主要问题是存储不知道怎么存,因为需求要从所有流量中进行筛选
|
3
proxychains 2023-08-24 15:19:46 +08:00
pps 有多少? 机房最近也打算做流量记录和审计.
计划用 kafka+clickohuse |
4
sniperking1234 OP @proxychains 还没有 pps 的概念,我们是通过下发任务,采集回传 pcap 包,解析入库这个流程。你用 clickhouse 的话是打算一个协议一个表吗
|
5
proxychains 2023-08-24 16:20:06 +08:00
@sniperking1234 打算直接存对象, 一个表吧.
clickhouse 做完分片副本和索引查起来还可以 layer:L2, SrcMAC: xxxxx, DstMAC:xxx layer:L3, SrcIp: xxx, DstIp:xxx, SrcPort:xxx, DstIp:xx, protocol: tcp ... 只是这样规划, 还没在测试环境做. |
6
815979670 2023-08-24 17:53:06 +08:00
单机的话 clickhouse 是个不错的选择,如果分布式的话 可以考虑一下 百度的 Apache Doris ,ClickHouse 分布式不太友好 但单机 ClickHouse 更好一些
|
7
sniperking1234 OP @proxychains 这是把所有的协议中出现的字段都列出来做成个大宽表吗
|
8
sniperking1234 OP @815979670 多谢建议,我去调研看看
|
9
proxychains 2023-08-24 19:06:48 +08:00 via Android
|