perl - 如何从 Nagios-Report Perl 模块打印出 Nagios 服务 UP 时间百分比

标签 perl monitoring perl-module nagios

我可以打印出主持人Nagios-Report Perl Module 开始的时间百分比使用以下代码:

#!/usr/bin/perl
use strict ;
use Nagios::Report ;
my $x = Nagios::Report->new(q<local_cgi localhost nagiosadmin>)
  or die "Can't construct Nagios::Report object." ;
$x->mkreport(
                [ qw(HOST_NAME PERCENT_TOTAL_TIME_UP) ],

                sub {
                        my %F = @_; my $u = $F{PERCENT_TOTAL_TIME_UP}; $u =~ s/%//;
                    },
                        0,

                sub {
                        my $F = shift @_ ;
                }
) ;
$x->debug_dump ;

但是我怎么才能打印出服务 UP 时间百分比?我的意思是只输出百分比值。

我尝试了很多选择,但无法做到正确。

最佳答案

这将生成服务正常运行时间报告,但我怎样才能只检索正常运行时间百分比值而不是完整报告?

#!/usr/bin/perl
use strict ;

use Nagios::Report ;

my $x = Nagios::Report->new(
                            # Data source
                q<local_cgi localhost nagiosadmin>,
                            # Report period
                [ qw(24x7) ],
                            # Time period
                'last7days',
                            # Service report
                1,
                            # Pre-filter 
                sub { my %F = @_; my $u = $F{PERCENT_TOTAL_TIME_OK}; $u =~ s/%//; $u < 100 }
               )
  or die "Can't construct Nagios::Report object." ;

$x->mkreport(
        [
        qw(
            HOST_NAME
            PERCENT_TOTAL_TIME_OK
            DOWN
            UP
            OUTAGE
          )
        ],

        sub { my %F = @_; my $u = $F{PERCENT_TOTAL_TIME_OK}; $u =~ s/%//; $u < 100 },

        undef,

        undef,

        1,

) ;

$x->debug_dump() ;

关于perl - 如何从 Nagios-Report Perl 模块打印出 Nagios 服务 UP 时间百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14281396/

相关文章:

perl - perl 中的异常处理

Perl `use` - 导入没有被调用两次?

perl - 如何使用 Perl 修改 CSV 文件中的字段?

perl - 让 perl 脚本使用多个辅助脚本中的一个

regex - 匹配模式后打印特定的行数

linux - 跟踪和监控包或执行的文件事件?

java - 监视文件以查找哪个线程正在修改文件

elasticsearch - 按术语分组的堆叠 View 不适用于Grafana-Framework和Elasticsearch

Perl-如何根据不同的字符长度拆分一行

perl - 在 perl 中语言环境设置是全局的吗?