利用Shell配合绘图工具GnuPlot图形化监控网络流量

网络流量的监控工具有很多,如:Mrtg、Cacti、Zabbix等等,他们都有着各自的特点,不同的侧重,只为适合不同的应用场景的各种特殊需求。除了网络流量监控工具以外,还有Nagios这样的监控主机状态的工具,不仅能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。还能在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知等功能。除此之外Nagios简单地插件设计使得用户可以方便地扩展自己服务的检测方法。也正是这一点,让Nagios几乎无所不能。我们也经常利用这个特性,使用Shell编写各类插件配合Ngios的使用。

Nagios虽然强大,但无法像Cacti那样图形化监控网络流量。因此Nagios+Cacti通过NPC整合在一起,强强联手成为了一种经常被使用的组合。关于这方面的知识,我会在后续的博客中有所描述,此处暂略过。只为图形化流量使用情况就要在学习Cacti的同时,还要将Nagios与Cacti进行整合,成本未免太高。有没有一种方式可以自定义网络流量监控并以图形化的方式显示出来呢?本文就是利用Shell配合绘图工具GnuPlot将网络流量图形化的展示出来,大家可以将他嵌入到Nagios或者干脆单独使用。

首先我们需要获得网络流量。运行ifconfig命令

eth0      Link encap:Ethernet  HWaddr 00:0C:29:58:A5:D5

     inet addr:192.168.0.15  Bcast:192.168.0.255  Mask:255.255.255.0

     inet6 addr: fe80::20c:29ff:fe58:a5d5/64 Scope:Link

     UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

     RX packets:7 errors:0 dropped:0 overruns:0 frame:0

     TX packets:16 errors:0 dropped:0 overruns:0 carrier:0

     collisions:0 txqueuelen:1000

     RX bytes:496 (496.0 b)  TX bytes:2452 (2.3 KiB)

     Interrupt:193 Base address:0x2000

其中 RX Bytes、TX Bytes:为总传送、接收的字节总量(红色标注部分)。我们将其取出并相加。命令如下:

ifconfig | awk -F ":" 'NR==8{print $2+$3}' (本例获得结果为2948,单位为byte)

我们将以分钟为单位取得该值并与之前取得值的总和相减得到每分钟的网卡流量并导入到文本文件中。文件的格式如下:

06:01:00  2948

06:02:00  1948

06:03:00  2948

06:04:00  3948

06:05:00  1948

06:06:00  3948

........

echo -n `date +%H:%M:%S` " " >> result;echo $[`ifconfig | awk -F ":" 'NR==8{print $2+$3}'`-`awk '{sum+=$2}END{print sum}' result `] >>result

echo -n `date +%H:%M:%S` " " >> 1; #以小时:分钟:秒为格式获取当前系统时间并输出重定向到result文件中,-n选项为不输出换行符。

awk '{sum+=$2}END{print sum}' result #为获得result文件中第二列所有值的和

echo $[`ifconfig | awk -F ":" 'NR==8{print $2+$3}'`-`awk '{sum+=$2}END{print sum}' result `]>>result #将当前网卡流量减去之前统计的网

卡流量总和得到这一分钟内网卡的流量并将其输出重定向到result文件中。

#! /bin/bash

while true;do

   echo -n `date +%H:%M:%S` " " >> result;echo $[`ifconfig | awk -F ":" 'NR==8{print $2+$3}'`-`awk '{sum+=$2}END{print sum}'  result `]>>result

   sleep 60

done

时间: 2024-10-29 12:18:53

利用Shell配合绘图工具GnuPlot图形化监控网络流量的相关文章

gem-redis 图形化监控界面 之 redis-browser 安装

问题描述 redis 图形化监控界面 之 redis-browser 安装 在安装redis-brower过程中,遇到 该问题 ,请问如何解决?? gem install redis-browser ERROR: Could not find a valid gem 'redis-browser' (>= 0), here is why: Unable to download data from https://rubygems.org/ - Errno::ECONNRESET: Connect

DarGUI 0.6.0发布 磁盘存档工具的图形化前端

DarGUI 是一款磁盘存档实用程序(DAR)的图形化前端,目的是更容易和更快速地使用DAR执行常见的备份任务.它使用GTK++ 库(已安装在大多数Linux发行版),旨在补充和加强DAR命令行功能,而不是隐藏它们,http://www.aliyun.com/zixun/aggregation/17185.html">帮助用户了解DAR如何工作,以及能够使用必要的命令行.它采用Pascal using FreePascal 和 the Lazarus IDE编写. DarGUI 0.6.0

linux下监控网络流量的脚本_linux shell

我看了下,linux下的/proc/net/dev记录了每块网卡发送和接受的包和字节数.因此萌生想法,写了一个.运行效果: 复制代码 代码如下: [root@74-82-173-217 ~]# ./net.sh Current Ip: inet addr:74.82.173.217 Bcast:74.82.173.223 Mask:255.255.255.224 Summry info: RX bytes:203692709 (194.2 MiB) TX bytes:93525930 (89.1

图形化管理MySQL更轻松

MySQL是一个真正的多用户.多线程SQL数据库服务器,是目前最流行的开放源码数据库服务器之一.来自MySQL项目的数据显示,目前MySQL用户已经达到400万个.大家熟知的.使用MySQL的Web站点包括Yahoo.Finance.MP3.com.Motorola.NASA.Silicon Graphics和Texas Instruments等. 一般来说,用户以命令行的方式来使用MySQL.很多用户在Windows环境中一直使用图形用户界面(GUI)来操作和管理数据库,对命令行方式可能不习惯

一个更图形化的例子

这个程序不会太令人紧张,所以让我们试着增加一些有趣的图形组件.   //: Applet2.java // Easy graphics import java.awt.*; import java.applet.*; public class Applet2 extends Applet { public void paint(Graphics g) { g.drawString("Second applet", 10, 15); g.draw3DRect(0, 0, 100, 20,

《深入分析GCC 》——2.4 shell工具及graphviz绘图工具

2.4 shell工具及graphviz绘图工具 为了更好地分析GCC的运行过程,可以使用GCC支持的一些编译选项,例如,-fdump-tree-all.-fudmp-ipa-all.-fdump-rtl-all等,这样编译过程中将产生大量的中间运行结果信息,帮助用户理解GCC的处理细节.另外,用户也可以根据需要在源代码中增加适当的调试代码,从而输出一些运行时的中间信息.对这些输出结果进行高效分析,从中提取有价值的信息是GCC分析过程中非常关键的一种途径. 笔者认为,借助于Linux shell

rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理

系统日志的重要性,相信大家都深有体会,当发生故障后,第一时间就是查看相关报错信息和日志信息,以定位问题所在,还可以基于日志,进行日志的分析,从而获取系统运行状态的一些规律,本篇就介绍关于系统日志的先关内容,具体分为: 1.rsyslog相关概念的介绍 2.自定义日志存储的信道(facility)和存储位置,让rsyslog作为服务端记录rsyslog客户端的日志信息 3.定义rsyslog的日志存储在mysql数据库中 4.利用loganalyzer实现对存储在mysql数据库中的rsyslog

RKWard v0.5.5发布 一款R语言的图形化开发工具

RKWard v0.5.5发布一款R语言的图形化开发工具.R是用于统计分析.绘图的语言和操作环境.R是属于GNU系统的一个自由.免费.源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具. 更新说明: New features and improvements - Re-organize the default toolbar actions of the main window - Detached windows are now restored in detached state w

图形化管理MYSQL数据库的工具 SQLyog 8.6.2 发布

SQLyog 是一个易于使用的.快速而简洁的图形化管理MYSQL数据库的工具,它能够在任何地点有效地管理你的数据库. Changes: 1. SJA now supports an additional -r parameter that tells how big CHUNKS should be when copying to an empty table. 2. The -r parameter only has effect with Data Sync jobs and is igno