ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ#!/usr/bin/perl -w # vim:ts=4 # # Check Proxmox iostats # This check will get disk usage statistics and print it in perfdata. # It does not receive any argument # It always returns OK # # Author: Ivan Alonso # Date: 30/10/2014 use v5.10; my $iostat_version = `iostat -V 2>&1`; my %headers; if ($iostat_version =~ / 10\.0/) { # Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util %headers = ( "DEVICE" => 0, "RRQMS" => 1, "WRQMS" => 2, "RS" => 3, "WS" => 4, "RKBS" => 5, "WKBS" => 6, "AVGRQSZ" => 7, "AVGQUSZ" => 8, "AWAIT" => 9, "RAWAIT" => 10, "WAWAIT" => 11, "SVCTM" => 12, "UTIL" => 13 ); } if ($iostat_version =~ / 9\.0/) { # Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util %headers = ( "DEVICE" => 0, "RRQMS" => 1, "WRQMS" => 2, "RS" => 3, "WS" => 4, "RKBS" => 5, "WKBS" => 6, "AVGRQSZ" => 7, "AVGQUSZ" => 8, "AWAIT" => 9, "SVCTM" => 10, "UTIL" => 11 ); } my @output = `iostat -x -N 10 2`; my %vmnames = map { $1 => $2 if $_ =~ /(\d+) (.*)/ } `qm list | grep -v VMID | awk '{ print \$1, \$2 }'`; my %values; for (@output) { chomp $_; my @line = split (m/\s+/, $_); next if $iostat_version =~ /10.0/ and @line ne 14; next if $iostat_version =~ /9.0/ and @line ne 12; next if $line[$headers{DEVICE}] eq ""; next if $line[$headers{DEVICE}] eq "Device:"; # Si el device esn un ironvms, obtenemos su ID $line[$headers{DEVICE}] = $1 if $line[$headers{DEVICE}] =~ /iron.*-(\d{3})-/; # Convertimos a decimales los valores devueltos $line[$headers{RS}] =~ s/,/\./; $line[$headers{WS}] =~ s/,/\./; $line[$headers{DEVICE}] =~ s/-/_/g; $values{$line[$headers{DEVICE}]} = $line[$headers{RS}] + $line[$headers{WS}]; } printf "OK ". scalar(keys(%values)) . " devices checked|"; foreach $device (keys(%values)) { $devicename = $device; $devicename = $vmnames{$device} if defined $vmnames{$device}; printf("%s=%s;", $devicename, $values{$device}); } exit 0;