利用Shell配合繪圖工具GnuPlot圖形化監控網路流量

來源:互聯網
上載者:User

網路流量的監控工具有很多,如: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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.