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

溫馨提示×

溫馨提示×

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

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

nagios監控squid的腳本

發布時間:2020-06-20 06:26:15 來源:網絡 閱讀:743 作者:zhhmj 欄目:移動開發

   最近一直都在忙工作上的事情,沒有時間來寫點東西了,公司用的cache是squid,之前有過監控,但是nagios中看不到squid的命中率,于是就寫了這么一個腳本來通過pnp4nagios查看squid的一些圖。下面是腳本:

  1. #!/bin/bash 
  2. # 這個腳本主要是檢測squid的每分鐘http的請求熟、cpu的使用率、可用的文件描述符、5min的請求命中率、5min的內存請求命中率和5min的硬盤請求命中率。 
  3. # 并且可以通過pnp4nagios畫圖。 
  4.  
  5. PROGNAME=`basename $0` 
  6. VERSION="Version 1.1" 
  7. AUTHOR="zhhmj (tgariltg@gmail.com)" 
  8.  
  9. #DEFINES 
  10. ST_OK=0 
  11. ST_WR=1 
  12. ST_CR=2 
  13. ST_UK=3 
  14. #VARS 
  15. hostname="localhost" 
  16. port=8001 
  17. running=0 
  18. warn_descriptors=100 
  19. crit_descriptors=30 
  20. warn_hits=70 
  21. crit_hits=50 
  22.  
  23. print_version() { 
  24.         echo "$PROGNAME $VERSION $AUTHOR" 
  25.  
  26. print_help() { 
  27.         echo "" 
  28.         print_version 
  29.         echo "" 
  30.         echo "Description:" 
  31.         echo "Gets percentage of hits  for a squid reverse proxy" 
  32.         echo "Options:" 
  33.         echo "  -h|--help" 
  34.         echo "   Print help info." 
  35.         echo "  -H|--hostname)" 
  36.         echo "   Sets the hostname, default is localhost" 
  37.         echo "  -P|--port)" 
  38.         echo "   Sets the port, default is 8001" 
  39.         echo "  -wd)" 
  40.         echo "   Sets the number of available file descriptors to warn at, default 100" 
  41.         echo "  -cd)" 
  42.         echo "   Sets the number of available file descriptors to go critical at, default 30" 
  43.         echo "  -wh)" 
  44.         echo "   Sets the percentage of hits to warn at, default 70" 
  45.         echo "  -ch)" 
  46.         echo "   Sets the percentage of hits to go critical at, default 50" 
  47.         echo "" 
  48.         echo "Example:" 
  49.         echo "  ./check_squid -H 127.0.0.1 -P 8001 -wd 100 -cd 30 -wh 70 -ch 50" 
  50.         echo "  WARNING - Squid is serving an average of 7.2 per minute since start with 655349 file descriptors left and 0.04 percent of CPU use and Hits as 64% of all requests" 
  51.         exit $ST_UK 
  52.  
  53. #獲取squid的信息 
  54. get_status_text() { 
  55.         status_text=$(squidclient -h ${hostname} -p ${port} mgr:info 2>&1) 
  56.  
  57. #確保服務器回復正常 
  58. is_replying() { 
  59.         case "$status_text" in 
  60.                 *Denied.*) 
  61.                         echo "Error gettings metrics.(Access control on squid?)" 
  62.                         exit $ST_CR 
  63.                         ;; 
  64.                 *ERROR*) 
  65.                         echo "Error connecting to host" 
  66.                         exit $ST_CR 
  67.                         ;; 
  68.         esac 
  69.  
  70. #下面是獲取有用的信息: 
  71. #Available file descriptors 
  72. #CPU Usage 
  73. #Average HTTP requests per minute 
  74. #Hits as % of all requests by 5min 
  75. #Memory hits as % of hit requests by 5min 
  76. #Disk hits as % of hit requests by 5min 
  77. get_statistics() { 
  78.         available_descriptors=$(echo "${status_text}" | grep "Available number of file descriptors" | cut -d: -f 2 | sed -e 's/^[ \t]*//'
  79.         cpu_usage=$(echo "${status_text}" | grep "CPU Usage:" | cut -d: -f2 | cut -d% -f 1 | sed -e 's/^[ \t]*//'
  80.         avg_http_requests=$(echo "${status_text}" | grep "Average HTTP requests per minute since start" | cut -d: -f2 | cut -d% -f 1 | sed -e 's/^[ \t]*//'
  81.         all_requests_hits=$(echo "${status_text}" | grep "Hits as % of all requests" | awk '{print $8}' | awk -F\. '{print $1}'
  82.         memory_hits=$(echo "${status_text}" | grep "Memory hits as % of hit requests" | awk '{print $9}' | awk -F\. '{print $1}'
  83.         disk_hits=$(echo "${status_text}" | grep "Disk hits as % of hit requests" | awk '{print $9}' | awk -F\. '{print $1}'
  84.         #buid perfdata string 
  85.         perfdata="'avail_descriptors'=$available_descriptors 'cpu_usage'=$cpu_usage 'avg_http_requests'=$avg_http_requests 'all_requests_hits'=$all_requests_hits% 'memory_hits'=$memory_hits% 'disk_hits'=$disk_hits%" 
  86.  
  87. #報警對比的判斷 
  88. build_output() { 
  89.        out="Squid is serving an average of $avg_http_requests per minute since start with $available_descriptors file descriptors left and $cpu_usage percent of CPU use and Hits as $all_requests_hits% of all requests" 
  90.        if [ $available_descriptors -le $crit_descriptors ] || [ $all_requests_hits -le $crit_hits ] 
  91.         then 
  92.                 echo "CRITICAL - ${out} | ${perfdata}" 
  93.                 exit $ST_CR 
  94.        elif [ $available_descriptors -le $warn_descriptors ] || [ $all_requests_hits -le $warn_hits ] 
  95.         then 
  96.                 echo "WARNING - ${out} | ${perfdata}" 
  97.                 exit $ST_WR 
  98.         else 
  99.                 echo "OK - ${out} | ${perfdata}" 
  100.                 exit $ST_OK 
  101.         fi 
  102.  
  103. #主程序 
  104. #獲取參數 
  105. while test -n "$1"; do 
  106.         case "$1" in 
  107.                 --help|-h) 
  108.                         print_help 
  109.                         exit $ST_UK 
  110.                         ;; 
  111.                 --version|-v) 
  112.                         print_version 
  113.                         exit $ST_UK 
  114.                         ;; 
  115.                 --hostname|-H) 
  116.                         hostname=$2 
  117.                         shift 
  118.                         ;; 
  119.                 --port|-P) 
  120.                         port=$2 
  121.                         shift 
  122.                         ;; 
  123.                 -wd) 
  124.                         warn_descriptors=$2 
  125.                         shift 
  126.                         ;; 
  127.                 -cd) 
  128.                         crit_descriptors=$2 
  129.                         shift 
  130.                         ;; 
  131.                 -wh) 
  132.                         warn_hits=$2 
  133.                         shift 
  134.                         ;; 
  135.                 -ch) 
  136.                         crit_hits=$2 
  137.                         shift 
  138.                         ;; 
  139.                 *) 
  140.                         echo "Unknown argument: $1" 
  141.                         print_help 
  142.                         exit $ST_UK 
  143.                         ;; 
  144.         esac 
  145.         shift 
  146. done 
  147.  
  148. #sanity 
  149. if [ $warn_descriptors -lt $crit_descriptors ] || [ $warn_hits -lt $crit_hits ] 
  150. then 
  151.    echo "Warn descriptors must not be lower than critical and crit hits must not be lower than warn hits!" 
  152.    print_help 
  153. fi 
  154.  
  155. get_status_text 
  156. is_replying 
  157. get_statistics 
  158. build_output 

 

向AI問一下細節

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

AI

道孚县| 启东市| 桃源县| 平利县| 霍州市| 和硕县| 湛江市| 榆树市| 荔波县| 乌兰浩特市| 虎林市| 新津县| 鄂温| 宁武县| 淮滨县| 雅安市| 察隅县| 勃利县| 舟山市| 闸北区| 临安市| 永康市| 讷河市| 平乡县| 武安市| 额敏县| 加查县| 长沙县| 卢湾区| 甘谷县| 高州市| 玉屏| 淮阳县| 柏乡县| 东源县| 盘山县| 丘北县| 岳阳县| 托里县| 远安县| 三亚市|