網絡流量分析利器-可視化網絡-netflow【4】-接收器nfdump簡介

網絡流量分析利器-可視化網絡-netflow【1】-基礎原理
網絡流量分析利器-可視化網絡-netflow【2】-Cisco NetFlow 工作原理介紹及配置
網絡流量分析利器-可視化網絡-netflow【3】-netflow版本5和版本9區別
網絡流量分析利器-可視化網絡-netflow【4】-接收器nfdump簡介
網絡流量分析利器-可視化網絡-netflow【5】-linux下數據採集器fprobe
網絡流量分析利器-可視化網絡-netflow【6】-生產網流量監控架構設計
fprobe參數 -e
fprobe參數 -n -k

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

效果

網絡流量分析利器-可視化網絡-netflow【4】-接收器nfdump簡介

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章