溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

perl_Script_nagios_自定義插件

發(fā)布時(shí)間:2020-07-10 04:37:18 來(lái)源:網(wǎng)絡(luò) 閱讀:468 作者:西索oO 欄目:移動(dòng)開(kāi)發(fā)

今天要監(jiān)控一個(gè)服務(wù)的進(jìn)程___xl2tpd;該服務(wù)有幾個(gè)IP就會(huì)有幾個(gè)進(jìn)程;

本來(lái)是想利用nagios的check_nrpe插件取值,然后判斷報(bào)警,腳本寫(xiě)好了,本地測(cè)試正常,可是部署上去發(fā)現(xiàn)每次都取得反值,比如,現(xiàn)在有2個(gè)進(jìn)程(2個(gè)IP),結(jié)果監(jiān)控端取到值就是crit;郁悶??;不知道這個(gè)nagios的check_nrpe是什么機(jī)制,第一次自定義;

最后沒(méi)辦法使用了check_pros

command[check_aa]=/usr/local/nagios/libexec/check_procs -c 2:2 -a '/usr/sbin/xl2tpd'

這樣是正常的,可是我的腳本感覺(jué)也沒(méi)錯(cuò),雖然寫(xiě)的粗糙了點(diǎn);

vim check_srv.pl

#!/usr/bin/perl

use Getopt::Std;
use strict;

use vars qw($opt_m $opt_c $opt_h);
getopts('m:c:h');
my ($srv_name,$srv_count,$back,$output,$help);
my $sr_count=`netstat -naputl |grep -c "$opt_m"`;
my %re;
   $re{ok}=0;
   $re{crit}=2;
& main();

sub main {
    get_args();
    check_result();
    warning();
}

sub get_args{
    $srv_name = $opt_m if $opt_m;
    $srv_count = $opt_c if $opt_c;
    &Usage() if (!defined($srv_name) || !defined($srv_count));
    }

sub check_result {
    if ($sr_count == $srv_count) {
        $back=$re{ok};
        $output="$srv_name service is ok";
    }else{
        $back=$re{crit};
        $output="$srv_name service is crit";
    }
}
sub warning{
    print "$output\n";
    exit $back;

    }   
sub Usage {
    print << "END";
    ./check_service.pl -m <service_name> -c <service_counts> -h <help>
END
    exit 2;
}
##################################END##########################################

本地執(zhí)行./check_srv.pl -m xl2tpd -c 2

xl2tpd_service is ok!

可是在監(jiān)控端執(zhí)行./check_nrpe -H hostip -c check_aa

就是不行,得到空值;

今天接著弄:

將日志打到一個(gè)文件中瞧瞧吧;

command[check_aa]=/usr/local/nagios/libexec/check_srv.pl -m xl2tpd -c 2  >> /tmp/output 2>&1

打開(kāi)看看:

(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
xl2tpd_service is crit;

發(fā)現(xiàn)是權(quán)限問(wèn)題:

在被監(jiān)控端;

vim /etc/sudoers

nagios   ALL=NOPASSWD:ALL (新增)

然后執(zhí)行 ./check_nrpe -H hostip -c check_aa

發(fā)現(xiàn)OK了,哈哈,

那就到此為止吧

 

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI