安装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.
- Poll Mode ntopng主动连接nProbe
host X> ntopng -i "tcp://Y:1234"
host Y> nprobe -n none --zmq "tcp://*:1234" -i eth0
- 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监控远程网络的物理网络。
额,虚拟机测试。没有什么远程网络。。。大概测试一下吧。
- 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收集的数据。
- 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及简单使用
发布评论