vnStatSVG: 流量监控软件 vnStat 最佳 Web 前端

vnStatSVG: 流量监控软件 vnStat 最佳 Web 前端

vnStat 简介

vnStat 是一款轻量级的网络流量监控工具,目前各大 Linux/BSD 系统都已内置支持。

vnStat 本身只支持命令行的交互方式,而 Web 前端则由第三方工具支持。这里汇总并对比下 vnStat 的几种 Web 前端并为大家推荐最佳的一款。

vnStat Web 前端对比

vnStat 首页推荐的四个前端有:

  • vnStat SVG frontend: 基于 CGI / SVG / AJAX 的轻量级 web 前端

    仅仅需要一个支持 CGI 的 HTTP 服务器,可以产生非常漂亮的基于 SVG 的图形报告。支持按月/日/时/秒等查看流量信息,还支持 top10 展示。

    因为不需要安装额外的 PHP 解析器,所以轻松支持 Apache, Nginx 以及 Busybox 内置的 httpd 服务器。

    更重要的是,vnStatSVG 不仅支持普通的 Linux 主机,还可以轻松支持服务器,集群抑或是一个小型的嵌入式系统。

    vnStatSVG Demo

  • jsvnstat – interactive network traffic analysis

    jsvnstat 是另外一款 Web 前端,基于 Javascript 可以实现简单的交互,不过它依赖 PHP 支持,而且不支持集群和嵌入式系统。

    JSvnStat Demo

  • vnStat PHP frontend: 一款基于 PHP 的 Web 前端

    严重依赖 PHP 和 GD image libraries。同样不支持集群和嵌入式系统。

    vnStatPHP Demo

  • VnstatSystrayIcon (Windows): 基于 Windows 平台

vnStatSVG 表现最佳

综合上述比较,不难发现 vnStatSVG 是一款最佳的 vnStat 前端。

关于它的更多特性,可以从其官方主页找到:

  • 基于 CGI / SVG / AJAX 动态地生成流量的图形报告(Top10/每月/每天/每时/每秒/汇总)
  • 支持 Apache, Nginx 以及 Busybox httpd,甚至其他更轻量级的 Web 服务器
  • 仅需 CGI 支持,无须 PHP 和其他额外模块,所以占用空间非常小
  • 因为只需从服务器传输 XML 格式的流量数据,所以消耗的带宽非常小
  • 可同时监控单台主机的任意多个网络设备接口,例如 eth0, eth1…
  • 可在一个窗口中同时监控某个集群的任意多台主机
  • 左侧的设备节点信息可展开,也可收缩,即使同时监控几十台主机都方便查看
  • 支持集群间的多种通信协议:http, ftp, file and even ssh
  • 支持多种浏览器客户端:Chromium, Firefox 以及 Safari
  • 可灵活通过多种不同方式获取 XML 格式的流量数据

总之,vnStatSVG 不仅支持普通的 Linux 主机,服务器,集群,而且支持基于 Busybox 这样的小型嵌入式系统。

vnStatSVG 快速上手

vnStatSVG 首页详细介绍了其用法,不过用的是英文,咱们用中文简单介绍一下如何在 Ubuntu 主机上快速安装和使用它。

安装 vnStat 和 Apache


  1. sudo apt-get install vnstat apache2

下载 vnStatSVG


  1. git clonehttps://gitlab.com/tinylab/vnstatsvg.git

安装 vnStatSVG

假设 Apache 的根目录放在 /var/www/,可以在 /var/www/ 创建一个 vnstatsvg 目录,然后把 Web 前端安装到下面。


  1. sudo-scd vnstatsvg.gitmkdir/var/www/vnstatsvg./configure-dvnstatsvgmake&&make install

如果根目录不在 /var/www/,请用 ./configure w 指定。

通过 Web 查看流量信息

默认就可以通过浏览器打开 http://localhost/vnstatsvg/ 查看流量信息了。

添加更多网络设备节点

可以通过编辑 /var/www/vnstatsvg/sidebar.xml 修改各个设备节点的信息,也可以直接复制一个模板过去:


  1. sudo cp src/admin/sidebar.xml-template-4-singlehost/var/www/vnstatsvg/sidebar.xml

配置大体如下:


  1. <?xml version='1.0'encoding='UTF-8'standalone='no'?><sidebar id="sidebar">
    <!--thisconfiguration isforsingle host,the hosts anddump_tool field should be the same-->
    <iface>
    <name>eth0</name>
    <host>localhost</host>
    <description>Local Host</description>
    </iface>
    </sidebar>

更多模板请查看 src/admin/sidebar.xml-template*

之后,编辑 sidebar.xml 配置各类网络设备节点的信息:

  • name: 网络设备节点名,默认为 eth0, eth1 …
  • host: 主机地址或者域名
  • protocol: XML 格式的流量数据获取协议,默认为 http
  • dump_tool: 默认为 shell 方式,即 /cgi-bin/vnstat.sh
  • description: 设备节点对应的服务信息描述

支持同时监控多台主机

如果要同时监控多个主机,最简单的方式莫过于在其他机器上用同样方式安装一份 vnstat 和 vnStatSVG,这样就只需要配置 namehost 和 description,其他保持默认。

例如,如果要监控 localhost 和 泰晓科技(域名为 tinylab.org) 的数据,可以添加一份如下配置:


  1. <?xml version='1.0'encoding='UTF-8'standalone='no'?>
    <sidebar id="sidebar">
    <!--thisconfiguration isforsingle host,the hosts anddump_tool field should be the same-->
    <iface>
    <name>eth0</name>
    <host>localhost</host>
    <description>Local Host</description></iface><iface>
    <name>eth1</name>
    <host>tinylab.org</host>
    <description>TinyLab.org</description>
    </iface>
    </sidebar>

如果不想在其他机器上安装一份额外的 vnStatSVG,那么可以只安装 vnstat,但是需要有一种方式从其他主机上把数据拷贝到本地,例如,拷贝到本地的 vnstat 数据目录下 /var/lib/vnstat

例如,可以用 ssh 协议(可以通过配置公钥免密登录)。


  1. # collect-data.sh
    hosts="tinylab.org"
    ifaces="eth0 eth1"
    while:;do
    for h in hosts
    do
    for i in $ifaces
    do
    scp ${h}:/var/lib/vnstat/${i} /var/lib/vnstat/${h}-${i}
    scp ${h}:/proc/net/dev > /var/lib/vnstat/${h}-${i}-second
    done
    done
    sleep 5
    done

可以在后台一直执行该脚本或者启动另外一个 cron 任务来执行该脚本。这样就可以用 file 虚拟协议,如下的 sidebar.xml 就可以实现同样的效果了。


  1. <?xml version='1.0'encoding='UTF-8'standalone='no'?>
  2. <sidebar id="sidebar">
  3. <!--thisconfiguration isforsingle host,the hosts anddump_tool field should be the same-->
  4. <iface>
  5. <name>eth0</name>
  6. <host>localhost</host>
  7. <description>Local Host</description>
  8. </iface>
  9. <iface>
  10. <name>tinylab.org-eth0</name>
  11. <host>localhost</host>
  12. <description>TinyLab.org:eth0</description>
  13. </iface>
  14. <iface>
  15. <name>tinylab.org-eth1</name>
  16. <host>localhost</host>
  17. <description>TinyLab.org:eth1</description>
  18. </iface>
  19. </sidebar>

小结

vnStatSVG 的确是一款非常小巧但是功能强大的 vnStat web 前端,非常推荐!

原文发布时间:2015-04-13

本文来自云栖合作伙伴“linux中国”

时间: 2024-09-29 13:50:46

vnStatSVG: 流量监控软件 vnStat 最佳 Web 前端的相关文章

Linux系统开源流量监控软件Bandwidthd使用教程

用bandwidthd在任何一台电脑可以通过web界面用浏览器查看经过网关的各个ip流量,而且是分协议,分颜色显示,已经有直观的图象曲线. 在日常维护中, 网管人员最头痛的是内部网经常有人在大量传送文件而导致本来可怜的带宽变得更加缓慢.如果在网关上装上bandwidthd ,就可以追踪的是各个的 IP 的流量,而且可以用图象曲线显示各个ip的相应不同协议显示,还能分时段查看, 例如:包含FTP.HTTP.P2P.TCP.UDP.ICMP协议的各自流量,以IP为统计对象. 1.基本编译组件安装 [

我的Web前端开发(一)

   从别人的blog中看到,做前端开发的没有用C语言,或者是C++做底层开发的有前途,有技术含量,被重视,因为前端开发门槛比较低,太容易上手啦.        经过这些日子的实践和学习,我个人觉得前端开发并没有他们想象的那么简单,这是一份综合素质要求比较高的工作,不是你会了HTML.CSS和JavaScript就能成为一名优秀的前端开发工程师.       一位优秀的Web前端开发工程师在知识体系上既要有广度,又要有深度,既要把网站的界面更好地呈现给用户,又要让用户使用的方便舒服.所以web前

经验分享:网管安全日志 服务器流量监控

常用的流量监控软件有DU Meter.MRTG.PRTG.SolarWinds等等.现在也有很多硬件设备也具有流量监控的功能. 那么数据中心机房那边是怎样监控到我们服务器的进出流量的呢?以上列出的四款软件除了DU Meter外,其他的三款软件都是能够监控交换机的每一个端口.也许你会说,这软件监控的是交换机,又不是我的服务器流量.流量监控软件其实是利用 SNMP(Simple Network Management Protocol,简单网络管理协议或小型网络管理协议)进行交换机进出流量的监控的.自

Web前端优化最佳实践之Server篇

Web 前端优化最佳实践第二部分面向 Server .目前共计有 6 条实践规则.[注,这最多算技术笔记,查看最原始内容,还请访问:Exceptional Performance : Best Practices for Speeding Up Your Web Site ] 1. 使用 CDN (Use a Content Delivery Network) 国内 CDN 的普及还不够.不过我们有独特的电信.网通之间的问题,如果针对这个作优化,基本上也算能收到 CDN 或类似的效果吧(假装如此

Web前端优化最佳实践之Mobile(iPhone)篇

Web 前端优化最佳实践最后一部分是针对移动应用的,其实只是针对 iPhone 的,目前只有两条规则. 1. 单个数据对象小于 25K (Keep Components under 25K) 这个似乎只是针对 iPhone 研究的.建议保持单个 Web 数据对象在 25 K 以下.为什么是 25K? Apple 官方信息指出可缓存到内存中的 Web 对象最大支持到 10M,但经过测试,发现也就是 25K 左右. iPhone 在市场上的优异表现,让 Web 人员不得不考虑如何针对其进行优化.相信

Web前端优化最佳实践之图象篇

Web 前端优化最佳实践第六部分面向 图片(Image),这部分目前有 4 条规则.在最近的 Velocity 2008 技术大会上,Yahoo! 的 Stoyan Stefanov 做的 Image Optimization: How Many of These 7 Mistakes Are You Making 也非常有参考价值.结合一起说一下. 1. 优化图片 (Optimize Images) 使用 GIF .JPG 还是 PNG 格式的图片? 尽可能的使用 PNG 格式的图片,更多的功

Web前端优化最佳实践之JavaScript篇

Web 前端优化最佳实践之 JavaScript 篇,这部分有 6 条规则,和 CSS 篇 重复的有几条.前端优化最佳实践,最重要的还是"实践",要理解这东西容易得很,关键是要去"实践",去"执行",去"反馈",去获取受益. 1. 脚本放到 HTML 代码页底部 (Put Scripts at the Bottom) 当一个脚本在下载的时候,浏览器干不了其它的事儿(串行了).所以,把它扔到最后面去处理.对于一些功能性的脚本,可

Web前端优化最佳实践之CSS篇

Web 前端优化最佳实践第四部分面向 CSS.目前共计有 6 条实践规则.另请参见 Mozilla 开发者中心的文章:Writing Efficient CSS 1. 把 CSS 放到代码页上端 (Put Stylesheets at the Top) 官方的解释我觉得多少有点语焉不详.这一条其实和用户访问期望有关.CSS 放到最顶部,浏览器能够有针对性的对 HTML 页面从顶到下进行解析和渲染.没有人喜欢等待,而浏览器已经考虑到了这一点. 2. 避免 CSS 表达式 (Avoid CSS Ex

Web前端优化最佳实践之Cookie篇

Web 前端优化最佳实践第三部分面向 Cookie .目前只有 2 条实践规则. 1. 缩小 Cookie (Reduce Cookie Size) Cookie 是个很有趣的话题.根据 RFC 2109 的描述,每个客户端最多保持 300 个 Cookie,针对每个域名最多 20 个 Cookie (实际上多数浏览器现在都比这个多,比如 Firefox 是 50 个) ,每个 Cookie 最多 4K,注意这里的 4K 根据不同的浏览器可能不是严格的 4096 .别扯远了,对于 Cookie