分享

使用nfsen+sflow分析网络流量

 阳光晨濡 2017-03-27
        netflow和sflow可以帮助我们分析网络中的流量构成,抓取实施带宽使用情况,帮我们找出"hog"。作为collector的软件一般都是收费的,例如solarwinds NTA,sflowTrend-Pro,ntopng商业版等。不过也有开源的解决方案,例如ntopng社区版和nfsen。
    下边来说说nfsen,首先流水账一下安装过程。

一、安装nfsen

1.1 安装nginx+php-fpm,细节不说,需要的可以看我之前的blog文章,网上其他人的好文章也大把。

1.2 安装nfdump,nfsen其实是nfdump的前端展示,真正收集数据的是nfdump。
]# yum install nfdump

1.3 安装nfsen
]# tar -zxvf nfsen-1.3.7.tar.gz
]# cd nfsen-1.3.7
]# cp etc/nfsen-dist.conf etc/nfsen.conf
]# vi /etc/nfsen.conf
===> $BASEDIR= "/data/nfsen";
===> $HTMLDIR = "/var/www/nfsen";
===> $WWWUSER  = "nginx";
===> $WWWGROUP = "nginx";
===> $PREFIX  = '/usr/bin';
===> %sources = (
===> 'H3C' => { 'port' => '8603', 'col' => '#0000ff', 'type' => 'sflow' },
===> );
]# mkdir -p /data/nfsen
]# useradd netflow -g nginx
]# yum install perl perl-Sys-Syslog rrdtool-perl perl-Data-Dumper perl-MailTools perl-Socket6
]# vi libexec/NfProfile.pm
===> no strict 'refs';
]# ./install.pl etc/nfsen.conf
]# cd /data/nfsen/bin
]# ./nfsen start

1.4 访问http://your_ip_address/nfsen/nfsen.php

二、nfsen界面介绍  [ 这部分转自台湾网友的文章,原文见参考文档9 ]

进入nfsen,在首页Home里,会显示flow/packet/流量三种类型的流量缩图,并分别以日/周/月/年四个层级来显示。
使用nfsen+sflow分析网络流量

在Graphs里其实跟Home显示的功能是相同的,主要的差别在于三种类型的流量图挂在各自的页面里。
也因为如此,流量图能以正常尺寸显示,而不是Home里的缩小显示。
使用nfsen+sflow分析网络流量

Details是主要的操作页面。
在Details的页面上方,将流量区分为TCP/UDP/ICMP与other四种protocol类型。
点了任何一种protocl,都会显示对应的流量于其下主要的大图里。
而flow/packet/流量三种类型的流量则可透过右侧的小流量图来进行切换。
下方Display旁的浏览列功能按钮,提供用户以鼠标拖拉时间轴外的另一种操作选择。
最下方的统计数据则显示了时间范围内三种类型流量的总和或速率。
使用nfsen+sflow分析网络流量

Alerts页面可以设定告警机制。
使用nfsen+sflow分析网络流量
但Nfsen提供的smtp组态设定相当有限,在配置文件nfsen.conf中只提供了以下两个参数,并没有其它细项设定。
$MAIL_FROM = 'your@from.example.net';
$SMTP_SERVER = 'localhost';

所以环境中的mail server需对Nfsen的IP进行open relay放行,才能让Nfsen成功发信;
不然就要在Nfsen上再起个MTA服务来实现发信机制。

Stats页面可对数据保留时与间大小等进行设定。流量图中的颜色调整也是在这个页面中进行喔~
使用nfsen+sflow分析网络流量

plugins页面显示了Nfsen的插件,若有装PortTracker的话,将于此页面中显示。
使用nfsen+sflow分析网络流量
在PortTracker中,可以看到它是针对TCP/UDP两种类型的flow/packet/流量三种方式绘制流量图,
可以在这一大五小的图中自行切换要查看的Protocol与流量。
并且于下方统计数据中显示各种Protocol的Port使用排名。

不过比较可惜的是它没有提供像Details页面的时间轴工具,
无法自定时间范围来查询该范围内的Port使用排名。
只能以现在的时间往前推12小时、一天、两天、四天、一周与两周等既定的时间范围来做查询,
这是比较可惜的地方...

三、nfsen抓"hog"实战示例 [ 这部分转自台湾网友的文章,原文见参考文档9 ]
登入nfsen网页,由Home或Graphs的Traffic查看有无问题流量。
使用nfsen+sflow分析网络流量

找到要查询的流量后,选择“Time Windows”来设定要查询的流量区间。
选择“Time Windows”后,X轴的光标尺会分裂为左右两边。

使用nfsen+sflow分析网络流量

先拉右半边游标尺到观察区间的右边。

使用nfsen+sflow分析网络流量
再拉左半边光标尺到观察区间的左边,完成区间设定。

使用nfsen+sflow分析网络流量

调整显示方式为“sum”,可在Traffic部分发现问题流量来自tcp协议,
足足有1.2G远远大于其它protocol

使用nfsen+sflow分析网络流量

 

然后在Netflow Processing区块中,将Options改以“Stat TopN”的方式,做前几名大户排序。

使用nfsen+sflow分析网络流量

发现第一名主机IP192.168.10.208

使用nfsen+sflow分析网络流量

找到大户后,接下来要确认的是该用户是以发送端还是接收端在占用流量?
tcp protocolsrc ip 192.168.10.208的条件查询其流量

使用nfsen+sflow分析网络流量

改以tcp protocol及dst ip 192.168.10.208的方式确认其流量。

 

proto tcp and dst ip 192.168.10.208

经过比对,做为发送端的流量只有9.2M,做为接收端的流量则有1.2G
很明显的192.168.10.208是做为接收端在下载流量。

使用nfsen+sflow分析网络流量

改以List Flow来查看来源与目的间的关系。

使用nfsen+sflow分析网络流量

发现192.168.10.208主要以80及443 port两种方式在下载数据,确认究竟是哪一port所造成的流量。

 

proto tcp and dst ip 192.168.10.208 and src port 80

使用nfsen+sflow分析网络流量

proto tcp and dst ip 192.168.10.208 and src port 443
使用nfsen+sflow分析网络流量

由流量来看,192.168.10.208是透过80 port在下载数据。但有很多80 port在下载,究竟是哪个来源IP呢?
把Flows打开到最大10000,查询所有联机。

使用nfsen+sflow分析网络流量

发现是140.138.144.170这个来源IP。

使用nfsen+sflow分析网络流量

原来是作者本人透过网页在Ubuntu网站下载iso档所造成,一切都是误会~但也成功透过Nfsen查询到占用带宽的凶手!Nfsen的基本操作示范到此,更深入的应用留给有兴趣的您继续研究啰~

四、PortTracker插件的安装流水账

]# cd nfsen-1.3.7
]# vi contrib/PortTracker/PortTracker.pm
===> my $PORTSDBDIR = "/data/ports-db";
]# cp PortTracker.pm /data/nfsen/plugins/
]# cp PortTracker.php /usr/share/nginx/html/nfsen/plugins/
]# vi etc/nfsen.conf 
===>    @plugins = (
===>        [ 'live',   'PortTracker'],
===>     ); 

每次对nfsen.conf做过改动以后,都需要重新执行一次install.pl
]# ./install.pl etc/nfsen.conf 

创建nftrack data目录,并初始化portracker database
]# mkdir -p /data/ports-db
]# nftrack -I -d ports-db/

修改nftrack data目录属主和权限,必须确认netflow用户和nginx用户能访问到。
]# chown -R netflow:nginx ports-db/
]# chmod -R 775 ports-db/

重新载入一下nfsen
]# cd /data/nfsen/bin
]# ./nfsen reload

在日志中确认PortTracker成功初始化
]# grep -i 'porttracker.*success' /var/log/syslog
Nov 27 02:46:13 noc nfsen[17312]: Loading plugin 'PortTracker': Success
Nov 27 02:46:13 noc nfsen[17312]: Initializing plugin 'PortTracker': Success

等待几分钟后,在nfsen的WEB GUI上访问plugins标签查看结果。
==================
参考文档:
1.http:///building-centos-7-netflows-monitoring-station-with-nfsen-and-nfdump/
2.http:///installation-and-configuration-of-nfdump-and-nfsen-on-ubuntu/
3.https://support./hc/en-us/articles/201787866-Configuring-and-Using-sFlow-Visualization-Tools
4.http://blog.sina.com.cn/s/blog_71261a2d0100zew1.html
5.https://code.google.com/p/renisac/wiki/NFSen_Introduction
6.https://www./2014/01/install-nfsen-and-nfdump-on-centos-6-5-for-netflow-and-or-sflow-collection/
7.http://meetings./ripe-50/presentations/ripe50-plenary-tue-nfsen-nfdump.pdf
8.http://blog./gmane.network.nfsen.general/month=20100901
9.http://www./forum/thread.php?threadid=1953&boardid=3&sid=aadc298e695d7f799db0b872563884b3&sid=aadc298e695d7f799db0b872563884b3
10.http:///symbolic-reference-in-perl

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多