diff --git a/home/backuppc/zabbix-discover-backuppc.pl b/home/backuppc/zabbix-discover-backuppc.pl deleted file mode 100644 index 192dd09..0000000 --- a/home/backuppc/zabbix-discover-backuppc.pl +++ /dev/null @@ -1,93 +0,0 @@ -#!/usr/bin/perl - -# Backuppc -use lib "/usr/local/BackupPC/lib"; -use BackupPC::Lib; -use BackupPC::CGI::Lib; - -#Other -use Data::Dumper; - -# Globals -$bpc = BackupPC::Lib->new(); -$hosts = $bpc->HostInfoRead(); - -# Collect Data -GetStatusInfo("jobs queueLen info"); -&hosts_info(); - - -# Functions -sub hosts_info -{ - print '{ "data":['."\n"; - my $comma=''; - while ( my ($host, $value) = each(%$hosts) ) - { - print $comma.' {"{#BACKUPHOST}":"'.$host.'"}'."\n"; - $comma=","; - } - print " ]}"; -} - - - -sub GetStatusInfo -{ - my($status) = @_; - ServerConnect(); - %Status = () if ( $status =~ /\bhosts\b/ ); - %StatusHost = () if ( $status =~ /\bhost\(/ ); - my $reply = $bpc->ServerMesg("status $status"); - $reply = $1 if ( $reply =~ /(.*)/s ); - eval($reply); - # ignore status related to admin and trashClean jobs - if ( $status =~ /\bhosts\b/ ) { - foreach my $host ( grep(/admin/, keys(%Status)) ) { - delete($Status{$host}) if ( $bpc->isAdminJob($host) ); - } - delete($Status{$bpc->trashJob}); - } -} - -# -# Returns the list of hosts that should appear in the navigation bar -# for this user. If $getAll is set, the admin gets all the hosts. -# Otherwise, regular users get hosts for which they are the user or -# are listed in the moreUsers column in the hosts file. -# -sub GetUserHosts -{ - my($getAll) = @_; - my @hosts; - - if ( $getAll ) { - @hosts = sort keys %$Hosts; - } else { - @hosts = sort grep { $Hosts->{$_}{user} eq $User || - defined($Hosts->{$_}{moreUsers}{$User}) } keys(%$Hosts); - } - return @hosts; -} - - -sub ServerConnect -{ - # - # Verify that the server connection is ok - # - return if ( $bpc->ServerOK() ); - $bpc->ServerDisconnect(); - if ( my $err = $bpc->ServerConnect($Conf{ServerHost}, $Conf{ServerPort}) ) { - if ( CheckPermission() - && -f $Conf{ServerInitdPath} - && $Conf{ServerInitdStartCmd} ne "" ) { - my $content = eval("qq{$Lang->{Admin_Start_Server}}"); - Header(eval("qq{$Lang->{Unable_to_connect_to_BackupPC_server}}"), $content); - Trailer(); - exit(1); - } else { - ErrorExit(eval("qq{$Lang->{Unable_to_connect_to_BackupPC_server}}")); - } - } -} diff --git a/src/DEBIAN/conffiles b/src/DEBIAN/conffiles deleted file mode 100644 index a3c258c..0000000 --- a/src/DEBIAN/conffiles +++ /dev/null @@ -1 +0,0 @@ -/etc/sudoers.d/zabbix_backuppc diff --git a/src/DEBIAN/control b/src/DEBIAN/control deleted file mode 100644 index fe4d961..0000000 --- a/src/DEBIAN/control +++ /dev/null @@ -1,10 +0,0 @@ -Package: zabbix-backuppc -Version: 1.0.0-2019071103 -Section: net -Priority: optional -Architecture: all -Depends: zabbix-agent (>=4.0), zabbix-sender (>=4.0) -Maintainer: Gabriele Vivinetto -Description: Zabbiz agent scripts to monitor BackupPC - These scripts monitor a BackupPC server - diff --git a/src/DEBIAN/postinst b/src/DEBIAN/postinst deleted file mode 100755 index 9d00cf7..0000000 --- a/src/DEBIAN/postinst +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/sh -# postinst script for tcng-config -# -# see: dh_installdeb(1) - -set -e - -# summary of how this script can be called: -# * `configure' -# * `abort-upgrade' -# * `abort-remove' `in-favour' -# -# * `abort-remove' -# * `abort-deconfigure' `in-favour' -# `removing' -# -# for details, see http://www.debian.org/doc/debian-policy/ or -# the debian-policy package - - -case "$1" in - configure) - /bin/sed -i -e 's/# EnableRemoteCommands=0/EnableRemoteCommands=1/' /etc/zabbix/zabbix_agentd.conf - /usr/sbin/service zabbix-agent restart - ;; - - abort-upgrade|abort-remove|abort-deconfigure) - ;; - - *) - echo "postinst called with unknown argument \`$1'" >&2 - exit 1 - ;; -esac - -# dh_installdeb will replace this with shell code automatically -# generated by other debhelper scripts. - -#DEBHELPER# - -exit 0 diff --git a/src/etc/sudoers.d/zabbix_backuppc b/src/etc/sudoers.d/zabbix_backuppc deleted file mode 100644 index 3480a63..0000000 --- a/src/etc/sudoers.d/zabbix_backuppc +++ /dev/null @@ -1,2 +0,0 @@ -zabbix ALL = (ALL) NOPASSWD: /usr/bin/zabbix-backuppc.pl,/usr/bin/zabbix-discover-backuppc.pl - diff --git a/src/usr/bin/zabbix-backuppc.pl b/src/usr/bin/zabbix-backuppc.pl deleted file mode 100755 index 8b71392..0000000 --- a/src/usr/bin/zabbix-backuppc.pl +++ /dev/null @@ -1,401 +0,0 @@ -#!/usr/bin/perl -# -# Based on script from https://www.zabbix.com/forum/showthread.php?t=17273 -# -# Backuppc -use lib "/usr/share/backuppc/lib"; -use BackupPC::Lib; -use BackupPC::CGI::Lib; - -#Other -use Data::Dumper; - -# Globals -$bpc = BackupPC::Lib->new(); -$hosts = $bpc->HostInfoRead(); - -# Setup -&var_config(); -&zabbix_config(); - -# %Info = Pool Info -# %QueueLen = Command Queues -# %Jobs = jobs - -# Collect Data -GetStatusInfo("jobs queueLen info"); -#print Dumper(%Info); -&jobs_info(); -&pool_info(); -&queue_info(); -&general_info(); -&hosts_info(); - -# Push Data to Zabbix -foreach my $key (keys %Val) { - if ($Var{$key}) - { - zabbix_post($Var{$key},$Val{$key}); - #print "$Var{$key} | $Val{$key}\n"; - } -} -print "1"; - - -# Functions -sub hosts_info -{ - # Variables - $fullSizeTot = 0; - $fullCnt = 0; - $fullCnt2 = 0; - $incrSizeTot = 0; - $incrCnt = 0; - $incrCnt2 = 0; - $total_speed_full = 0; - $total_speed_incr = 0; - - $no_backups_2 = "NONE"; - $no_backups_3 = "NONE"; - $no_backups_4 = "NONE"; - $no_backups_5 = "NONE"; - - while ( my ($host, $value) = each(%$hosts) ) - { - - my @Backups = $bpc->BackupInfoRead($host); - $bpc->ConfigRead($host); - my %Conf = $bpc->Conf(); - - # Variables - my $fullAge; - my $fullSize; - my $fullDur; - my $incrAge; - my $incrSize; - my $incrDur; - my $vfullAge="fullAge".$host; - my $vfullSize="fullSize".$host; - my $vfullDur="fullDur".$host; - my $vincrAge="incrAge".$host; - my $vincrSize="incrSize".$host; - my $vincrDur="incrDur".$host; - my $vfullErrs="fullErrs".$host; - my $vfullBadShare="fullBadShare".$host; - my $vfullBadFile="fullBadFile".$host; - my $vfulltarErrs="fulltarErrs".$host; - my $vincrErrs="incrErrs".$host; - my $vincrBadShare="incrBadShare".$host; - my $vincrBadFile="incrBadFile".$host; - my $vincrtarErrs="incrtarErrs".$host; - - $Var{$vfullAge}="backuppc.fullage[".$host."]"; - $Var{$vfullSize}="backuppc.fullsize[".$host."]"; - $Var{$vfullDur}="backuppc.fulldur[".$host."]"; - $Var{$vincrAge}="backuppc.incrage[".$host."]"; - $Var{$vincrSize}="backuppc.incrsize[".$host."]"; - $Var{$vincrDur}="backuppc.incrdur[".$host."]"; - $Var{$vfullErrs}="backuppc.fullerrs[".$host."]"; - $Var{$vfullBadShare}="backuppc.fullbadshare[".$host."]"; - $Var{$vfullBadFile}="backuppc.fullbadfile[".$host."]"; - $Var{$vfulltarErrs}="backuppc.fulltarerrs[".$host."]"; - $Var{$vincrErrs}="backuppc.increrrs[".$host."]"; - $Var{$vincrBadShare}="backuppc.incrbadshare[".$host."]"; - $Var{$vincrBadFile}="backuppc.incrbadfile[".$host."]"; - $Var{$vincrtarErrs}="backuppc.incrtarerrs[".$host."]"; - for ( my $i = 0 ; $i < @Backups ; $i++ ) - { - if ( $Backups[$i]{type} eq "full" ) - { - $fullCnt++; - if ( $fullAge < 0 || $Backups[$i]{startTime} > $fullAge ) - { - $fullAge = $Backups[$i]{startTime}; - $fullSize = $Backups[$i]{size}; - $fullDur = $Backups[$i]{endTime} - $Backups[$i]{startTime}; - $Val{$vfullErrs}=$Backups[$i]{xferErrs}; - $Val{$vfullBadShare}=$Backups[$i]{xferBadShare}; - $Val{$vfullBadFile}=$Backups[$i]{xferBadFile}; - $Val{$vfulltarErrs}=$Backups[$i]{tarErrs}; - $Val{$vfullAge}=(time() - $fullAge)/86400; - $Val{$vfullSize}=$fullSize; - $Val{$vfullDur}=$fullDur; - } - $fullSizeTot += $Backups[$i]{size}; - } - else - { - $incrCnt++; - if ( $incrAge < 0 || $Backups[$i]{startTime} > $incrAge ) - { - $incrAge = $Backups[$i]{startTime}; - $incrSize = $Backups[$i]{size}; - $incrDur = $Backups[$i]{endTime} - $Backups[$i]{startTime}; - $Val{$vincrErrs}=$Backups[$i]{xferErrs}; - $Val{$vincrBadShare}=$Backups[$i]{xferBadShare}; - $Val{$vincrBadFile}=$Backups[$i]{xferBadFile}; - $Val{$vincrtarErrs}=$Backups[$i]{tarErrs}; - $Val{$vincrAge}=(time() - $incrAge)/86400; - $Val{$vincrSize}=$incrSize; - $Val{$vincrDur}=$incrDur; - } - $incrSizeTot += $Backups[$i]{size}; - } - } - # Sum the Last Full Backup Speed - if ($fullSize > 0 && $fullDur >0) - { - $total_speed_full += ($fullSize / $fullDur); - $fullCnt2++; - } - # Sum the Last Full Incr Speed - if ($incrSize > 0 && $incrDur >0) - { - $total_speed_incr += ($incrSize / $incrDur); - $incrCnt2++; - } - - if ($host eq "haulingaz") - { - print "Full Age: $fullAge\n"; - print "Full Period: $Conf{FullPeriod}\n"; - print "Incr Age: $incrAge\n"; - print "Incr Period: $Conf{IncrPeriod}\n"; - } - - # Check for Hosts that don't have backups (Full) - my $skip_inc = 0; - - # If we have a full that less than 2 days old we can skip - if ( (time() - $fullAge) < ( (86400 * 2) ) && $Conf{BackupsDisable} == 0 ) - { $skip_inc = 1;} - - # If we don't have any fulls, we are going to set the no_backups so we can skip inc - if ( (time() - $fullAge) > ( ($Conf{FullPeriod} * 86400) + (86400 * 2) ) && $Conf{BackupsDisable} == 0 ) - { if ($no_backups_2 eq "NONE") { $no_backups_2 = "$host"} else { $no_backups_2 .= "\n$host" } $skip_inc = 1;} - - if ( (time() - $fullAge) > ( ($Conf{FullPeriod} * 86400) + (86400 * 3) ) && $Conf{BackupsDisable} == 0 ) - { if ($no_backups_3 eq "NONE") { $no_backups_3 = "$host"} else { $no_backups_3 .= "\n$host" } $skip_inc = 1;} - - if ( (time() - $fullAge) > ( ($Conf{FullPeriod} * 86400) + (86400 * 4) ) && $Conf{BackupsDisable} == 0 ) - { if ($no_backups_4 eq "NONE") { $no_backups_4 = "$host"} else { $no_backups_4 .= "\n$host" } $skip_inc = 1;} - - if ( (time() - $fullAge) > ( ($Conf{FullPeriod} * 86400) + (86400 * 5) ) && $Conf{BackupsDisable} == 0 ) - { if ($no_backups_5 eq "NONE") { $no_backups_5 = "$host"} else { $no_backups_5 .= "\n$host" } $skip_inc = 1;} - - # Check for Hosts that don't have backups (Incremental) - if ( (time() - $incrAge) > ( ($Conf{IncrPeriod} * 86400) + (86400 * 2) ) && $Conf{BackupsDisable} == 0 && $Conf{IncrKeepCnt} > 0 && $skip_inc == 0) - { if ($no_backups_2 eq "NONE") { $no_backups_2 = "$host"} else { $no_backups_2 .= "\n$host" } } - - if ( (time() - $incrAge) > ( ($Conf{IncrPeriod} * 86400) + (86400 * 3) ) && $Conf{BackupsDisable} == 0 && $Conf{IncrKeepCnt} > 0 && $skip_inc == 0) - { if ($no_backups_3 eq "NONE") { $no_backups_3 = "$host"} else { $no_backups_3 .= "\n$host" } } - - if ( (time() - $incrAge) > ( ($Conf{IncrPeriod} * 86400) + (86400 * 4) ) && $Conf{BackupsDisable} == 0 && $Conf{IncrKeepCnt} > 0 && $skip_inc == 0) - { if ($no_backups_4 eq "NONE") { $no_backups_4 = "$host"} else { $no_backups_4 .= "\n$host" } } - - if ( (time() - $incrAge) > ( ($Conf{IncrPeriod} * 86400) + (86400 * 5) ) && $Conf{BackupsDisable} == 0 && $Conf{IncrKeepCnt} > 0 && $skip_inc == 0) - { if ($no_backups_5 eq "NONE") { $no_backups_5 = "$host"} else { $no_backups_5 .= "\n$host" } } - - - } - if ($fullCnt2 > 0 ) - { $Val{hostsAvgFullSpeed} = ($total_speed_full / $fullCnt2); } - if ($incrCnt2 > 0 ) - { $Val{hostsAvgIncrSpeed} = ($total_speed_incr / $incrCnt2); } - $Val{hostsFullSize} = $fullSizeTot; - $Val{hostsFullCount} = $fullCnt; - $Val{hostsIncrSize} = $incrSizeTot; - $Val{hostsIncrCount} = $incrCnt; - $Val{hostsNoBackups2} = $no_backups_2; - $Val{hostsNoBackups3} = $no_backups_3; - $Val{hostsNoBackups4} = $no_backups_4; - $Val{hostsNoBackups5} = $no_backups_5; -} - -sub pool_info -{ - while ( my ($key, $value) = each(%Info) ) - { - if ($key =~ /pool/) - {$Val{$key} = int($Info{$key}); } - } -} - - -sub general_info -{ - $Val{startTime} = time() - $Info{startTime}; - $Val{Version} = $Info{Version}; - $Val{ConfigLTime} = time() - $Info{ConfigLTime}; - -} - -sub queue_info -{ - while ( my ($key, $value) = each(%QueueLen) ) - { - if ($key =~ /Queue/) - {$Val{$key} = $QueueLen{$key};} - } -} - -sub jobs_info -{ - $Val{JobsIncr} = 0; - $Val{JobsFull} = 0; - $Val{JobsOther} = 0; - - # Jobs - while ( my ($key, $value) = each(%Jobs) ) { - #print "$key => $value\n"; - #print Dumper($value); - if (!($key =~ /trashClean/i)) - { - # Count Incrementail Jobs - if( $value->{'type'} eq 'incr') - { $Val{JobsIncr}++; } - - # Count Full Jobs - elsif( $value->{'type'} eq 'full') - { $Val{JobsFull}++; } - - # Everything Else - else { $Val{JobsOther}++; } - } - } - -} - -sub GetStatusInfo -{ - my($status) = @_; - ServerConnect(); - %Status = () if ( $status =~ /\bhosts\b/ ); - %StatusHost = () if ( $status =~ /\bhost\(/ ); - my $reply = $bpc->ServerMesg("status $status"); - $reply = $1 if ( $reply =~ /(.*)/s ); - eval($reply); - # ignore status related to admin and trashClean jobs - if ( $status =~ /\bhosts\b/ ) { - foreach my $host ( grep(/admin/, keys(%Status)) ) { - delete($Status{$host}) if ( $bpc->isAdminJob($host) ); - } - delete($Status{$bpc->trashJob}); - } -} - -# -# Returns the list of hosts that should appear in the navigation bar -# for this user. If $getAll is set, the admin gets all the hosts. -# Otherwise, regular users get hosts for which they are the user or -# are listed in the moreUsers column in the hosts file. -# -sub GetUserHosts -{ - my($getAll) = @_; - my @hosts; - - if ( $getAll ) { - @hosts = sort keys %$Hosts; - } else { - @hosts = sort grep { $Hosts->{$_}{user} eq $User || - defined($Hosts->{$_}{moreUsers}{$User}) } keys(%$Hosts); - } - return @hosts; -} - - -sub ServerConnect -{ - # - # Verify that the server connection is ok - # - return if ( $bpc->ServerOK() ); - $bpc->ServerDisconnect(); - if ( my $err = $bpc->ServerConnect($Conf{ServerHost}, $Conf{ServerPort}) ) { - if ( CheckPermission() - && -f $Conf{ServerInitdPath} - && $Conf{ServerInitdStartCmd} ne "" ) { - my $content = eval("qq{$Lang->{Admin_Start_Server}}"); - Header(eval("qq{$Lang->{Unable_to_connect_to_BackupPC_server}}"), $content); - Trailer(); - exit(1); - } else { - ErrorExit(eval("qq{$Lang->{Unable_to_connect_to_BackupPC_server}}")); - } - } -} - - -sub zabbix_config { - - open(CONFIG,"/etc/zabbix/zabbix_agentd.conf"); - foreach() - { - $zabbix_host = $1 if (/Hostname\s*=\s*(.*)/); - $zabbix_server = $1 if (/Server\s*=\s*(.*)/); - } - close CONFIG; -} - -sub zabbix_post { - my $key = $_[0]; - my $val = $_[1]; - my @servers = split(',', $zabbix_server); - - foreach my $server (@servers) { - my $cmd = "zabbix_sender -z $server -p 10051 -s $zabbix_host -k $key -o '$val'"; - $cmd_result=system("$cmd >/dev/null"); - if ( $cmd_result > 0 ) { - print ("Sending data failed. Try to execute the command manually to see errors (is your host correclty spelled ?)\n$cmd\n"); - } - } -} - - -sub var_config { - - # Pool Info - $Var{poolFileCnt} = "backuppc.pool_file_count"; - $Var{poolDirCnt} = "backuppc.pool_dir_count"; - #$Var{poolFileCntRm} = "backuppc.pool_file_removed"; - $Var{poolFileCntRep} = "backuppc.pool_file_repeat"; - $Var{poolFileRepMax} = "backuppc.pool_file_repeat_max"; - $Var{poolFileLinkMax} = "backuppc.pool_file_link_max"; - $Var{poolKb} = "backuppc.pool_size"; - $Var{cpoolFileCnt} = "backuppc.cpool_file_count"; - $Var{cpoolDirCnt} = "backuppc.cpool_dir_count"; - #$Var{cpoolFileCntRm} = "backuppc.cpool_file_removed"; - $Var{cpoolFileCntRep} = "backuppc.cpool_file_repeat"; - $Var{cpoolFileRepMax} = "backuppc.cpool_file_repeat_max"; - $Var{cpoolFileLinkMax} = "backuppc.cpool_file_link_max"; - $Var{cpoolKb} = "backuppc.cpool_size"; - - # General Stats - $Var{startTime} = "backuppc.uptime"; - $Var{Version} = "backuppc.version"; - $Var{ConfigLTime} = "backuppc.config_load_time"; - - # Queues - $Var{CmdQueue} = "backuppc.queue_command"; - $Var{UserQueue} = "backuppc.queue_user"; - $Var{BgQueue} = "backuppc.queue_background"; - - # Jobs - $Var{JobsIncr} = "backuppc.jobs_incr"; - $Var{JobsFull} = "backuppc.jobs_full"; - $Var{JobsOther} = "backuppc.jobs_other"; - - # Hosts - $Var{hostsAvgFullSpeed} = "backuppc.hosts_full_speed"; - $Var{hostsAvgIncrSpeed} = "backuppc.hosts_incr_speed"; - $Var{hostsFullSize} = "backuppc.hosts_full_size"; - $Var{hostsFullCount} = "backuppc.hosts_full_count"; - $Var{hostsIncrSize} = "backuppc.hosts_incr_size"; - $Var{hostsIncrCount} = "backuppc.hosts_incr_count"; - $Var{hostsNoBackups2} = "backuppc.hosts_nobackup_2"; - $Var{hostsNoBackups3} = "backuppc.hosts_nobackup_3"; - $Var{hostsNoBackups4} = "backuppc.hosts_nobackup_4"; - $Var{hostsNoBackups5} = "backuppc.hosts_nobackup_5"; -} - diff --git a/src/usr/bin/zabbix-discover-backuppc.pl b/src/usr/bin/zabbix-discover-backuppc.pl deleted file mode 100755 index 51deb41..0000000 --- a/src/usr/bin/zabbix-discover-backuppc.pl +++ /dev/null @@ -1,95 +0,0 @@ -#!/usr/bin/perl - -# Backuppc -use lib "/usr/share/backuppc/lib"; -use BackupPC::Lib; -use BackupPC::CGI::Lib; - -#Other -use Data::Dumper; - -# Globals -$bpc = BackupPC::Lib->new(); -$hosts = $bpc->HostInfoRead(); - -# Collect Data -GetStatusInfo("jobs queueLen info"); -&hosts_info(); - - -# Functions -sub hosts_info -{ - print '{ "data":['."\n"; - my $comma=''; - while ( my ($host, $value) = each(%$hosts) ) - { - print $comma.' {"{#BACKUPHOST}":"'.$host.'"}'."\n"; - $comma=","; - } - print " ]}"; -} - - - -sub GetStatusInfo -{ - my($status) = @_; - ServerConnect(); - %Status = () if ( $status =~ /\bhosts\b/ ); - %StatusHost = () if ( $status =~ /\bhost\(/ ); - my $reply = $bpc->ServerMesg("status $status"); - $reply = $1 if ( $reply =~ /(.*)/s ); - eval($reply); - # ignore status related to admin and trashClean jobs - if ( $status =~ /\bhosts\b/ ) { - foreach my $host ( grep(/admin/, keys(%Status)) ) { - delete($Status{$host}) if ( $bpc->isAdminJob($host) ); - } - delete($Status{$bpc->trashJob}); - } -} - -# -# Returns the list of hosts that should appear in the navigation bar -# for this user. If $getAll is set, the admin gets all the hosts. -# Otherwise, regular users get hosts for which they are the user or -# are listed in the moreUsers column in the hosts file. -# -sub GetUserHosts -{ - my($getAll) = @_; - my @hosts; - - if ( $getAll ) { - @hosts = sort keys %$Hosts; - } else { - @hosts = sort grep { $Hosts->{$_}{user} eq $User || - defined($Hosts->{$_}{moreUsers}{$User}) } keys(%$Hosts); - } - return @hosts; -} - - -sub ServerConnect -{ - # - # Verify that the server connection is ok - # - return if ( $bpc->ServerOK() ); - $bpc->ServerDisconnect(); - if ( my $err = $bpc->ServerConnect($Conf{ServerHost}, $Conf{ServerPort}) ) { - if ( CheckPermission() - && -f $Conf{ServerInitdPath} - && $Conf{ServerInitdStartCmd} ne "" ) { - my $content = eval("qq{$Lang->{Admin_Start_Server}}"); - Header(eval("qq{$Lang->{Unable_to_connect_to_BackupPC_server}}"), $content); - Trailer(); - exit(1); - } else { - ErrorExit(eval("qq{$Lang->{Unable_to_connect_to_BackupPC_server}}")); - } - } -} - -