网络流量分析利器-可视化网络-netflow【4】-接收器nfdump简介

netflow接收器

有了发送器,还需要有接收器才能收集数据和分析数据,商业软件有ManageEngine和SolarWinds,他们基本上按照埋点个数算钱或者按照流量收费,实在买不起。

后来找到了一个github上开源的软件,这个软件是nfsen的后台,叫nfdump,为啥没直接推荐nfsen,因为我觉nfsen的界面做的不好,而且流量图是png格式,很难二次开发,而nfdump将数据存储成文本文件,利于二次开发,可以存到数据库,再用grafana展示出来。

nfdump介绍

官网(github,如果打不开,请使用梯子):

https://github.com/phaag/nfdump/blob/master/README.md
2019年末,最新版本1.6.18,使用yum安装默认也是1.6.18版本。
nfdump是一个可以收集和处理netflow和sflow的工具,支持netflow v1,v5/v7,v9,IPFIX和sflow,支持IPv4和IPv6。

安装

环境:CentOS 7
更换yum源(可选操作):

cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
mv CentOS7-Base-163.repo CentOS-Base.repo
yum update

安装nfdump

yum -y install nfdump

查看版本

nfdump -V

nfdump的五大工具

nfcapd-netflow收集器守护程序,收集从采集设备发来的flow数据,并写入文件中,默认5分钟存成一个文件。
nfdump-读取文件数据,并整合数据。nfdump从nfcapd存储的一个或多个文件中读取netflow数据。nfdump语法和tcpdump语法很像,他可以输出单个数据信息,也可以进行聚合输出统计信息,还可以根据packets或者bytes等参数进行排序。
nfanon-匿名记录Netflow记录,流记录中的IP地址使用CryptoPAn方法进行匿名处理。
nfexpire-丢弃旧的数据,管理数据到期。设置适当的限制。用于NfSen。
nfreplay-Netflow重放,从nfcapd存储的文件中读取netflow数据,发送到另一台主机。

命令参数

nfcapd 命令参数

-h:帮助
-w:将文件旋转与接下来的n分钟(由-t指定)间隔对齐,实测并没看出他的用处,同步文件周期完全受到-t参数影响。单是用此参数,没有效果。
-t:(重要)指定旋转文件的时间间隔,以秒为单位。 默认值为300s。决定了生成nfcapd文件的周期。建议选择60s。
-b:监听的目标地址,可以使ip或hostname。
-4:仅监听ipv4,可以和-b搭配使用。
-6:仅监听ipv6,可以和-b搭配使用。
-J:加入多播组。
-p:(重要)监听端口。
-l:(重要)设置输出目录。
-s:(有用)子层次结构,文件内部存储接口,可以自动生成文件夹。详见man。
-n:(有用)当有多个数据源时,可以指定数配置数据源参数,格式:Ident,IP,logdir。
-P:设置pid文件。
-R:将传入的数据包重复发送到IP地址/端口。 最多8个中继器。
-B:设置套接字缓冲区大小。
-D:(重要)后台运行
-T:(重要)需要记录的参数,详见man。
-V:查看版本。

nfdump 命令参数

-h:帮助
-V:查看版本
-a:通过五元组protocol, srcip, dstip, srcport and dstport进行汇总。
-A:选择性汇总,可以单独汇总srcip或者protocol,也可以使用‘,’分割,汇总多个参数。格式-A proto,srcip,dstport,详见man。
-b:和-a相似,区别只是将双向流量汇总成一个值。
-B:和-A相似,区别只是将双向流量汇总成一个值。
-r:读取单个文件。
-w:将结果输出到文件。默认ASCII格式。
-n:查看前n位数据。
-c:从第一行读取到指定行数。
-D:使用dns将ip解析成主机名
-N:输出纯数字,比如tcp协议用6显示。
-s:格式-s [/],为生成统计信息,并根据排序。详见man。
-q:不打印标题行和底部状态行。
-I:从-r指定的nfcapd文件内读取摘要信息。
-M:读取多个文件夹,格式:/dir/dir1:dir2:dir3 Read the same files from '/dir/dir1' '/dir/dir2' and '/dir/dir3'。
-O:进行排序的参数,比如bytes,tstart,flows等。
-R:读取多个文件。格式:-R nfcapd.201912301833:nfcapd.201912301837。
-o:输出文件格式,比如csv,json,long等,也可以自定义。

配置实例

nfcapd 配置实例

使用9995端口进行监听,并存储到一个文件内,识别v9的所有标签

nfcapd -z -w -D -T all -l /netflow/spool/allflows -I any -S 2 -P /var/run/nfcapd.allflows.pid

通过8887端口收集来自两个不同采集器的数据,并存储在单独的文件夹中,并将缓冲区大小设置为128000字节

nfcapd -z -w -D -T all -p 8877 -n upstream,192.168.1.1,/netflow/spool/upstream -n peer,192.168.2.1,/netflow/spool/peer -S 2  -B 128000

只接收单一采集器的数据,并且只识别扩展3,4,5的数据,在存储完一个文件后,执行一个命令,同时设置流量自动过期

nfcapd -w -D -T 3,4,5 -n upstream,192.168.1.1,/netflow/spool/upstream -p 23456 -B 128000 -x '/path/command -r %d/%f'  -P /var/run/nfcapd/nfcapd.pid -e

nfdump 配置实例

查询前一百行数据,并匹配出tcp协议,源地址172.16.17.18或者目的地址172.16.17.19的流

nfdump  -r /and/dir/nfcapd.201107110845 -c 100 'proto tcp and ( src ip 172.16.17.18 or dst ip 172.16.17.19 )' 

查询7月11日8:45到9:45,IP地址为192.168.1.2的记录

nfdump -R /and/dir/nfcapd.201107110845:nfcapd.201107110945 'host 192.168.1.2' 

查询多个数据源下,前20的数据流

nfdump  -M  /to/and/dir1:dir2 -R nfcapd.200407110845:nfcapd.200407110945 -s record -n 20 

查找18:33分的数据,汇聚源地址和目的地址,并以bytes进行降序排序,且用特定格式输出前二十个数据

nfdump -r nfcapd.201912301833 -o "fmt:%ts %td %pr %sap -> %dap %flg %tos %pkt %byt %fl" -A srcip,dstip -O bytes -n 20

效果

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值