搭建一个简单的基于web的网络流量监控可视化系统
本文转载于我的个人博客,转载请标明出处。
初衷
在腾讯云的学生认证申请提交上去n天之后,终于得到了审批,所以迫不及待的想玩玩腾讯云,作为一个搞网络的,自然有一些关于网络应用的小玩意,所以把以前部署过的一个网络流量监控系统在腾讯云上面跑跑,体验一下腾讯云,检查一下腾讯云的安全。
一. 工具简介
相信用过linux的人都知道linux中一个常用的用来实时显示系统中各个进程的资源占用情况的性能分析命令top。在网络中有一个类似功能的软件——ntopng(以前称作ntop,加上ng(next generation)指下一代),他是一个网络流量探针,来显示网络的使用情况,他基于libpcap,同时提供了非常炫酷的web展示界面给用户,方便用户分析网络。
ntopng可以做哪些事情呢:
- 根据不同的标准划分网络流量
- 展示网络流量和IPv4/IPv6主机
- 对网络吞吐率和应用协议等生成报告
- 显示本机使用最多的协议,最多的交互主机,自主系统
- 将流量统计结果存储
- 对每个流都有细粒度的分析
- 利用nDPI发现应用协议
- 展示IP地址的为知信息
- 展示IP流量子矩阵(通信双方)
等等还有很多。
ntopng的系统构架如下图,比较简单,不再说了。

二. 先来看几张效果图
为了不暴露隐私,展示几张网上的图片.



三. 步骤
远程登录腾讯云,执行下面的步骤
- 安装需要预装的库:
- glib2
- GNU autotools/libtool
- libgeoip
- libpcap or PF_RING (optional but recommended)
- redis (redis server) 2.2 or newer
- GeoIP (optional) 1.4.8 or newer
- wget (for 'make geoip')
- libxml2-dev
- libglib2.0-dev
- libsqlite3-dev
- libcurl-devapt-get install subversion libglib2.0 libxml2-dev libpcap-dev libtool rrdtool librrd-dev autoconf automake autogen redis-server wget libsqlite3-dev libhiredis-dev libgeoip-dev libcurl4-openssl-dev libpango1.0-dev libcairo2-dev libpng12-dev git
- 安装nDPI:
git clone https://github.com/ntop/nDPI.git
cd nDPI/
./autogen.sh
make - 安装ntopng
cd ..
git clone https://github.com/ntop/ntopng.git
cd ntopng
./autogen.sh
./configure
make
make install - 在运行ntopng之前,确保先启动了redis(ntopng的键值存储区)
sudo /etc/init.d/redis-server restart
- 开启ntopng:
sudo ./ntopng
这是默认开启方式,ntopng在TCP/3000端口侦听,使用下面的命令,可以证实:
sudo netstat -nap|grep ntopng

- 在本地web浏览器上输入腾讯云的公网IP:3000,然后会显示登录界面,默认的用户名和密码都是admin

四. 遇到的问题
遇到的问题主要是一些库的安装问题
问题:MySQL libraries not found, please install them as specified in README.compilation
解决:apt-get install libmysqlclient-dev
五. 总结
我买的是腾讯云最low的配置了,整体来说,git clone的时候速度非常不好,并且十分不稳定,高则上M,低则失败。但是apt-get是非常快的,整体来说还是非常不错的,毕竟在云计算的安全策略下可以做自己想做的事情了。。。
搭建一个简单的基于web的网络流量监控可视化系统的更多相关文章
- 从零开始搭建一个简单的基于webpack的vue开发环境
原文地址:https://segmentfault.com/a/1190000012789253?utm_source=tag-newest 从零开始搭建一个简单的基于webpack的react开发环 ...
- Golang学习-第二篇 搭建一个简单的Go Web服务器
序言 由于本人一直从事Web服务器端的程序开发,所以在学习Golang也想从Web这里开始学起,如果对Golang还不太清楚怎么搭建环境的朋友们可以参考我的上一篇文章 Golang的简单介绍及Wind ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统
本来想在Dpar 1.0GA时发布这篇文章,由于其他事情耽搁了放到现在.时下微服务和云原生技术如何如荼,微软也不甘示弱的和阿里一起适时推出了Dapr(https://dapr.io/),园子里关于da ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(十三)——istio+dapr构建多运行时服务网格之生产环境部署
之前所有的演示都是在docker for windows上进行部署的,没有真正模拟生产环境,今天我们模拟真实环境在公有云上用linux操作如何实现istio+dapr+电商demo的部署. 目录:一. ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(四)——一步一步教你如何撸Dapr之订阅发布
之前的章节我们介绍了如何通过dapr发起一个服务调用,相信看过前几章的小伙伴已经对dapr有一个基本的了解了,今天我们来聊一聊dapr的另外一个功能--订阅发布 目录:一.通过Dapr实现一个简单的基 ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(二)——通讯框架讲解
首先感谢张队@geffzhang公众号转发了上一篇文章,希望广大.neter多多推广dapr,让云原生更快更好的在.net这片土地上落地生根. 目录:一.通过Dapr实现一个简单的基于.net的微服务 ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(三)——一步一步教你如何撸Dapr
目录:一.通过Dapr实现一个简单的基于.net的微服务电商系统 二.通过Dapr实现一个简单的基于.net的微服务电商系统(二)--通讯框架讲解 三.通过Dapr实现一个简单的基于.net的微服务电 ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(六)——一步一步教你如何撸Dapr之Actor服务
我个人认为Actor应该是Dapr里比较重头的部分也是Dapr一直在讲的所谓"stateful applications"真正具体的一个实现(个人认为),上一章讲到有状态服务可能很 ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(七)——一步一步教你如何撸Dapr之服务限流
在一般的互联网应用中限流是一个比较常见的场景,也有很多常见的方式可以实现对应用的限流比如通过令牌桶通过滑动窗口等等方式都可以实现,也可以在整个请求流程中进行限流比如客户端限流就是在客户端通过随机数直接 ...
随机推荐
- Android权限说明 system权限 root权限
原文链接:http://blog.csdn.net/rockwupj/article/details/8618655 Android权限说明 Android系统是运行在Linux内核上的,Androi ...
- C#调用 oracle存储过程
C#调用oracle 存储过程与调用Sql server存储过程类似,比较简单:直接给出示例: /// <summary> /// 判断物料类型是不是总部管控 /// </summa ...
- 将table中的值转换成json格式传到后台接收处理。
table数据 <table style="border:1px" id="tableID"> <tr> <th>编号< ...
- Android studio 使用心得(四)—android studio 多渠道打包(二)
Android studio 使用心得(四)—android studio 多渠道打包 这篇文章讲了一种打包方式.是直接在android studio 里面可视化操作,结合配置文件.我个人觉得严格上来 ...
- Spring学习笔记(四)-- Spring事务全面分析
通过本系列的文章对Spring的介绍,我们对Spring的使用和两个核心功能IOC.AOP已经有了初步的了解,结合我个人工作的情况,因为项目是金融系 统.那对事务的控制是不可缺少的.而且是很严格的控制 ...
- 使用 P3P 规范让 IE 跨域接受第三方 cookie
前两天帮同事处理一个 js 跨域问题,使用 jsonp 跨域提交用户名密码请求,实现自动登录第三方网站,即 SSO(single-sign-on) 单点登录,一处登录处处登录.在 Chrome 下没问 ...
- SS不能在Win7中打开,出现停止运行
一次,在Win7上不能打开SS,经过搜索,好像SS的win客户端使用.net frame4.6.2开发,但是Win7根本安装不了该版本的.net,所以...,重新安装Win10.
- java使用lambda表达式对List集合进行操作(JDK1.8)
1. 使用lambda表达式对List集合进行操作(JDK1.) List<TreeDto> collect = list.stream().filter(item -> item. ...
- java强行删除文件(针对进程正在使用的文件的删除)
boolean result = f.delete(); if(!result) { System.gc(); f.delete; }
- matplotlib 添加注释的方式
matplotlib 添加注释的方式 matplotlib.pyplot.annotate Annotate the point xy with text s s : str The text of ...