2。2网络流量监控与分析工具Notp和Notpng 对于单个服务器网络故障的排查,iftop工具可以轻松实现,但是在监控一个庞大的服务器网络,并且要分析每个主机以及端口的网络状态时,iftop就显得爱莫能助了,这个时候就需要一个高效的网络管理系统了。Notp就是一款功能强大的流量监控、端口监控、服务监控管理系统。 2。2。1Notp与MRTG的异同 对于MRTG,读者可能并不陌生,它是一款监控网络链路流量的工具,通过SNMP协议得到设备的流量信息,并将信息通过图形展示给用户。MRTG配置简单,容易使用,它的优点是耗用的系统资源小,可以非常直观地显示流量负载,但是它也有很多缺点,例如:只能用于TCPIP网、数据不能重复使用、无法记录更详细的流量状态、没有管理功能等,而这些刚好是Notp最擅长的地方。 Notp是网络流量监控中的新贵,它是一种网络嗅探器,在监测网络数据传输、排除网络故障方面功能十分强大。它通过分析网络流量来判断网络上存在的各种问题,还可以监控是否有黑客正在攻击网络,如果网络突然变缓慢,通过ntop截获的数据包,可以确定是什么类型的数据包占据了大量带宽,数据包的发送时间、数据包传送的延时、数据包的来源地址等,通过这些信息,运维人员可以及时、迅速地做出响应,或者对网络进行调整,从而保证网络正常、稳定运行。 2。2。2Notp与Notpng的功能介绍 Notp提供了命令行界面和Web界面两种工作方式,通过Web界面,可以清晰展示网络的整体使用情况、网络中各主机的流量状态与排名、各主机占用的带宽以及各时段的流量明细、局域网内各主机的路由、端口使用情况等。 根据官方的介绍,Notp主要提供以下几个功能: 可以自动从网络中获取有用的信息。 可以将获取的数据包信息转换为可识别的格式。 可以记录网络的通信时间和过程。 可以对网络中失败的通信进行分析。 可以发现网络环境中通信的瓶颈。 可以自动识别客户端正在使用的操作系统。 通过对Notp功能的介绍,不难看出,它就是从分析网络流量角度来确定网络上存在的各种问题,说得更简单一点,就是一个抓包工具,然后通过归纳和绘图实现了更多的功能。在Notp版本更新到Notp5。x之后,官方宣布停止Notp版本的更新,继而推出替代版本Notpng。Notpng在Notp版本的基础上,去掉了一些拖沓冗长的功能,同时新增了网络流量实时监控功能,并将各个功能进行重新梳理和整合,使整个流量展示更加智能化和合理化。 Notpng使用Redis键值服务按时间序列存储统计信息,通过这种方式实现了流量状态实时展示。与Notp类似,Notpng也内置Web服务功能,同时,也支持命令行界面和Web界面两种工作方式,但是Notpng降低了对CPU和内存的使用率,资源消耗更少。Notpng除了可以实现Notp的所有功能外,新增的功能如下: 以图形的方式动态展示流量状态。 实时监控网络数据并实时汇总。 以矩阵图的方式显示IP流量。 可以生成基于HTML5AJAX的网络流量统计。 支持历史流量数据分析。 基于HTML5的动态图形用户界面。 下面分别介绍一下Notp和Notpng的安装及使用技巧。 2。2。3安装Notp与Notpng 1。安装Notp Notp可以支持win32、Linux、UNIX、BSD等平台。可以在Notp官方站点http:www。ntop。org下载对应的版本。Notp的安装可以通过yum方式和源码编译安装两种方式实现,为了能够使用最新的稳定版本,这里采用源码编译的方式来安装,安装过程如下: (1)安装Notp必需的软件包 这里安装的操作系统环境为Centos6。3x8664版本。为了能顺利完成源码编译,需要安装Notp必需的一些软件包,操作如下: 〔rootmonitor〕yumyinstalllibpcaplibpcapdevellibtoollibpnggdbmgdbmdevelgliblibxml2develpangopangodevelgdzlibzlibdevel 〔rootmonitor〕yumyinstallsvnrrdtoolrrdtooldevelpythonpythondevelGeoIPGeoIPdevel (2)编译安装Notp 这里下载的是ntop5。0。1版本,编译安装过程如下: 〔rootmonitor〕tarzxvfntop5。0。1。tar。gz 〔rootmonitor〕cdntop5。0。1 〔rootmonitor〕。autogen。shwithtcpwrap 〔rootmonitor〕make 〔rootmonitor〕makeinstall 其中,withtcpwrap选项用于支持TCPWrappers访问控制,以保证NotpWeb访问的安全。 (3)简单配置Notp 在Notp安装完成后,默认的数据存放目录为usrlocalvarnto。为了保证安全,建议以低权限用户nobody身份运行Notp进程,因此,可能需要对Notp默认的数据存放目录进行权限调整,执行如下命令即可: 〔rootmonitor〕chownRnobodyusrlocalvarntop 通过Notp的Web页面可以修改Notp的设置或关闭Notp服务,但是必须要通过管理员用户的验证,Notp默认的管理员为admin,密码为空,因此,需要为其设置一个密码。通过如下命令即可设置admin用户的密码: 〔rootmonitor〕ntopA 然后重复输入两次密码即可。 Notp的Web页面在默认情况下没有访问限制,有时候为了网络的安全,建议设置授权访问,只有授权的主机才能访问此Web页面,这可以通过Linux系统本身的TCPWrapper功能实现,授权过程如下: 〔rootmonitor〕vimetchosts。allowntop:192。168。12。188 〔rootmonitor〕vimetchosts。denyntop:ALL 这里设置只允许IP地址为192。168。12。188的主机可以访问Notp的ntop服务,其他所有IP的访问全部禁止。 2。安装Notpng Notpng是目前官方的主推版本,可以从http:www。ntop。org下载目前最新的ntopng1。1源码版本进行编译安装。不过为了安装方便,官方推出了Notpng的yum源仓库,通过yum源仓库可以轻松安装Notpng,这里就采用yum源方式进行安装。 (1)设置yum源 首先为ntopng创建一个yum源仓库,内容如下: 〔rootlocalhost〕catetcyum。repos。dntop。repo〔ntop〕 namentoppackagesbaseurlhttp:www。nmon。netcentosreleaseverbasearchenabled1 gpgcheck1 gpgkeyhttp:www。nmon。netcentosRPMGPGKEYderi 然后下载一个epel的yum源: 〔rootlocalhost〕wget http:download。fedoraproject。orgpubepel6x8664epelrelease68。noarch。rpm〔rootlocalhost〕rpmUvhepelrelease68。noarch。rpm (2)开始安装Notpng 在设置好两个yum源后,安装Notpng就变得十分简单了,只需执行如下操作即可: 〔rootlocalhost〕yumcleanall〔rootlocalhost〕yumupdate 〔rootlocalhost〕yuminstallpfringn2disknProbentopngntopngdatanbox (3)配置Notpng 在Notpng安装完成后,默认的配置文件模板是etcntopngntopng。conf。sample,可 以将此文件重命名为ntopng。conf,然后在这个配置文件中添加一些配置信息,例如:〔rootlocalhost〕catetcntopngntopng。conf Gvartmpntopng。gid localnetworks192。168。12。024 interfaceem2 usernobody httpport3000 相关参数含义如下: G指定存储ntopng进程号的文件路径。 localnetwork指定要监控的本地子网段。 interfaceem2指定监听em2网卡上的流量。 user指定运行ntopng服务所使用的账户。 httpport指定ntopng的Web服务端口号,如果不指定,默认端口为3000。 (4)启动ntopng服务 在启动Notpng服务之前,需要先启动redis服务。redis的功能之前介绍过,主要为ntopng 提供键值存储。下面首先启动redis服务,然后启动Notpng服务,执行操作如下: 〔rootlocalhost〕serviceredisstart 〔rootlocalhost〕servicentopngstart 为了保证redis和ntopng服务在以后可开机自启动,还需要执行如下操作: 〔rootlocalhost〕chkconfigntopngon 〔rootlocalhost〕chkconfigredison 最后,就可以通过Web方式:http:IP:3000来访问Notpng提供的服务了,默认登录用户名和密码均为admin,可在登录后进行修改。 2。2。4Notp和Notpng的使用技巧 在完成Notp安装后,执行如下命令即可启动Notp服务: 〔rootnetworkserver〕ntopiem1Ld 这里通过Notp命令监控网卡em1的流量状态,相关参数的含义将在后面章节详细介绍。在执行此命令后,Notp服务的日志输出将重定向到系统的varlogmessages文件中,同时将开启默认的3000端口作为Web界面服务端口,执行http:IP:3000即可访问Notp提供的Web监控界面。 1。Web界面下Notp的使用方法与技巧 Notp的Web界面主要有7个主栏目组成,下面主要介绍下每个栏目中需要重点关注的功能点。 About栏目是对Notp的简单介绍和一些在线手册等帮助信息。 Summary栏目是对目前网络流量的一个整体概况,其中子栏目Traffic可以显示全局流量统计,主要包含网络接口流量统计、协议流量分布、应用协议流量统计等,网络流量会以柱面图、曲线图和明细表格的形式展示出来。 图23显示的是L2L3协议对应的流量分布图。 图23Notp根据协议进行的流量分布统计Summary下的子栏目Host主要显示所有可监控主机的IP地址、地理位置、MAC地址、数据发送接收量、目前活动连接数等各种信息,在主机流量监控方面,可通过Bytes方式统计,也可以用packets方式统计,要了解每个主机的详细流量信息,只需点击对应的Host便可查看,图24就是某主机在某时刻的流量连接流视图。 图24通过Notp展示某主机在某时刻的连接流视图 通过图24可以非常清晰地了解某主机在某时刻的连接状态,中间的竖柱表示的是IP为125。76。237。248这台主机,然后以竖柱为中心,分成左右两个部分,左边部分表示外部IP与125。76。237。248这台主机之间的发送、接收数据流量,右边部分表示125。76。237。248这台主机与外部IP之间的发送、接收数据流量,连接的宽度表示发送或接收数据量的大小。 在Summary下的子栏目Host中,在查看每个主机的详细流量页面上有一个按时段的流量统计功能,这个功能非常有用,通过这个统计可以查看某主机在一天任意一个小时内发送、接收的数据流量,同时还通过饼状图进行集中汇总。 Summary下的子栏目NetworkLoad用于网络负载统计,通过该项功能可以查看最近10分钟、一小时、一天、一个月的网络流量信息。图25展示的是一个小时内的网络负载统计。 图25Notp展示的一个小时内的网络负载 AllProtocols栏目主要用于查看各主机发送、接收的数据量,并将数据以TCP、UDP、ICMP的方式进行分类统计。其中,子栏目Throughput主要显示所有可见主机的吞吐量,子栏目activity主要显示当前网络可见主机在24小时中每小时的流量状态,并且每个时段根据流量的大小分别用不同的颜色进行标注。 IP栏目主要对各个主机中应用层协议产生的流量进行统计。例如,子栏目Summary主要对各主机中HTTP、FTP、Mail、SSH、DNS等服务产生的流量进行详细统计,同时还可以统计多播信息、流量分布等;子栏目TrafficDirections主要用于统计端到端的流量信息,可以统计本地到本地、本地到远端、远端到本地、远端到远端的流量状态;子栏目Local主要是统计局域网络内各主机使用状况,比如可以统计本地路由使用信息,本地端口使用信息、ActiveSessions连接信息等。 Utils栏目主要有RRD参数的配置、转存Notp的统计信息,以及查看Notp运行日志信息几个功能。 Plugins栏目用于继承Notp插件工具,默认安装的插件有NetFlow、rrdPlugin、sFlow等,其中,NetFlow插件可用于设置、激活、停用NetFlow支持,在启用NetFlow后,Notp就可以统计Netflow的详细信息,包括netflow的格式、数据量及端口流量。而rrdPlugin插件主要用于生成流量图,它比MRTG更灵活,非常适合用shell、perl等程序来调用,以生成所需的图片。sFlow是一种新的网络监测技术,可适应超大网络流量下的流量数据分析,在Notp中启用sFlow支持后,不但可以降低实施成本,也可以解决网络管理中面临的很多问题。 最后一个栏目admin是一个管理选项,访问此栏目时需要提供管理员密码,有Notp的参数配置、登录Notp的密码设置、配置用户访问Notp的页面、Notp的启动与关闭等几个功能选项。这些ntop的配置与管理功能非常简单,这里不过多讲述。