亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

nagios 流量監控和報警的shell腳本

發布時間:2020-04-21 09:22:47 來源:網絡 閱讀:849 作者:kai404 欄目:移動開發

上下文:我們平臺的監控系統用的是cacti+nagios。之前沒有加流量異常報警設置,cacti上到是有插件可以時間報警,但是無法使用我們自己的短信接口(nagios用的購買的短信接口),所以想自己寫一個腳本配合nagios實現基本的流量異常報警。

腳本思路:/proc/net/dev取出當前流經網卡的(接收和發送)的kb總數量,在檢測間隔時間后再次讀取這兩個值,
相減既是間隔時間段內的增量,再根據此增量做計算,算出間隔時間內的平均流量,和基準流量作比較,觸發nagios報警事件

局限性:我們只檢測外網卡的流量,且默認em1網卡為外網卡(需根據各位實際情況自行調整)

#!/bin/bash
#by ljk 
   #默認第一塊網卡為外網卡,檢查當前系統是以eth0還是em1作為網卡一,后面會引用網卡名
   interface=`ip a|grep -e "eth0" -e "em1"|awk '{print $NF}'|tail -1`
   
   #定義存儲結果的函數,以便在任何異常/正常退出前都能保存最新的記錄
   function tmp_store {
       chmod 777 /tmp/receive /tmp/transfer &> /dev/null 
       #以防以root用戶驗證腳本時以root創建這兩個文件,等nagios以nagios用戶調用腳本的時候無法寫入新的記錄值,導致檢測結果不準
       cat /proc/net/dev|grep "$interface"|sed 's/^ *//g'|awk -F'[ :]+' '{print $2}' > /tmp/receive
       cat /proc/net/dev|grep "$interface"|sed 's/^ *//g'|awk -F'[ :]+' '{print $10}' > /tmp/transfer
   }
   #將當時流量統計記錄于tmp,然后由nagios調用腳本,定時(5分鐘,遇異常隔5分鐘再檢測)采集新的統計值,
   做計算統計出時間段內流量的平均值
   RX_bytes_last=`cat /tmp/receive`
   TX_bytes_last=`cat /tmp/transfer`

   RX_bytes=`cat /proc/net/dev|grep "$interface"|sed 's/^ *//g'|awk -F'[ :]+' '{print $2}'`
   TX_bytes=`cat /proc/net/dev|grep "$interface"|sed 's/^ *//g'|awk -F'[ :]+' '{print $10}'`

   speed_RX=`echo "scale=0;($RX_bytes - $RX_bytes_last)*8/1024/1024/300"|bc`  
   #300即5分鐘,nagios 每五分鐘檢測一次流量,統計出來的 單位為Mb
   speed_TX=`echo "scale=0;($TX_bytes - $TX_bytes_last)*8/1024/1024/300"|bc` 
   
   if   [ $speed_RX -gt 5  -a $speed_TX -gt 5 ];then #此處的5,是我們的基準值,各位自行調整
        echo "speed_RX=$speed_RX, speed_TX=$speed_TX. both great than normal"
        tmp_store;
        exit 2
   elif [ $speed_RX -gt 5 -o $speed_TX -gt 5 ];then
        if [ $speed_RX -gt 5 ];then
           echo "receive is $speed_RX Mbps, great than 5Mbps"
           tmp_store;
           exit 2
        else
           echo "transfer is $speed_TX Mbps, great than 5Mbps"
           tmp_store;
           exit 2
        fi
   else 
        echo "OK speed_RX=$speed_RX Mbps, speed_TX=$speed_TX Mbps"
        tmp_store;
        exit 0
   fi
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁波市| 怀安县| 顺义区| 中山市| 托里县| 晋州市| 麻阳| 怀集县| 昌乐县| 剑阁县| 巴彦县| 勐海县| 江安县| 抚顺县| 资中县| 延边| 鄄城县| 岑巩县| 福安市| 噶尔县| 曲沃县| 桃源县| 讷河市| 禹城市| 平武县| 会同县| 静安区| 库伦旗| 射洪县| 逊克县| 称多县| 辰溪县| 容城县| 新密市| 大兴区| 临澧县| 酒泉市| 霍州市| 平武县| 横山县| 山西省|