加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl_Script_nagios_自定义插件

发布时间:2020-12-16 00:17:10 所属栏目:大数据 来源:网络整理
导读:今天要监控一个服务的进程___xl2tpd;该服务有几个IP就会有几个进程; 本来是想利用nagios的check_nrpe插件取值,然后判断报警,脚本写好了,本地测试正常,可是部署上去发现每次都取得反值,比如,现在有2个进程(2个IP),结果监控端取到值就是crit;郁闷啊

今天要监控一个服务的进程___xl2tpd;该服务有几个IP就会有几个进程;

本来是想利用nagios的check_nrpe插件取值,然后判断报警,脚本写好了,本地测试正常,可是部署上去发现每次都取得反值,比如,现在有2个进程(2个IP),结果监控端取到值就是crit;郁闷啊;不知道这个nagios的check_nrpe是什么机制,第一次自定义;

最后没办法使用了check_pros

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

这样是正常的,可是我的脚本感觉也没错,虽然写的粗糙了点;

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 "$outputn";
??? exit $back;

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

本地执行./check_srv.pl -m xl2tpd -c 2

xl2tpd_service is ok!

可是在监控端执行./check_nrpe -H hostip -c check_aa

就是不行,得到空值;

今天接着弄:

将日志打到一个文件中瞧瞧吧;

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

打开看看:

(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;

发现是权限问题:

在被监控端;

vim /etc/sudoers

nagios?? ALL=NOPASSWD:ALL (新增)

然后执行 ./check_nrpe -H hostip -c check_aa

发现OK了,哈哈,

那就到此为止吧

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读