搭建一个简单的基于web的网络流量监控可视化系统

本文转载于我的个人博客,转载请标明出处。

初衷

在腾讯云的学生认证申请提交上去n天之后,终于得到了审批,所以迫不及待的想玩玩腾讯云,作为一个搞网络的,自然有一些关于网络应用的小玩意,所以把以前部署过的一个网络流量监控系统在腾讯云上面跑跑,体验一下腾讯云,检查一下腾讯云的安全。

一. 工具简介

相信用过linux的人都知道linux中一个常用的用来实时显示系统中各个进程的资源占用情况的性能分析命令top。在网络中有一个类似功能的软件——ntopng(以前称作ntop,加上ng(next generation)指下一代),他是一个网络流量探针,来显示网络的使用情况,他基于libpcap,同时提供了非常炫酷的web展示界面给用户,方便用户分析网络。

ntopng可以做哪些事情呢:

  1. 根据不同的标准划分网络流量
  2. 展示网络流量和IPv4/IPv6主机
  3. 对网络吞吐率和应用协议等生成报告
  4. 显示本机使用最多的协议,最多的交互主机,自主系统
  5. 将流量统计结果存储
  6. 对每个流都有细粒度的分析
  7. 利用nDPI发现应用协议
  8. 展示IP地址的为知信息
  9. 展示IP流量子矩阵(通信双方)
    等等还有很多。

ntopng的系统构架如下图,比较简单,不再说了。

二. 先来看几张效果图

为了不暴露隐私,展示几张网上的图片.

 

三. 步骤
远程登录腾讯云,执行下面的步骤

  1. 安装需要预装的库:
    - 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-dev
    apt-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
  2. 安装nDPI:
    git clone https://github.com/ntop/nDPI.git
    cd nDPI/
    ./autogen.sh
    make
  3. 安装ntopng
    cd ..
    git clone https://github.com/ntop/ntopng.git
    cd ntopng
    ./autogen.sh
    ./configure
    make
    make install
  4. 在运行ntopng之前,确保先启动了redis(ntopng的键值存储区)
    sudo /etc/init.d/redis-server restart
  5. 开启ntopng:
    sudo ./ntopng

    这是默认开启方式,ntopng在TCP/3000端口侦听,使用下面的命令,可以证实:

    sudo netstat -nap|grep ntopng 

  6. 在本地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是非常快的,整体来说还是非常不错的,毕竟在云计算的安全策略下可以做自己想做的事情了。。。

原文地址:https://www.cnblogs.com/cotyb/p/5049071.html