泉州做网站优化价格,admin.php wordpress,网站建设术语,拍卖网站建设公司shell图形化监控网络流量 网络流量的监控工具有很多#xff0c;如#xff1a;Mrtg、Cacti、Zabbix等等#xff0c;他们都有着各自的特点#xff0c;不同的侧重#xff0c;只为适合不同的应用场景的各种特殊需求。除了网络流量监控工具以外#xff0c;还有Nagios这样的监控…shell图形化监控网络流量 网络流量的监控工具有很多如Mrtg、Cacti、Zabbix等等他们都有着各自的特点不同的侧重只为适合不同的应用场景的各种特殊需求。除了网络流量监控工具以外还有Nagios这样的监控主机状态的工具不仅能有效监控Windows、Linux和Unix的主机状态交换机路由器等网络设置打印机等。还能在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员在状态恢复后发出正常的邮件或短信通知等功能。shell图形化监控网络流量除此之外Nagios简单地插件设计使得用户可以方便地扩展自己服务的检测方法。也正是这一点让Nagios几乎无所不能。我们也经常利用这个特性使用Shell编写各类插件配合Ngios的使用。Nagios虽然强大但无法像Cacti那样图形化监控网络流量。因此NagiosCacti通过NPC整合在一起强强联手成为了一种经常被使用的组合。shell图形化监控网络流量关于这方面的知识我会在后续的博客中有所描述此处暂略过。只为图形化流量使用情况就要在学习Cacti的同时还要将Nagios与Cacti进行整合成本未免太高。有没有一种方式可以自定义网络流量监控并以图形化的方式显示出来呢本文就是利用Shell配合绘图工具GnuPlot将网络流量图形化的展示出来即shell图形化监控网络流量大家可以将他嵌入到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 : NR8{print $2$3} 本例获得结果为2948单位为byteshell图形化监控网络流量我们将以分钟为单位取得该值并与之前取得值的总和相减得到每分钟的网卡流量并导入到文本文件中。文件的格式如下06:01:00 294806:02:00 194806:03:00 294806:04:00 394806:05:00 194806:06:00 3948........echo -n date %H:%M:%S result;echo $[ifconfig | awk -F : NR8{print $2$3}-awk {sum$2}END{print sum} result ] resultecho -n date %H:%M:%S 1; #以小时分钟秒为格式获取当前系统时间并输出重定向到result文件中-n选项为不输出换行符。awk {sum$2}END{print sum} result #为获得result文件中第二列所有值的和echo $[ifconfig | awk -F : NR8{print $2$3}-awk {sum$2}END{print sum} result ]result #shell图形化监控网络流量将当前网卡流量减去之前统计的网卡流量总和得到这一分钟内网卡的流量并将其输出重定向到result文件中。#! /bin/bashwhile true;doecho -n date %H:%M:%S result;echo $[ifconfig | awk -F : NR8{print $2$3}-awk {sum$2}END{print sum} result ]resultsleep 60 donereslut文件内容如下06:31:01 294806:32:01 194806:33:01 294806:34:01 394806:35:01 194806:36:01 394806:37:01 268006:38:01 312706:39:01 416206:40:01 513706:41:01 134806:42:01 187206:43:01 288206:44:01 197206:45:01 568906:46:01 195206:47:01 237106:48:01 333306:49:01 452306:50:01 134606:51:01 786406:52:01 325606:53:01 574206:54:01 123406:55:01 432806:56:01 265106:57:01 146306:58:01 281306:59:01 111107:00:01 213407:01:01 168707:02:01 338307:03:01 2345现在我们就可以通过GnuPlot进行绘图。set terminal png small color picsize 600 400 #以png格式坐标字体为小字体大小为600*400输出绘图set output eth0.png #输出图片的名称为eth0.pngset xdata time #设定X坐标的类型为时间类型set timefmt %H:%M:%S #设定时间类型的格式set grid #设定网格为输出图片背景set style data linespoints #设定绘图使用点线方式set xtic rotate by 90 #将X坐标以90旋转plot result using 1:2 title eth0 pointtype 3 linetype 2#以result文件的一列为X坐标绘制第二列的内容图片右上角标示为eth0将以上内容保存为文件eth0cat eth0 | gnuplot #执行绘图shell图形化监控网络流量本例输出的图片如下完整shell脚本如下#! /bin/bashwhile true;doecho -n date %H:%M:%S result;echo $[ifconfig | awk -F : NR8{print $2$3}-awk {sum$2}END{print sum} result ]resultcat eth0 | gnuplot #由于每次生成的图片会覆盖原来的图片所以不用进行删除操作sleep 60 doneshell图形化监控网络流量生成好的图片可以放置在Apache中或者整合Nagios。 篇幅有限未尽之处还请见谅希望大家批评指教提出更好的建议。谢谢