#!/usr/bin/perl use strict; use Net::SNMP; use Getopt::Long; my %opt; GetOptions( "host=s" => \$opt{'host'}, "community=s" => \$opt{'community'}, "warn=i" => \$opt{'warn'}, "crit=i" => \$opt{'crit'}); unless ($opt{'host'} && $opt{'community'} && $opt{'warn'} && $opt{'crit'}) { print "Usage: $0 --host --community --warn --crit \n\n"; exit 3; } my($session, $error) = Net::SNMP->session(-hostname => $opt{'host'}, -community => $opt{'community'} ); unless(defined($session)) { print "Critical - Could not establish SNMP session\n"; exit 2; } my $oid_cpu_5sec = '1.3.6.1.4.1.9.2.1.56.0'; my $oid_cpu_1min = '1.3.6.1.4.1.9.2.1.57.0'; my $oid_cpu_5min = '1.3.6.1.4.1.9.2.1.58.0'; my $result = $session->get_request(-varbindlist => [$oid_cpu_5sec,$oid_cpu_1min,$oid_cpu_5min] ); my $cpu_5sec = $result->{$oid_cpu_5sec}; my $cpu_1min = $result->{$oid_cpu_1min}; my $cpu_5min = $result->{$oid_cpu_5min}; $session->close; print "CPU Utilization 5sec: ".$cpu_5sec."% 1min: ".$cpu_1min."% 5min: ".$cpu_5min."%\n"; exit 2 if $result->{$oid_cpu_5sec} > $opt{'crit'}; exit 1 if $result->{$oid_cpu_5sec} > $opt{'warn'}; exit 0;