CentOS7安装ntopng及简单使用

编程知识 更新时间:2023-04-28 13:28:04

安装ntopng

1.添加官方源

yum -y install wget
cd /etc/yum.repos.d/
wget http://packages.ntop/centos/ntop.repo -O ntop.repo

2.安装epel

cd
yum -y install epel*

3.更新软件安装源

yum clean all
yum update

4.确认未安装zeromq3,如果安装了就卸载。

rpm -qa | grep zeromq3
yum erase zeromq3

5.使用yum命令安装ntopng 相关

yum -y install pfring-dkms n2disk nprobe ntopng cento

redis 是ntopng的依赖包会被依赖安装。

6.查看安装的软件

rpm -qa | grep ntopng 
rpm -qa | grep redis

上面安装的大多数软件不需许可证,除了下面这些。

PF_RING ZC user-space libraries
nProbe (NetFlow/IPFIX probe)
n2disk (packet to disk application)

简单测试

启动redis数据库服务。

systemctl enable redis
systemctl start redis

编辑配置文件ntopng.conf,设置监听网络和接口

vim /etc/ntopng/ntopng.conf

监听网络接口(接口包括网卡、网桥等)

-i=ens33

如果未设置网络接口,默认监听服务器主机的所有接口。
设置监听网络接口大多是设置网卡,大概意思监听可与此网卡进行通信的网络。如ens34 192.168.199.0/24 ens34 192.168.100.0/24。 只监听ens33 网卡,由于ens33网卡无法访问192.168.100.0/24的网段。。。会导致ntopng的UI中没有192.168.100.0/24网络的监听。

设置本地网络。

-m=192.168.199.0/24

多个本地网络网段可以是

-m=192.168.199.0/24,192.168.100.0/24

不知道是不是设置错误。不能用下面的方法设置本地网络,后面-m会覆盖前面的的

-m=192.168.199.0/24
-m=192.168.100.0/24

ntopng会以某种方式(RRD或Influxdb)记录本地网络流量历史,不会记载其他网络流量。

启动ntopng

systemctl enable ntopng
systemctl start ntopng

查看ntopng状态时可能看到一些警告。

systemctl status ntopng -l


尽管不知道啥意思。。还是按照提示操作一遍,然后重启ntopng

sudo ethtool -K ens33 gro off gso off tso off
systemctl restart ntopng

访问 服务器的3000端口即可。这个也可以在配置文件修改-w设置。

http://192.168.199.80:3000

初始账号密码都是admin 初次登陆需重设密码。

在ntopng刚启动时,会给你展示一些ntopng Enterprise L版本才会展示的样板
比如流量仪表盘展示

比如主流流量图展示

然后等一段时间发现你没有许可证就会切换成社区版。这时就会少一些东西。。。
主机流量效果图(社区版的内容挺精简的。。。)

没有日期坐标轴刻度显示,左下角提示点击图片可放大。右边显示的是具体时间段流量。。。

使用influxdb记录数据

默认ntopng使用的是RRD记录流量等数据。可以修改为influxdb,记录更清晰,且最小时间间隔可由5分钟设置为1分钟,不过会记录更多数据,占据更大空间。个人感觉和RRD差别不大
使用RRD时默认数据存放位置/var/lib/ntopng

安装设置influxdb

安装1.8.3版本。

wget https://dl.influxdata/influxdb/releases/influxdb-1.8.3.x86_64.rpm
yum -y localinstall influxdb-1.8.3.x86_64.rpm

最好给influxdb分配一个较大的存储空间。因为记录数据较多且一直在增长。实验环境新增了一个20G硬盘挂载在 /data目录。在该目录下创建/influxdb作为influxdb数据的存放目录。
记得修改该目录所有者为influxdb或者。确保influxdb伪用户对该目录有完整的操作权限。

mkdir /data/influxdb
chown -R influxdb:influxdb /data/influxdb

修改配置文件。将数据存储目录修改为/data/influxdb

vim /etc/influxdb/influxdb.conf
[meta]
	dir = "/data/influxdb/meta"

[data]
	dir = "/data/influxdb/data"
	wal-dir="/data/influxdb/wal"


保存然后启动数据库

systemctl enable influxdb
systemctl start influxdb
influx
CREATE USER "admin" WITH PASSWORD 'password' WITH ALL PRIVILEGES

进入数据库创建用户密码

如果希望启用 http 且 认证。编辑配置文件。然后重新启动influxdb。
为什么要先创建用户再启用认证呢,因为先启用认证的话,influxdb是没有默认用户的。这就导致启用认证后无法登进数据库创建用户,也就无法操作数据库。。。

vim /etc/influxdb/influxdb.conf 
[http]
	enabled = true 
	bind-address = ":8086"
	auth-enabled = true
	log-enabled = true 
	write-tracing = false 
	pprof-enabled = false 
	https-enabled = false 
	https-certificate = "/etc/ssl/influxdb.pem"
systemctl restart influxdb

这时再登录数据库就需要 用户密码了

influx -username admin -password password

可以检测一下是否启用了http。比如查看当前数据库。

curl -G "http://localhost:8086/query?u=admin&p=password&q=SHOW+DATABASES"


暂时没有创建数据库,但是可以确定http是开启了。
至于influxdb 数据操作。不是这个的重点。网上找教程吧。。。

设置ntopng使用influxdb记录数据。

登录进ntopng的WebUI后。
点击左侧的Settings–>Preferencess进行设置

可配置的项挺多的。。。但这里重点是设置influxdb
点击Timeseries

然后设置成InfluxDB相关即可。
1.Timeseries Database
Timeseries Driver 选择InfluxDB 1.x

2.InfluxDB URL
选择influxdb数据库的URL http://192.168.199.80:8086

3.InfluxDB Database
存放ntopng相关数据的数据库。默认即可(也无需在influxdb数据库里创建该库。会被ntopng自动创建。)

4.InfluxDB Authentication
influxdb启用了认证,所以这里要设置启用认证 输入用户名密码。
Username–>admin
Password–>password

5.Timeseries Resolution
时序解析。本地主机的连续时间序列数据点之间的间隔。使用RRD时最小只能是5m,使用influxdb可以设置为1m。

至此设置ntopng使用InfluxDB基本完毕。添加一些额外设置。
Local Hosts Timeseries 模块下
Host Timeseries 设置为Full。意为记录本地主机的所有网络信息。默认Light模式 记录有限制。
注。如果使用influxdb记录之后又修改了Timeseries Resolution或Host Timeseries等。原数据库ntopng需删除。。。

保存设置

然后重新启动ntopng

systemctl restart ntopng

查看ntopng运行状态 即可看到influxdb 相关。

systemctl status ntopng -l


重新进入WEBUI
左上角 网络接口 选择System。

可在 Health 选择InfluxDB的状态。

可看到InfluxDB的使用情况。包括磁盘空间占用,内存使用,数据写入成功条数等

nPrope检测sflow 并使用ntopng显示

注意不同节点间的时间同步,可以使用chrony软件

ntopng官方文档 nProbe的使用
https://www.ntop/guides/ntopng/case_study/using_with_nprobe.html

Ntopng可用于可视化由nProbe生成或收集的流量数据。在一些场景中,在nProbe中使用ntopng非常方便,包括:

  • 通常由路由器、交换机和网络设备产生的NetFlow/sFlow数据的可视化。在此场景中,nProbe从设备收集并解析NetFlow/sFlow流量,并将结果流发送到ntopng以进行可视化。
  • 对连接到远程系统的物理网络接口的监视。在这种情况下,ntopng不能直接监视网络接口,也不能看到它们的数据包。可以使用一个或多个nProbe来捕获远程网络接口流量,并将结果流发送到中心ntopng进行分析和可视化。

下面的图片总结了上面突出显示的两种场景,并演示了它们也可以结合在一起。

虽然nProbe 需要许可证。但无许可证的情况下还是提供了一个demo版本,可以发送25000条flow。。。可以学习一下 nProbe配合ntopng使用。

ntopng和nProbe连接方式有2种。假设ntopng在主机X并且nProbe在主机Y.

  1. Poll Mode ntopng主动连接nProbe
host X> ntopng -i "tcp://Y:1234"
host Y> nprobe -n none --zmq "tcp://*:1234" -i eth0
  1. Push Mode ntopng等待nProbe的连接。 注意 c
host X> ntopng -i "tcp://*:1234c"
host Y> nprobe -n none --zmq "tcp://X:1234" --zmq-probe-mode -i eth0

ntopng设置-i监听nProbe的数据时,似乎主机流量图最小可查看间隔会变为30分钟。

单独安装nprobe

yum -y install wget
cd /etc/yum.repos.d/
wget http://packages.ntop/centos/ntop.repo -O ntop.repo

cd
yum -y install epel*

yum clean all
yum update
yum -y install nprobe

关于ntopng和nprobe配合使用的配置文件。安装完成应该有一个示例配置文件。可以根据该示例进行设置。
ntopng备份原配置文件

mv /etc/ntopng/ntopng.conf /etc/ntopng/ntopng.conf.bak
cp /etc/ntopng/ntopng.conf.nprobe.sample /etc/ntopng/ntopng.conf

nprobe备份原配置文件

mv /etc/nprobe/nprobe.conf /etc/nprobe/nprobe.conf.bak
cp /etc/nprobe/nprobe.conf.ntopng.sample /etc/nprobe/nprobe.conf

nProbe监控远程网络的物理网络。

额,虚拟机测试。没有什么远程网络。。。大概测试一下吧。

  1. Poll Mode,将nProbe安装在ntopng-client1,ntopng安装在ntopng-server
ntopng-server 192.168.199.80
ntopng-client1	192.168.199.81
ntopng-client2	192.168.199.82

该模式需要ntopng所在主机可以访问nprobe所在主机。
ntopng设置

vim /etc/ntopng/ntopng.conf
-i=tcp://192.168.199.81:5556
-m=192.168.199.0/24
-G=/var/run/ntopng.pid

如果有多个nProbe且ntopng都可以访问对应的主机。可以设置多个-i参数。如

-i=tcp://192.168.199.81:5556
-i=tcp://192.168.100.81:5556

参数大概含义

-i=tcp://192.168.199.81:5556
	设置监听的nProbe的ZMQ断点
-m=192.168.199.0/24
	Ntopng将属于该网络的主机标记为“本地”,这将使它们的历史数据能够保存到磁盘中。

nProbe设置

vim /etc/nprobe/nprobe.conf
-i=ens33
--zmq=tcp://*:5556
-n=none
-T=@NTOPNG@
-G=/var/run/nprobe.pid

参数大概含义

-i=ens33
	nProbe监听该网卡可以访问到的网络流量
--zmq=tcp://*:5556
	Specifies the ZMQ endpoint for delivering flows to ZMQ subscribers.
	指定用于将流传递到ZMQ订阅服务器的ZMQ端点。
-n=none
	指定nProbe将使用NetFlow收集器以NetFlow格式发送受监视的流。
	当设置-n=none时,会禁止流通过ZMQ导出。(不太明白啥意思,一般设置都是none)
-T=@NTOPNG@
	告诉nProbe它必须导出的最小字段集,以确保与ntopng的互操作性。当使用nProbe和ntopng时,建议指定此选项。
	可以将其他字段与宏组合在一起。@NTOPNG@若要指定将添加到最小集的额外字段,请执行以下操作。
	例如,可以将源Mac和目标Mac添加为:-T="@NTOPNG@ %IN_SRC_MAC %OUT_DST_MAC"

启动ntopng和nProbe

systemctl start ntopng

systemctl start nprobe


大致效果
只设置监听了一个nProbe流。


如果ntopng主机可以访问多个nprobe所在主机,可以设置多个-i(虚拟机环境受限,就在两个网络CIDR相同的nprobe上测试)
ntopng-client1,ntopng-client2都安装nprobe。设置同上。

vim /etc/nprobe/nprobe.conf
-i=ens33
--zmq=tcp://*:5556
-n=none
-T=@NTOPNG@
-G=/var/run/nprobe.pid
systemctl start nprobe

ntopng设置

vim /etc/ntopng/ntopng.conf
-i=tcp://192.168.199.81:5556
-i=tcp://192.168.199.82:5556
-m=192.168.199.0/24
-G=/var/run/ntopng.pid

systemctl start ntopng

ntopngUI 可选择监听查看两个流的数据。虽然两个流数据是基本一样的。。。

-i 这个-i设置需要是ntopng可以访问到的
如192.168.100.0/24网段,ntopng主机无法访问。设置后也无法获得数据。

-i=tcp://192.168.199.81:5556
-i=tcp://192.168.199.82:5556
-i=tcp://192.168.100.83:5556
-m=192.168.199.0/24,192.168.100.0/24
-G=/var/run/ntopng.pid

ntopng-client3 也安装设置nprobe。
重启ntopng

systemctl restart ntopng
systemctl status ntopng -l


可以选择查看tcp://192.168.100.83:5556的流,但是无数据。因为ntopng所在主机192.168.199.80 无法访问192.168.100.83(虚拟机测试,VMware Workstation,192.168.199.0/24是本地IP,192.168.100.0/24是VMware的NAT网络)。所以无法获取192.168.100.83上面nprobe收集的数据。

  1. Push Mode,将nProbe安装在ntopng-client3,ntopng安装在ntopng-server
ntopng-server 192.168.199.80
ntopng-client3	192.168.100.83
ntopng-client4	192.168.100.84

该模式需要nProbe所在主机能访问ntopng的主机。
ntopng设置

vim /etc/ntopng/ntopng.conf
-i=tcp://*:5556c
-m=192.168.100.0/24
-G=/var/run/ntopng.pid

参数大概含义

-i=tcp://*:5556c
	告诉ntopng充当收集器(注意c)并侦听传入的连接。
-m=192.168.100.0/24
	nProbe可以收集到192.168.199.0/24网络的信息。但是只将192.168.100.0/24网络的信息作为local保存。
	如果希望记录 两个网段的信息。 可以是-m=192.168.100.0/24,192.168.199.0/24

nProbe设置

vim /etc/nprobe/nprobe.conf
-i=ens33
--zmq=tcp://192.168.199.80:5556
--zmq-probe-mode
-n=none
-T=@NTOPNG@
-G=/var/run/nprobe.pid

参数大概含义

-i
	nProbe监听该网卡可以访问到的网络流量
--zmq=tcp://192.168.199.80:5556
	nProbe会启动与充当服务器的ntopng的连接
--zmq-probe-mode
	要从多个nProbe收集流,ntopng必须以额外的开始 C(为收集器)在ZMQ端点的末尾,而每个nProbe都需要选择–zmq-probe-mode

启动ntopng

systemctl start ntopng
systemctl status ntopng -l

启动nprobe

systemctl start nprobe
systemctl status nprobe -l

ntopng-UI来自nprobe传入的数据

ntopng监听多个地点。

Poll Mode模式下,如果ntopng所在主机可以访问多个地点网络的话,可以设置多个-i来监听多个地点的网络。但一般情况下,ntopng是无法访问到多个不同网络下nprobe的主机的。只能使用Push Mode,nprobe可以访问ntopng主机,主动向ntopng发送消息。

如。ntopng希望监听192.168.199.0/24主机和 192.168.199.100.0/24主机。

ntopng-server 192.168.199.80
ntopng-client1	192.168.199.81
ntopng-client2	192.168.199.82
ntopng-client3	192.168.100.83
ntopng-client4	192.168.100.84

ntopng-client1和ntopng-client3分别安装nprobe监听各自网段网络,将信息发送给ntopng-server。

ntopng设置

vim /etc/ntopng/ntopng.conf
-i=tcp://*:5556c
-m=192.168.100.0/24,192.168.199.0/24
-G=/var/run/ntopng.pid

只设置了一个监听端口,收集本机5556端口的数据

-i=tcp://*:5556c

那么所有nProbe只能发送数据到ntopng的5556端口

--zmq=tcp://{ntopngIP}:5556

nProbe的设置,两个nProbe设置是相同的。

vim /etc/nprobe/nprobe.conf
-i=ens33
--zmq=tcp://192.168.199.80:5556
--zmq-probe-mode
-n=none
-T=@NTOPNG@
-G=/var/run/nprobe.pid

启动

systemctl start ntopng
systemctl start nprobe

如果希望不同的nprobe有不同的端口,ntopng可以设置多个监听端口

-i=tcp://*:5556c
-i=tcp://*:5557c

这样不同的nProbe可以设置发送数据到不同的端口。ntopngUI也可以选择不同的端口查看数据。
ntopng-client1 选择发送数据到ntopng的5556端口 设置不变
ntopng-client3 选择发送数据到ntopng的5557端口

vim /etc/nprobe/nprobe.conf
--zmq=tcp://192.168.199.80:5557
systemctl restart ntopng
 systemctl restart nprobe

ntopng状态

nprobe状态

ntopngUI查看
可选择两个端口


如果使用命令行启动nprobe。可以看到 提示信息。该nprobe只是一个demo。

nprobe --zmq-probe-mode --zmq "tcp://192.168.199.80:5557" -i ens33 -n none

监控sFlow流量 OVS 测试。

将nProbe设置为中间流收集器,然后将流发送到ntopng。将路由器/交换机配置为将流导出到nProbe。也是可以分为Poll和Push模式的。简单的测试一下Poll模式就好。基本和nprobe监听网卡设置一致。

测试使用OVS虚拟交换机发送sflow信息,使用nProbe监听。

ntopng-server 192.168.199.80
ntopng-client1	192.168.199.81
ntopng-client2	192.168.199.82
  • ntopng-client1,ntopng-client2各自安装OVS软件,然后都发送sflow信息到ntopng-server的6343端口。
  • ntopng-server 安装nProbe收集 6343端口的信息,转化成zmq发送到ntopng监听端口 5556。
  • ntopng-server 安装ntopng收集 5556端口信息。UI展示。

nProbe主要作用就是收集sflow端口的信息转化然后发送给ntopng,不一定需要在一个主机上(同样可以使用Poll Push模式)。这里只是一个最简单的测试。

ntopng-client1,ntopng-client2安装OVS软件,发送sflow到ntopng-server
OVS 安装使用,可以百度。。。
https://blog.csdn/dandanfengyun/article/details/107976035
https://blog.csdn/dandanfengyun/article/details/108345872

安装完成,发送 sflow 信息。设置之前,使用ngrep工具查看一下6343端口是否有数据

ngrep port 6343


还没开始 发送信息,无数据。两个client的OVS发送sflow设置相同。

COLLECTOR_IP=192.168.199.80
COLLECTOR_PORT=6343
AGENT_IP=ens33
HEADER_BYTES=128
SAMPLING_N=64
POLLING_SECS=10

ovs-vsctl -- --id=@sflow create sflow agent=${AGENT_IP} target=\"${COLLECTOR_IP}:${COLLECTOR_PORT}\"  header=${HEADER_BYTES} sampling=${SAMPLING_N} polling=${POLLING_SECS} -- set bridge cloudbr0 sflow=@sflow
(1) agent:虚拟机的网卡。使用该网卡将sflow信息发送到COLLECTOR_IP的COLLECTOR_PORT。如果设置了错误的网卡名,还是会选择一个网卡将信息发送出去。
(2)COLLECTOR_IP sflow数据到达的IP。
(3) target:sFlow Collector的IP,一般来说手机sflow默认端口6343;
(4) bridge:需要开启sflow的ovs网桥

再次查看6343端口。可以发现收到了数据ngrep port 6343

具体的内容是啥。这个ngrep无法显示。。。还是用更专业的软件吧。
现在只用ntopng主机的nProbe收集该端口数据转化然后发送给ntopng的监听端口即可。。。(为什么不是直接ntopng监听sflow的数据端口呢,可能是因为格式问题。。。)

设置nProbe。

mv /etc/nprobe/nprobe.conf /etc/nprobe/nprobe.conf.bak
cp /etc/nprobe/nprobe.conf.ntopng.sample /etc/nprobe/nprobe.conf
vim /etc/nprobe/nprobe.conf
--collector-port=6343
--zmq=tcp://*:5556
-n=none
-T=@NTOPNG@
-G=/var/run/nprobe.pid

收集来自端口6343的sflow数据,将其转换成zmq然后写入本机5556端口
启动

systemctl start nprobe


ntopng设置

mv /etc/ntopng/ntopng.conf /etc/ntopng/ntopng.conf.bak
cp /etc/ntopng/ntopng.conf.nprobe.sample /etc/ntopng/ntopng.conf
vim /etc/ntopng/ntopng.conf
-i=tcp://127.0.0.1:5556
-m=192.168.199.0/24
-G=/var/run/ntopng.pid
systemctl start ntopng

查看ntopng UI

有点疑惑 为什么 ngrep port 5556没有数据。。。不过总体设置ntopng监听sflow是成功的。数据似乎和普通监听也没太大差别。。。

ntopng可以同时监听Netflow/sflow和远程网络网卡信息。设置多个nProbe向ntopng发送不同的信息即可。

更多推荐

CentOS7安装ntopng及简单使用

本文发布于:2023-04-21 08:11:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/7d0b0f3deff17ec45d3a1b9657482c05.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:简单   ntopng

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 92803文章数
  • 23616阅读数
  • 0评论数