国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
python腳本監(jiān)控ping回應(yīng)值與丟包率
  http://blog.chinaunix.net/uid-26978448-id-3411107.html
2012
   nagios-plugins自帶有一個check_ping二進制文件可以檢測丟包率和ping的回應(yīng)值,但由于領(lǐng)導要求所有監(jiān)控腳本改用python寫,所以這里用python重新寫了一個。代碼如下:

#cat check_ping.py

點擊(此處)折疊或打開

  1. #!/usr/bin/env python
  2. # coding: utf-8
  3. # coding: cp950

  4. '''
  5. Create Date: 2012-11-06
  6. Version: 1.0
  7. Description: Detection host survival
  8. Author: Victor
  9. QQ: 1409175531
  10. '''

  11. ''' Please run the script with root '''

  12. import ping
  13. import sys

  14. def help():
  15.   print '''
  16. Usage:
  17. %s
  18. ''' % (sys.argv[0])

  19. try:
  20.   result = ping.quiet_ping(sys.argv[1], timeout=2, count=10, psize=64)
  21.   if int(result[0]) == 100:
  22.     print 'Critical - 宕機, 丟包率:%s%% | 報警閥值: >= %s%% 或 >=%s ms' % (result[0], int(sys.argv[2]), int(sys.argv[3]))
  23.     sys.exit(2)
  24.   else:
  25.     max_time = round(result[1], 2)
  26.     if int(result[0]) < int(sys.argv[2]) and int(result[1]) < int(sys.argv[3]):
  27.       print 'OK - 丟包率:%s%%, 最大響應(yīng)時間:%s ms | 報警閥值: >= %s%% 或 >=%s ms' % (result[0], max_time, int(sys.argv[2]), int(sys.argv[3]))
  28.       sys.exit(0)
  29.     elif int(result[0]) >= int(sys.argv[2]) or int(result[1]) >= int(sys.argv[3]):
  30.       print 'Warning - 丟包率:%s%%, 最大響應(yīng)時間:%s ms | 報警閥值: >= %s%% 或 >=%s ms' % (result[0], max_time, int(sys.argv[2]), int(sys.argv[3]))
  31.       sys.exit(1)
  32.     else:
  33.       print 'Unknown'
  34.       sys.exit(3)
  35. except IndexError:
  36.   help()
  37.   sys.exit(3)
  該腳本使用了ping模塊,ping模塊默認沒有安裝,可使用easy_install進行安裝,先在http://pypi.python.org/pypi/setuptools下載與python版本對應(yīng)的setup-tools(用來提供easy_install命令),下載好后給執(zhí)行權(quán)限,直接執(zhí)行即可安裝。接下來安裝ping模塊:
#easy_install ping   
安裝成功后即可正常運行本腳本。

  直接執(zhí)行腳本不加參數(shù)可以查看腳本用法:
#python check_ping.py
Usage:
check_python_ping.py

 表示丟包率閥值,即丟包率達到這個值后報警;
     表示最大響應(yīng)時間,即ping某個地址的響應(yīng)時間達到這個值后報警;

實例:

由于nagios程序是由nagios用戶執(zhí)行,使用該腳本的ping模塊會報錯,需要給nagios用戶開放sudo權(quán)限:

#visudo

添加以下內(nèi)容

nagios  ALL=(ALL)       NOPASSWD: /usr/local/nagios/libexec/check_ping.py

commands.cfg配置:

##### 飛信機器人的配置 ######
define command {
       command_name      notify-service-by-fei
       command_line      LD_LIBRARY_PATH=/usr/local/fetion /usr/local/fetion/fetion  --mobile=158******** --pwd=123456 --to=$CONTACTPAGER$ --msg-type=1 --msg-utf8="**Nagios**\nNotification Type: $NOTIFICATIONTYPE$\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\nDate/Time: $LONGDATETIME$\nAdditional Info:\n$SERVICEOUTPUT$"
       }
##### 定義check_python_ping命令 #####
define command {
        command_name    check_python_ping
        command_line    sudo $USER1$/check_ping.py $HOSTADDRESS$ $ARG1$ $ARG2$
}


services.cfg配置:
define service{
        use                             service01
        host_name                       test
        service_description             ping
        check_command                   check_python_ping!30!200
        }

效果圖如下:




本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
python獲取程序執(zhí)行文件路徑方法
Python 使用命令行參數(shù)
Python學習之sys.argv
C#調(diào)用python腳本并傳遞參數(shù)的一種方法
Nodejs中調(diào)用系統(tǒng)命令、Shell腳本和Python腳本的方法和實例
python sys模塊的常見用法匯總
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服