搭建一个简单的基于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之服务限流
在一般的互联网应用中限流是一个比较常见的场景,也有很多常见的方式可以实现对应用的限流比如通过令牌桶通过滑动窗口等等方式都可以实现,也可以在整个请求流程中进行限流比如客户端限流就是在客户端通过随机数直接 ...
随机推荐
- MongoDB - Cursors
db.collection.find()查询集合会返回一个包含查到的文档的游标.在mongo shell中,如果没有定义一个变量来该游标的内容,默认会迭代返回20个文档. > db.users. ...
- openssl 创建证书的总结和注意事项
1.该文章从网上看了好多博客,并经过实践形成.环境为ubuntu12和ubuntu14 "========================================大纲提要和注意事项= ...
- discuz 安装 文件不可写
discuz安装过程中,系统会自动检查环境及文件目录权限,当出现目录不可写: 这个时候只需要用ftp修改文件夹权限就可以了
- Shell 基础笔记
1-22-shell脚本的基础 本节所讲内容: shell 基本语法 变量 第1章 什么是SHELL?.. 2 1.1 shell编程.. 3 第2章 shell变量及运用.. ...
- c语言中数组名和指针变量的区别
编译器工作原理:在64位的计算机中,当创建一个指针变量时,计算机会为它分配8个字节的存储空间.但如果创建的是数组呢?计算机会为数组分配存储空间,但不会为数组变量分配任何空间,编译器仅在出现它的地方把它 ...
- phpcms 模板学习
1.phpcms\modules\content 里面可以自己定义常量变量,常量在魔板不用$,变量要用2.\phpcms_v9_UTF8\caches\configs system.php 设置魔板是 ...
- iOS音频合并
iOS音频合并 最近遇到一个需求,客户录音试听一下可以,就继续向下录制,当客户录制完成后,需要把前面录制的试听音频和后面的音频进行合并.最初想到的方法,使用NSData对两个音频文件进行合并,但是合并 ...
- todos Vue
<div id="todo-list-example"> <input v-model="newTodoText" v-on:keyup.en ...
- apue编程之getopt ,getopt_long使用方法以及实例
1.getopt 1.1 函数定义 int getopt(int argc, char * const argv[], const char *optstring);#include <unis ...
- FileZilla Server-Can’t access file错误解决方法
在某服务器上用FileZilla Server搭建了一个FTP服务器.开始使用没有发现任何问题,后来在向服务器传送大文件的时候,发现总是传输到固定的百分比的时候出现 ”550 can’t access ...