Index: bb-ESXi.pl
===================================================================
--- bb-ESXi.pl (revision 1)
+++ bb-ESXi.pl (working copy)
@@ -19,6 +19,8 @@
# along with this program. If not, see .
#
+use strict;
+use warnings;
use Getopt::Long;
use HTML::Entities;
use Date::Manip;
@@ -36,34 +38,47 @@
my $today = `date`;
chomp $today;
-my $BB = "/usr/local/xymon/client/bin/bb";
+my $BB = "$ENV{BBHOME}/bin/bb";
my $HOST = "localhost";
+open PF,"$ENV{BBHOME}/.esxpass"
+ or die "Couldn't open $ENV{BBHOME}/.esxpass";
+my $pass = ;
+chomp $pass;
+close PF;
my %opts = (host => undef,
userid => "root",
- password => "Passw0rd");
+ password => $pass);
my $sendit = "Yes";
GetOptions (\%opts,
"host=s");
-@VERSION = `$vcli/apps/host/hostinfo.pl --server $opts{host} --username $opts{userid} --password $opts{password}`;
+my @VERSION = `$vcli/apps/host/hostinfo.pl --server $opts{host} --username $opts{userid} --password $opts{password}`;
+my $version;
+my $boottime;
for ( @VERSION ) {
- if (/Software/) { @version = split(":", $_); }
- $version = @version[1];
+ print "DBGV: $_" if $debug;
+ if (/Software/) { my @version = split(":", $_);
+ $version = $version[1];
$version =~ s/^\s+//;
- chomp($version);
- if (/BootTime/) { @boot = split(":", $_); }
- $boot = @boot[1].":".@boot[2].":".@boot[3];
+ chomp($version); }
+ if (/BootTime/) { my @boot = split(":", $_);
+ my $boot = $boot[1].":".$boot[2].":".$boot[3];
$boot =~ s/^\s+//;
$boot =~ s/T/ /;
$boot =~ s/Z//;
chomp($boot);
- ($boottime,$crap) = split("\\.", $boot);
+ ($boottime,undef) = split("\\.", $boot); }
}
+my ($logheader,$logfileheader,$logtail);
+my @logmessage;
+my @DF;
+my @PORTARRAY;
+my @PROCARRAY;
if ( $version =~ /ESXi 4/ ) {
for ( @esxi4logs ) {
`$vcli/apps/general/fileaccess.pl --server $opts{host} --username $opts{userid} --password $opts{password} --localpath /tmp/$opts{host}-$_ --remotefilename $_ --filetype config --operation get`;
@@ -102,7 +117,7 @@
`rm -Rf /tmp/$opts{host}-$_`;
}
-@PORTS = `$vcli/bin/esxcli/esxcli --server $opts{host} --username=$opts{userid} --password=$opts{password} network ip connection list`;
+my @PORTS = `$vcli/bin/esxcli/esxcli --server $opts{host} --username=$opts{userid} --password=$opts{password} network ip connection list`;
for ( @PORTS ) {
if ($_ =~ /^udp/) { }
else { push(@PORTARRAY, $_); }
@@ -110,7 +125,7 @@
unshift(@PORTARRAY, "Active Internet connections (servers and established)\n");
unshift(@PORTARRAY, "[ports]\n");
-@PROCS = `$vcli/bin/esxcli/esxcli --server $opts{host} --username=$opts{userid} --password=$opts{password} system process list`;
+my @PROCS = `$vcli/bin/esxcli/esxcli --server $opts{host} --username=$opts{userid} --password=$opts{password} system process list`;
shift(@PROCS);
shift(@PROCS);
for ( @PROCS ) {
@@ -124,13 +139,15 @@
unshift(@PROCARRAY, "Id\tCartel Id\tName\tSecurity Domain\tCMD\n");
unshift(@PROCARRAY, "[ps]\n");
-@FILESYSTEMS = `$vcli/bin/esxcli/esxcli --server $opts{host} --username=$opts{userid} --password=$opts{password} storage filesystem list`;
+my @FILESYSTEMS = `$vcli/bin/esxcli/esxcli --server $opts{host} --username=$opts{userid} --password=$opts{password} storage filesystem list`;
shift(@FILESYSTEMS);
shift(@FILESYSTEMS);
+my $i;
for ( @FILESYSTEMS ) {
$i++;
use bytes;
-($mountpoint, $volume, $uuid, $mounted, $fstype, $fssize, $fsfree, $fsmaybe) = split(" ", $_);
+my($mountpoint, $volume, $uuid, $mounted, $fstype, $fssize, $fsfree, $fsmaybe) = split(" ", $_);
+my($capacity,$caphuman,$fssizek,$fsfreek,$used);
if ($fsmaybe) {
$capacity = 100 - ($fsmaybe / $fsfree) * 100;
$caphuman = sprintf("%.0f", $capacity);
@@ -161,38 +178,39 @@
while (length($used) < 10) { $used =~ s/^/ /; }
while (length($fstype) < 15) { $fstype .= " "; }
while (length($caphuman) < 5) { $caphuman =~ s/^/ /; }
-$DFSTRING = "$fstype$fssizek$used$fsfreek $caphuman% /vmfs/volumes/$volume\n";
+my $DFSTRING = "$fstype$fssizek$used$fsfreek $caphuman% /vmfs/volumes/$volume\n";
push(@DF, $DFSTRING);
}
unshift(@DF, "Filesystem 1024-blocks Used Available Capacity Mounted on\n");
unshift(@DF, "[df]\n");
}
-@ESXTOP = `echo "$opts{password}"|/usr/bin/resxtop --server $opts{host} --username $opts{userid} -n 1 -d 2 -a -b`;
+my @ESXTOP = `echo "$opts{password}"|/usr/bin/resxtop --server $opts{host} --username $opts{userid} -n 1 -d 2 -a -b 2>/dev/null`;
-@HEADERS = split("\,", @ESXTOP[0]);
-@VALUES = split("\,", @ESXTOP[1]);
+my @HEADERS = split("\,", $ESXTOP[0]);
+my @VALUES = split("\,", $ESXTOP[1]);
-@VALUES[0] =~ s/\"//g;
+$VALUES[0] =~ s/\"//g;
-($ESXDATE,$ESXCLOCK) = split(" ", @VALUES[0]);
+my ($ESXDATE,$ESXCLOCK) = split(" ", $VALUES[0]);
-$ESXBOOT = UnixDate($boottime,'%s');
-$ESXTIME = UnixDate(@VALUES[0],'%s');
-$NOWTIME = UnixDate($today,'%s');
-$TIMEDIFF = $ESXTIME - $NOWTIME;
+my $ESXBOOT = UnixDate($boottime,'%s');
+my $ESXTIME = UnixDate($VALUES[0],'%s');
+my $NOWTIME = UnixDate($today,'%s');
+my $TIMEDIFF = $ESXTIME - $NOWTIME;
-$UPSECS = $ESXTIME - $ESXBOOT;
+my $UPSECS = $ESXTIME - $ESXBOOT;
-$FIRST = $UPSECS / 86400;
-($UPDAYS,$SECOND) = split("\\.",$FIRST);
-$THIRD = ($FIRST - $UPDAYS) * 86400;
-$FOURTH = $THIRD / 3600;
-($UPHOURS, $FIFTH) = split("\\.",$FOURTH);
-$SIXTH = ($FOURTH - $UPHOURS) * 3600;
-$SEVENTH = $SIXTH / 60;
-($UPMINS, $EIGTH) = split("\\.", $SEVENTH);
-$UPSECONDS = sprintf("%.0f", ($SEVENTH - $UPMINS) * 60);
+my $FIRST = $UPSECS / 86400;
+my ($UPDAYS,$SECOND) = split("\\.",$FIRST);
+my $THIRD = ($FIRST - $UPDAYS) * 86400;
+my $FOURTH = $THIRD / 3600;
+my ($UPHOURS, $FIFTH) = split("\\.",$FOURTH);
+my $SIXTH = ($FOURTH - $UPHOURS) * 3600;
+my $SEVENTH = $SIXTH / 60;
+my ($UPMINS, $EIGTH) = split("\\.", $SEVENTH);
+my $UPSECONDS = sprintf("%.0f", ($SEVENTH - $UPMINS) * 60);
+my $UPTIME;
if ($UPDAYS eq '0') {
if ($UPHOURS eq '0') {
@@ -205,16 +223,19 @@
}
else { $UPTIME = $UPDAYS." day(s)"; }
-$ELEMENTS = scalar(@HEADERS);
+my $ELEMENTS = scalar(@HEADERS);
if ($dump eq "yes") {open FILE, ">$opts{host}.out";}
-for ($i=0;$i<$ELEMENTS;$i++) {
+my ($overcommit1,$overcommit5,$overcommit15,$totalmemory,$kernelmemory,$nonkernelmemory,$freememory,$swapused);
+my $hostactualmemory = 0;
+my ($cpuload1min,$cpuload5min,$cpuload15min,$cpuproctime,$cpuutiltime,$cpucoretime,$proccount);
+for (my $i=0;$i<$ELEMENTS;$i++) {
-$LINE = "@HEADERS[$i]\\@VALUES[$i]";
+my $LINE = "$HEADERS[$i]\\$VALUES[$i]";
$LINE =~ s/\"//g;
$LINE =~ s/\\\\//g;
-($host, $subsystem, $item, $value) = split(/\\/, $LINE);
+my ($host, $subsystem, $item, $value) = split(/\\/, $LINE);
if ($dump eq "yes") {print FILE $LINE."\n";}
@@ -250,15 +271,18 @@
}
}
-$usedtotal = $totalmemory - $freememory;
+my $usedtotal = $totalmemory - $freememory;
+my $usedtotalpct;
if ($totalmemory > 0) { $usedtotalpct = 100 - ($freememory / $totalmemory) * 100;}
$usedtotalpct = sprintf("%.0f", $usedtotalpct);
-$freekernel = $kernelmemory - $hostactualmemory;
+my $freekernel = $kernelmemory - $hostactualmemory;
+my $kernelpct;
if ($kernelmemory > 0) {$kernelpct = 100 - ($freekernel / $kernelmemory) * 100;}
$kernelpct = sprintf("%.0f", $kernelpct);
-$swapmax = $kernelmemory * 2;
+my $swapmax = $kernelmemory * 2;
+my $swappct;
if ($swapmax > 0) {$swappct = ($swapused / $swapmax) * 100;}
$swappct = sprintf("%.0f", $swappct);
@@ -267,28 +291,28 @@
$hostactualmemory = sprintf("%.0f", $hostactualmemory);
$swapused = sprintf("%.0f", $swapused);
-$totalmemoryk = $totalmemory * 1024;
-$usedtotalk = $usedtotal * 1024;
-$freememoryk = $freememory * 1024;
-$swapmaxk = $swapmax * 1024;
-$swapusedk = $swapused * 1024;
-$swapfreek = $swapmaxk - $swapusedk;
-$kernelmemk = $kernelmemory * 1024;
-$freekernelk = $freekernel * 1024;
-$hostactualmemoryk = $hostactualmemory * 1024;
+my $totalmemoryk = $totalmemory * 1024;
+my $usedtotalk = $usedtotal * 1024;
+my $freememoryk = $freememory * 1024;
+my $swapmaxk = $swapmax * 1024;
+my $swapusedk = $swapused * 1024;
+my $swapfreek = $swapmaxk - $swapusedk;
+my $kernelmemk = $kernelmemory * 1024;
+my $freekernelk = $freekernel * 1024;
+my $hostactualmemoryk = $hostactualmemory * 1024;
-$cpuidle = 100 - ($cpuproctime + $cpuutiltime);
+my $cpuidle = 100 - ($cpuproctime + $cpuutiltime);
-$esxlocal = UnixDate(@VALUES[0],"%Y-%m-%d %T %Z");
-$utctime = UnixDate(@VALUES[0],"%Y-%m-%d %T %Z");
-$epochtime = UnixDate(@VALUES[0],'%s');
-$datesec = UnixDate(@VALUES[0], "%a %b %T %Z %Y");
+my $esxlocal = UnixDate($VALUES[0],"%Y-%m-%d %T %Z");
+my $utctime = UnixDate($VALUES[0],"%Y-%m-%d %T %Z");
+my $epochtime = UnixDate($VALUES[0],'%s');
+my $datesec = UnixDate($VALUES[0], "%a %b %T %Z %Y");
-$usercpu = sprintf("%.0f", $cpuutiltime);
-$syscpu = sprintf("%.0f", $cpuproctime);
-$idlecpu = sprintf("%.0f", $cpuidle);
-$swapusedkvm = sprintf("%.0f", $swapusedk);
-$swapfreekvm = sprintf("%.0f", $swapfreek);
+my $usercpu = sprintf("%.0f", $cpuutiltime);
+my $syscpu = sprintf("%.0f", $cpuproctime);
+my $idlecpu = sprintf("%.0f", $cpuidle);
+my $swapusedkvm = sprintf("%.0f", $swapusedk);
+my $swapfreekvm = sprintf("%.0f", $swapfreek);
$freekernelk = sprintf("%.0f", $freekernelk);
while (length($swapusedkvm) < 6) { $swapusedkvm =~ s/^/ /; }
@@ -309,7 +333,7 @@
while (length($swapusedk) < 11) { $swapusedk =~ s/^/ /; }
while (length($swapfreek) < 11) { $swapfreek =~ s/^/ /; }
-$msg = "linux
+my $msg = "linux
[date]
$datesec
[uname]
@@ -320,14 +344,11 @@
$ESXCLOCK up $UPDAYS days, $UPHOURS:$UPMINS, 0 users, load average: $cpuload1min, $cpuload5min, $cpuload15min
[who]
@DF
-[mount]
[free]
total used free shared buffers cached
Mem:$totalmemoryk$usedtotalk$freememoryk$hostactualmemoryk$kernelmemk$freekernelk
-/+ buffers/cache:$kernelmemk$freekernelk
Swap:$swapmaxk$swapusedk$swapfreek
-[ifconfig]
-[route]
[netstat]
@PORTARRAY
[ifstat]
@@ -349,7 +370,7 @@
local: $esxlocal
UTC: $utctime";
-$color = lc($cpustatus);
+#my $color = lc($cpustatus);
if ($debug > 0) {
print $msg;
Index: bb-ESX.pl
===================================================================
--- bb-ESX.pl (revision 1)
+++ bb-ESX.pl (working copy)
@@ -48,13 +48,20 @@
my $color = "green";
my $today = `date`;
-my $BB = "/usr/local/xymon/client/bin/bb";
-my $HOST = "localhost";
+my $BB = "$ENV{BBHOME}/bin/bb";
+#my $BB = "echo";
+my $HOST = $ENV{BBSERVERHOSTNAME};
+open PF,"$ENV{BBHOME}/.esxpass"
+ or die "Couldn't open $ENV{BBHOME}/.esxpass";
+my $pass = ;
+chomp $pass;
+close PF;
+
my %opts = (host => undef,
userid => "root",
- password => "Passw0rd");
+ password => $pass);
GetOptions (\%opts,
"host=s");