乐于分享
好东西不私藏

一款开源协议流量监控软件ntopng的安装配置

一款开源协议流量监控软件ntopng的安装配置
    ntopng是一款开源网络流量可视化与深度监测平台,基于深度流量识别技术构建,适配主流Linux服务器操作系统。系统可对接交换机镜像端口、NetFlow/sFlow数据流,实时采集、解析全网网络通信行为,识别终端设备、通信协议、业务应用及流量分布情况。平台采用B/S架构,无需单独部署客户端,管理人员通过浏览器即可访问管理界面,直观查看实时流量、历史统计、会话连接、异常访问等信息。该工具支持长期流量数据留存、通信行为审计,能够辅助运维人员快速定位网络卡顿、异常外联、带宽占用等故障。结合现有网络准入体系,可实现流量监测与接入管控联动,提升内网可视管控能力,适用于内部办公终端、设备等混合业务网络场景,为网络运维、安全排查、业务优化提供数据支撑。

一、下载

    Ntopng提供两种安装方式,支持多种服务端操作系统,如果可以联网,直接访问https://packages.ntop.org/进行安装
如果不能联网,需要下载安装
Redhat 9系列Rpm包下载地址
https://packages.ntop.org/centos-stable/9/
下载noarch\packages下的所有安装包
回退进入x86_64\packages,下载所有安装包
下载后文件

二、安装包选择

场景区分:普通交换机 SPAN 镜像流量采集(常规监控)不需要ZC加速驱动、nprobe/n2disk等组件,下面是各个文件包的功能简介。

e1000e-zc-3.8.7.10707-dkms.noarch.rpm
Intel e1000e(I217/I218/I219)网卡 PF_RING ZC 零拷贝驱动,万兆高性能抓包加速,普通 SPAN 监控不需要
i40e-zc-2.24.6.10707-dkms.noarch.rpm
Intel i40e 40G 网卡 ZC 零拷贝驱动,普通 SPAN 监控不需要
iavf-zc-4.9.5.10707-dkms.noarch.rpm
Intel 虚拟网卡 VF ZC 驱动,虚拟化环境硬件加速,普通 SPAN 监控不需要
igb-zc-5.16.11.10707-dkms.noarch.rpm
Intel igb(82575/82576)千兆网卡 ZC 驱动,普通 SPAN 监控不需要
ixgbevf-zc-4.18.9.10707-dkms.noarch.rpm
Intel X710 虚拟 VF 网卡 ZC 驱动,普通 SPAN 监控不需要
ice-zc-2.3.10.10707-dkms.noarch.rpm
Intel E810 系列 25G 网卡 ZC 驱动,普通 SPAN 监控不需要
ixgbe-zc-5.19.6.10707-dkms.noarch.rpm
Intel 82599/X520 万兆网卡 ZC 零拷贝驱动,普通 SPAN 监控不需要
n2disk-3.8.260714-5581.x86_64.rpm
PF_RING 工具:持续把网络流量保存为 pcap 抓包文件,长期流量录像,可选组件
ndpi-5.0.0-5943.x86_64.rpm
✅【核心必需】nDPI 深度应用识别库,ntopng 识别微信、视频、数据库、医疗业务流量依赖库
cento-2.4.260714-1173.x86_64.rpm
PF_RING 流量聚合转发工具,用于分布式探针汇总流量,单机部署不需要
ndpi-dev-5.0.0-5943.x86_64.rpm
nDPI 开发头文件,仅二次编译开发使用,生产环境直接删除
nprobe-11.0.260714-8716.x86_64.rpm
NetFlow/IPFIX 探针,可以把流量封装成 netflow 转发给第三方平台;如果你只使用本机 ntopng 看流量,不需要
ntap-1.2.260714-132.x86_64.rpm
PF_RING 流量复制工具,流量镜像分流工具,单机部署不需要
nscrub-1.8.260714-1065.x86_64.rpm
流量清洗工具,防御异常数据包,普通监控不需要
ntop-license-1.0-734.x86_64.rpm
✅【核心必需】ntopng 授权基础包
pfring-9.2.0-10707.x86_64.rpm
PF_RING 高性能抓包内核库;SPAN 镜像抓包可不用;如果后续要做高速流量采集可以保留
ntopng-6.6.260714-28629.x86_64.rpm
✅【核心必需】ntopng 主程序,Web 流量可视化平台主体
pfring-dkms-9.2.0.10707-dkms.noarch.rpm
PF_RING 内核模块源码包,启用 pfring 加速才需要
pfring-drivers-zc-dkms-9.2.0.10707.noarch.rpm
ZC 驱动统一依赖元包,配合上面所有网卡 ZC 驱动使用,普通 SPAN 监控不需要
ntopng-data-6.6.260714-28629.noarch.rpm
✅【核心必需】ntopng 页面静态资源、应用特征库、地图文件(体积最大,不可删除)
精简打包建议,必须保留(4 个)
ndpi、ntop-license、ntopng、ntopng-data
可以选择性保留
pfring-9.2.0(想尝试高性能抓包可以留,不强制)
建议删除所有-zc-dkms网卡驱动、ndpi-dev、n2disk、cento、nprobe、ntap、nscrub、pfring-dkms、pfring-drivers-zc-dkms

三、安装

    安装比较简单,因为我有内网的yum源,直接使用yum安装,首先安装必须使用的包。
yum install -y redis libpcap openssl libxml2 sqlite json-c
然后使用
yum localinstall -y /你的rpm目录/*.rpm
    安装中如果出现下面的报错,那就是一些驱动编译不过,只需要按照最小安装方式进行安装行了,能满足大部分场景,后续可以根据需要选择单独安装rpm包
安装完了执行命令,并放开防火墙80、6343端口
systemctl enable --now redissystemctl enable --now ntopng.servicesystemctl enable --now ntop-service.service

四、交换机配置

    如果只是做简单的流量分析,不是做特别深度的抓包分析,只需要在核心交换机上进行配置,以H3C为例

1. 配置sFlow设备源IP,使用IRF堆叠的管理VLAN接口IP(主备切换不变化,ntopng可稳定识别设备)

sflow agent ip

2. 配置sFlow采集器,指向你的ntopng服务器

sflow collector 1 ipport 6343 description ntopng-server

3. (可选)指定sFlow上报报文的源IP,和agent IP保持一致即可

sflow source ip
如果是聚合口对应成员端口配置,不能对聚合口配置
比如BAGG617的成员口为Ten-GigabitEthernet1/0/1和Ten-GigabitEthernet2/0/1(跨IRF双机箱),批量配置:

批量进入该聚合的所有物理成员口

interface range Ten-GigabitEthernet 1/0/1 Ten-GigabitEthernet 2/0/1

核心层采样率推荐1:2048,峰值流量高可调至1:4096

sflow sampling-rate 2048#绑定到全局配置的1号采集器sflow flow collector 1

计数器统计上报间隔30秒

sflow counter interval 30

计数器统计绑定到1号采集器

sflow counter collector 1
验证接口 sFlow 生效状态
display sflow collector

五、ntopng使用

    使用浏览器打开ntopng的ip地址,端口3000,默认用户名和密码:admin
    进入系统后,点击右上角用户图标,可以更改管理员密码、切换界面风格、切换中文界面等功能
    进入系统后,点击左上角图标,可以查看系统概况,点击sflow:6343,就可以看到交换机转发过来的流量。
    进入系统后,点击仪表盘,就可以看到概况,因为是开源的免费版本,没有办法点击圆环的区块,进行下一层的查看,但是可以通过左侧告警、流、主机等报表,进一步查看详细内容。
    进入系统后,如果可以联网,点击设置、类别列表,可以自动进行恶意软件等类别库的自动更新
    ntopng的开源免费版本,足以识别oracle、mysql、http等常见的协议,也能识别出大部分常见的恶意软件、挖矿、广告等,足以应对日常大部分场景。而且采用的sflow协议转发,实际上转发过程中只转发了包头信息(H3C交换机默认转发报文头部前128字节),丢弃了数据载荷,交换机设置了sflow sampling-rate 2048 ,也就是每2048个包随机抽取1个包进行转发,可以根据情况设置为1024、4096,甚至更大、或更小的抽样率,实际转发流量较小,对虚拟机网卡和系统要求不高,8核心、16GB内存、500GB硬盘的虚拟机足够应付。
    如果觉得协议识别精度不高,可以适当采用1024、512等更小的抽样率,设置转发报文信息头部的长度、或者升级开源的nDPI库文件,进行编译和替换。
------------报文头信息转发长度修改interface GigabitEthernet 1/0/Xsflow flow max-header 128数字可以改为256-------------升级高精度nDPIhttps://github.com/ntop/nDPI 可以每月下载一次cd nDPI./autogen.sh./configuremake && make install编译完成后,完整高精准libndpi.so会安装到 /usr/lib64/备份原有精简库mv /usr/lib64/libndpi.so* /usr/lib64/libndpi.so.bak复制编译好的完整库到系统库目录cp /usr/local/lib64/libndpi.so* /usr/lib64/更新动态链接缓存ldconfigsystemctl restart ntopng校验协议库,能打印原来没有的协议即成功ntopng --print-ndpi-protocols | grep -i mssql确认流量识别正常、无报错后,删除RPM自带的旧精简库:rm -f /usr/lib64/libndpi.so.5.0.0ldconfig