91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

檢查指定進程內存使用情況的nagios腳本

發布時間:2020-06-28 01:21:28 來源:網絡 閱讀:1616 作者:上官戰 欄目:移動開發

由于近來線上環境的某些進程總是內存溢出,所以需要添加一下對于某些進程的內存使用情況監控,搜到的別人的腳本大都不太滿意,于是自己寫了個,代碼如下:


#!/bin/bash
HELP(){
    echo " Usage: $0 -p /var/run/pidfile -w used% -c used%"
    echo " Exam: $0 -p /var/run/pidfile -w 85 -c 90"
    exit 3
}
OK=0 ; WA=1 ; CR=2 ;UN=3 ; WAR=$4 ; CRI=$6 ; MI=${7:-0.9} ; MX=${8:-0.8}
#MX:性能數據的CRITICAL線,計算方式為內存總量乘以MX值,此處為0.9等于 當前系統總內存 * 0.9,取結果整數部分
#MI:性能數據的WARNING線,計算方式為內存總量乘以MX值,此處為0.8等于 當前系統總內存 * 0.8,取結果整數部分
DATE="date +%Y-%m-%d~%k:%M:%S" ; NUL=/dev/null
TAG=$1 ; [ "$TAG" != "-p" ] && HELP
PID=$2
[ ! -f "$PID" ] && echo "`$DATE` Error: $PID not exist." && HELP
if ! ps aux|grep "\<`cat $PID`\>"|grep -v grep &>$NUL;then
    echo "`$DATE` Error: `cat $PID` not exist."
    HELP
else
    TOTAL=`/usr/bin/free -m|grep Mem|awk '{print $2}'`
    MIN=`echo "$TOTAL * $MI"|/usr/bin/bc|awk -F. '{print $1}'`
    MAX=`echo "$TOTAL * $MX"|/usr/bin/bc|awk -F. '{print $1}'`
    OSM=`/usr/bin/free -m|grep "\<cache\>"|awk '{print $NF}'`
    ID=`cat $PID`
    BMEM=`/usr/bin/top -bn 1|grep "\<$ID\>"|awk '{print $10}'`
    declare -u MMEM=`/usr/bin/top -bn 1|grep "\<$ID\>"|awk '{print $6}'`
    RES=`echo "$BMEM > $CRI"|/usr/bin/bc`
    if [ "$RES" -eq 1 ];then
        echo "CRITICAL - PID:$ID Memory usage = $BMEM% ["$MMEM"B]. OS free memory="$OSM"MB|Used="$MMEM"B;"$MIN"MB;"$MAX"MB;0;"$TOTAL"MB"
        exit $CR
    fi
    RES=`echo "$BMEM > $WAR"|/usr/bin/bc`
    if [ "$RES" -eq 1 ];then
        echo "WARNING - PID:$ID Memory usage = $BMEM% ["$MMEM"B]. OS free memory="$OSM"MB|Used="$MMEM"B;"$MIN"MB;"$MAX"MB;0;10877MB"
        exit $WA
    else
        echo "OK - PID:$ID Memory usage = $BMEM% ["$MMEM"B]. OS free memory="$OSM"MB|Used="$MMEM"B;"$MIN"MB;"$MAX"MB;0;10877MB"
        exit $OK
    fi
fi
HELP
##########
##########
##能不能吐槽一下這個代碼編輯器???
##########
##########


測試使用如下:

./check_mem_pid.sh -p /var/run/hadoop/hdfs/hadoop-hdfs-namenode.pid -w 80 -c 90
OK - PID:5534 Memory usage = 6.6% [720MB]. OS free memory=9179MB|Used=720MB;9789MB;8701MB;0;10877MB

# -w 指內存使用的warning比例,-c為critical,其大小均為top -bn 1取出的指定pid的第10列字段


不足之處,歡迎指正...


昨天同事又提了點要求,說能不能給這個進程指定可以內存的大小,在可用的范圍內監控,所以,今天又修改了下,在nagios服務端執行,結果如下:

# /usr/lib64/nagios/plugins/check_nrpe -H node63 -c check_test -a /var/run/hadoop/hdfs/hadoop-hdfs-namenode.pid 80 90 2048
OK - 719.59MB / 2048MB. (35.14% used)|Used=35.14%;1843MB;1638MB;0;2048MB
# 第一個參數是進程pid文件,第二個是warning報警值,第二個critical報警值(85就是已用85就開始報警),最后一個給監聽的目標進程共分配多少內存,單位MB。

在本地執行則直接使用腳本如下:

# ./check_mem_pid.sh -p /var/run/hadoop/hdfs/hadoop-hdfs-namenode.pid -w 30 -c 40 -t 2048
WARNING - 719.53MB / 2048MB. (35.13% used)|Used=35.13%;1843MB;1638MB;0;2048MB



代碼就不再列出了,直接上傳到附件了(帶有nagios相關使用配置文檔哦,親),有興趣的同學自行下載哈。

附件:http://down.51cto.com/data/2363564
向AI問一下細節

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

AI

清徐县| 水富县| 枣庄市| 华容县| 蓬安县| 保山市| 平顶山市| 仪征市| 龙井市| 舒城县| 平安县| 闵行区| 皮山县| 大渡口区| 怀安县| 城口县| 武夷山市| 板桥市| 开化县| 光山县| 彰化县| 庆城县| 海晏县| 宜兰县| 楚雄市| 曲松县| 忻城县| 宜宾市| 灵宝市| 齐齐哈尔市| 巍山| 隆子县| 南宁市| 烟台市| 辉南县| 昌江| 体育| 西华县| 黄龙县| 阳东县| 汾阳市|