中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

nagios自寫插件監(jiān)控某個程序使用物理內(nèi)存情況-創(chuàng)新互聯(lián)

前幾天在工作中遇到了一個問題,nagios自寫插件,單獨測試命令和插件沒有問題,但是通過check_nrpe插件調(diào)用自寫插件的時候會出現(xiàn)問題。

創(chuàng)新互聯(lián)是一家專業(yè)提供富順企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、H5響應(yīng)式網(wǎng)站、小程序制作等業(yè)務(wù)。10年已為富順眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。

下面是我寫的一個插件,主要功能是:輸入一個端口號,就可以知道監(jiān)聽該端口號的程序使用物理內(nèi)存情況。

#!/bin/bash
if [ $# -ne 1 ];then
    echo "Usage:$0 num1"
    exit 5;
fi

PORT="$1"
LINE=$(sudo netstat -lnutp|awk -F '[: ]+' '{print $5}'|grep -w ${PORT}|wc -l)
if [ $LINE -eq 1 ];then
   PID=$(sudo netstat -lnutp|awk -F '[: ]+' '$5=='$PORT'{print $(NF-1)}'|awk -F '/' '{print $1}')
   PS_NAME=$(sudo netstat -lnutp|awk -F '[: ]+' '$5=='$PORT'{print $(NF-1)}'|awk -F '/' '{print $2}' )
   MEM=$(ps -p ${PID} -o rss|grep -v RSS)
   MEMD=$(expr ${MEM}  "*" 1024)
   echo "OK port-${PORT} ${PS_NAME} use mem ${MEMD}b |MEM=${MEMD}b;5000;10000;0"
   exit 0
else
   
   echo "port-${PORT} is not  exist"
   exit 2

fi

編寫該插件的時候有兩個細節(jié)需要注意

1、nagios賬號執(zhí)行netstat命令時沒有權(quán)限查看其它賬號啟動的程序。所以需要用sudo ,所以在/etc/sudoers添加如下內(nèi)容:

nagios ALL=(ALL) NOPASSWD: /bin/netstat

使用nagios賬號免密碼執(zhí)行/bin/netstat命令。

2、查看某個程序使用物理內(nèi)存情況:

我的80端口nginx程序PID是:643

方法一:

ps -p PID -o rss

[root@nagios-server libexec]# ps -p 643 -o rss
  RSS
 2700

方法二:

cat /proc/PID/status

[root@nagios-server libexec]# cat /proc/643/status | grep RSS
VmRSS:      2700 kB

測試:

我們用80端口測試:

首先我們查看80端口是否開啟和監(jiān)控的程序:

[root@nagios-server libexec]# netstat -lntp|awk -F '[ :]+' '$5=="80"{print}'
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      643/nginx

1、測試插件:

[root@nagios-server libexec]# sh check_ps_mem.sh 80
OK port-80 nginx use mem 2764800b |MEM=2764800b;5000;10000;0

由以上結(jié)果可知,80端口的nginx程序使用的物理內(nèi)存情況插件執(zhí)行成功。

2、編輯/usr/local/nagios/etc/nrpe.cfg文件:

command[check_ps_mem]=/usr/local/nagios/libexec/check_ps_mem.sh 80

3、用check_nrpe插件測試:

[root@nagios-server libexec]# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_ps_mem               
port-80 is not  exist

用root賬號,通過check_nrpe沒有抓到數(shù)據(jù);

4、用nagios賬號執(zhí)行check_nrpe測試:

[root@nagios-server libexec]# sudo -u nagios /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_ps_mem
port-80 is not  exist

結(jié)果:用nagios賬號也是是沒有抓到數(shù)據(jù)。如果nagios賬號無法抓取到數(shù)據(jù),就算添加到監(jiān)控也是無法抓到數(shù)據(jù)。

問題原因:

腳本里/bin/netstat 命令是用sudo執(zhí)行的。sudo無法在后端執(zhí)行,執(zhí)行sudo時要開啟tty終端的。用check_nrpe調(diào)用腳本時,是在后端執(zhí)行的sudo  。 好了,問題原因找到了。

解決方法:

在/etc/sudoers文件里添加如下內(nèi)容:

Defaults:nagios !requiretty

再次測試:

添加  Defaults:nagios !requiretty 后測試:

[root@nagios-server libexec]# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_ps_mem               
OK port-80 nginx use mem 2764800b |MEM=2764800b;5000;10000;0


[root@nagios-server libexec]# sudo -u nagios /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_ps_mem
OK port-80 nginx use mem 2764800b |MEM=2764800b;5000;10000;0

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

當(dāng)前標題:nagios自寫插件監(jiān)控某個程序使用物理內(nèi)存情況-創(chuàng)新互聯(lián)
本文來源:http://www.rwnh.cn/article22/doehjc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)、外貿(mào)建站、網(wǎng)站營銷、ChatGPT、App設(shè)計外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)
峡江县| 华宁县| 乐山市| 武安市| 德令哈市| 杭锦后旗| 恩施市| 饶阳县| 兰坪| 承德县| 休宁县| 平遥县| 洛宁县| 柳林县| 内乡县| 武乡县| 昭苏县| 天长市| 屏东市| 金塔县| 榕江县| 天等县| 那曲县| 吴堡县| 浪卡子县| 宿松县| 高淳县| 铁力市| 南靖县| 自贡市| 江城| 卓资县| 溆浦县| 梅州市| 美姑县| 铁岭县| 建瓯市| 琼中| 保山市| 荣昌县| 尉氏县|