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

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

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

eth0Linkencap:EthernetHWaddr00:0C:29:58:A5:D5

inetaddr:192.168.0.15Bcast:192.168.0.255Mask:255.255.255.0

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

UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1

RXpackets:7errors:0dropped:0overruns:0frame:0

TXpackets:16errors:0dropped:0overruns:0carrier:0

collisions:0txqueuelen:1000

RXbytes:496(496.0b)TXbytes:2452(2.3KiB)

Interrupt:193Baseaddress:0x2000

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

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

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

06:01:002948

06:02:001948

06:03:002948

06:04:003948

06:05:001948

06:06:003948

........

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

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

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

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

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

#!/bin/bash

whiletrue;do

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

sleep60

done

reslut文件内容如下:

06:31:012948

06:32:011948

06:33:012948

06:34:013948

06:35:011948

06:36:013948

06:37:012680

06:38:013127

06:39:014162

06:40:015137

06:41:011348

06:42:011872

06:43:012882

06:44:011972

06:45:015689

06:46:011952

06:47:012371

06:48:013333

06:49:014523

06:50:011346

06:51:017864

06:52:013256

06:53:015742

06:54:011234

06:55:014328

06:56:012651

06:57:011463

06:58:012813

06:59:011111

07:00:012134

07:01:011687

07:02:013383

07:03:012345

现在我们就可以通过GnuPlot进行绘图。

setterminalpngsmallcolorpicsize600400#以png格式,坐标字体为小字体,大小为600*400输出绘图

setoutput"eth0.png"#输出图片的名称为eth0.png

setxdatatime#设定X坐标的类型为时间类型

settimefmt"%H:%M:%S"#设定时间类型的格式

setgrid#设定网格为输出图片背景

setstyledatalinespoints#设定绘图使用点线方式

setxticrotateby90#将X坐标以90旋转

plot"result"using1:2title"eth0"pointtype3linetype2#以result文件的一列为X坐标绘制第二列的内容,图片右上角标示为eth0

将以上内容保存为文件eth0

cateth0|gnuplot#执行绘图

本例输出的图片如下:

完整shell脚本如下:

#!/bin/bash

whiletrue;do

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

cateth0|gnuplot#由于每次生成的图片会覆盖原来的图片,所以不用进行删除操作

sleep60

done

基于linux网络流量监控与分析软件的设计与实现shell,Shell图形化监控网络流量相关推荐

  1. Shell图形化监控网络流量

    shell图形化监控网络流量 网络流量的监控工具有很多,如:Mrtg.Cacti.Zabbix等等,他们都有着各自的特点,不同的侧重,只为适合不同的应用场景的各种特殊需求.除了网络流量监控工具以外,还 ...

  2. 【转载】Shell图形化监控网络流量

    网络流量的监控工具有很多,如:Mrtg.Cacti.Zabbix等等,他们都有着各自的特点,不同的侧重,只为适合不同的应用场景的各种特殊需求.除了网络流量监控工具以外,还有Nagios这样的监控主机状 ...

  3. shell图形化监控网络流量 网络流量的监控工具有很多,如:Mrtg、Cacti、Zabbix等等,他们都有着各自的特点,不同的侧重,只为适合不同的应用场景的各种特殊需求。除了网络流量监控工具以外,还

    网络流量的监控工具有很多,如:Mrtg.Cacti.Zabbix等等,他们都有着各自的特点,不同的侧重,只为适合不同的应用场景的各种特殊需求.除了网络流量监控工具以外,还有Nagios这样的监控主机状 ...

  4. 基于linux环境pdf,基于Linux环境下的Snif论r设计与芸}瑰.PDF

    基于Linux环境下的Snif论r设计与芸}瑰 基于Linux环境下的Snif论r设计与芸}瑰 李刍每莹周姆 铬编程技I:,夏‰骼r实现方法进行了棵耐 7IP.w.h 关键词嗅挺器,滑动窗口,'r(: ...

  5. linux线程池实现多线程并发,基于Linux的多线程池并发Web服务器设计-电子设计工程.PDF...

    基于Linux的多线程池并发Web服务器设计-电子设计工程.PDF 第 卷 第 期 电子设计工程 年 月 基于 的多线程池并发 服务器设计 陈 涛 任海兰 武汉邮电科学研究院 湖北 武汉 摘要 时至今 ...

  6. linux arm关闭光栅,基于Linux的光栅检测系统的软件设计与实现.pdf

    基于Linux的光栅检测系统的软件设计与实现.pdf - - - - - - - - - - 一 竣 应 ((_- 基 于 Linux 系 统 的 软 件 设 计 与 实 现 东北大学信息科学与工程学 ...

  7. Linux资产图形化配置网络之nmtui指令

    若Linux系统精简安装,默认不带nmtui命令单独可进行yum安装 # yum install NetworkManager-tui #nmtui安装命令 # nmtui #打开图形化的网络配置 如 ...

  8. 使用snmp对DNS服务器进行图形化监控

    通常情况下如果需要了解DNS服务器的工作状态往往需要telnet或ssh到服务器上以命令的方式来获取.该方式不但麻烦而且不直观.本文介绍一种通过SNMP来对DNS服务器进行图形化监控的方法. 该系统主 ...

  9. 使用PMM图形化监控MySQL MGR动态

    * GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 1.引入 2.PMM监控的安装和配置使用 2.1PMM介绍 2.2PMM安装方式 3.通过web页面添加MGR组复制监 ...

最新文章

  1. MP4文件格式的解析,以及MP4文件的分割算法
  2. 【转载】大叔推荐博客索引
  3. SpringMVC概述
  4. TypeScript里数组foreach和map操作的区别
  5. Codeforces Round #721 (Div. 2)
  6. 微型计算机和接口技术考题,微型计算机接口技术以及应用考题
  7. Exchange 2013 SP1部署系列7:发送连接器的配置
  8. 通俗易懂的5G 入门科普!
  9. Sendmail邮件服务器搭建与配置笔记
  10. Excel解析的几种实现方式
  11. 《计算机组成原理》----第1章 计算机系统体系结构 1.1 什么是计算机系统体系结构...
  12. 旧版微信支付文档链接
  13. 区块链之零知识证明(zk-SNARK从小白到明白)
  14. WTL for MFC Programmers, Part VI - Hosting ActiveX Controls
  15. 零基础学大数据分析现实吗
  16. javascript的基本概念
  17. ANDROID StrictMode 使用
  18. 计算机算法设计与分析(第五版)---王晓冬--------前六章(递归与分治,动态规划,贪心算法,回溯法,)期末复习资料总结
  19. 人见人爱!收款码背后的原理是什么?
  20. 解决 tabby 登录远程时报错:Handshake failed: no matching key exchange algorithm

热门文章

  1. 大数据埋点那些事儿,手机 APP 是不是在偷听我说话?
  2. 微信,知道你所有的秘密
  3. Kali Linux 使用记录
  4. 微型计算机装机顺序,小伙子,听说你要装机?这款机箱够你玩好多年
  5. NDK-r25交叉编译qemu-7.0.0 第651步报错
  6. maven 打包 程序包org.project.entity不存在
  7. PhotoShop CC2015(64位)下载链接和破解教程
  8. c#时分秒毫秒微妙_c# - 将秒转换为(小时:分钟:秒:毫秒)时间的最佳方法是什么?...
  9. ntp设置开机自启动后,重启没有起来问题
  10. cocos2d-x apk 打包路径太深