added mrtg stuff
authorminima <minima>
Thu, 26 Sep 2002 00:05:22 +0000 (00:05 +0000)
committerminima <minima>
Thu, 26 Sep 2002 00:05:22 +0000 (00:05 +0000)
Changes
cmd/mrtg.pl [new file with mode: 0644]
mrtg/mrtg.cfg.issue [new file with mode: 0644]
perl/Spot.pm

diff --git a/Changes b/Changes
index a6e2561aa821fefb75c16a34979a2f81fd0e3ab5..afc981a3f16800444d8815df448a48d4f22b00f2 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,3 +1,19 @@
+25Sep02=======================================================================
+1. added mrtg stuff to the system as a template. In order to use this you
+must install mrtg onto your system and copy all the mrtg files (or at least
+all the images) to new directory /spider/html/mrtg. The system generates the
+config file for you as part of its workings. To get it to update add a line
+to your spider crontab like: 
+
+00,05,10,15,20,25,30,35,40,45,50,55 * * * * run_cmd('mrtg all')
+
+You will also need to do an indexmaker in the html directory. I put the 
+index page into /spider/html/mrtg/stats.html YMMV. I do:
+
+indexmaker --output stats.html --columns=1 --title "MRTG statistics for 
+GB7DJK" ../../mrtg/mrtg.cfg
+
+But all on one line.
 22Sep02=======================================================================
 1. Add changes to the installation manual for Windows users from K1XX
 21Sep02=======================================================================
diff --git a/cmd/mrtg.pl b/cmd/mrtg.pl
new file mode 100644 (file)
index 0000000..0d3176b
--- /dev/null
@@ -0,0 +1,180 @@
+#
+# This is a local command to generate the various statistics that
+# can then be displayed on an MRTG plot
+#
+# Your mrtg binary must live in one of the standard places
+#
+my ($self, $line) = @_;
+
+return (1) unless -e '/usr/bin/mrtg' || -e '/usr/local/bin/mrtg';
+
+my $dir = "$main::root/mrtg";
+my $html = "$main::root/html/mrtg";
+my $cfg = "$dir/mrtg.cfg";
+
+# do some checking
+return (1, "$dir is missing") unless -d $dir;
+return (1, "$html is missing") unless -d $html; 
+return (1, "$cfg is missing") unless -e "$cfg";
+open MC, ">$cfg" or return(1, "cannot open $cfg for mrtg writing");
+
+# print out the header
+print MC <<"EOF";
+### Global Defaults
+
+#  to get bits instead of bytes and graphs growing to the right
+# Options[_]: growright, bits
+
+Htmldir: $html
+Imagedir: $html
+Logdir: $dir
+Options[_]: growright
+
+##
+##
+
+EOF
+
+# create the arg list
+my %want;
+for ( split /\s+/, $line) {
+       $want{lc $_} = 1;
+}; 
+
+#dbg "$dir\n$html\n";
+
+# do the users and nodes
+my $users = DXChannel::get_all_users();
+my $nodes = DXChannel::get_all_nodes();
+my $uptime = main::uptime();
+#dbg "$users $nodes $uptime\n";
+if (open M, ">$dir/users") {
+       print M "$users\n$nodes\n$uptime\nUsers and Nodes\n";
+       close M;
+}
+print MC <<"EOF";
+#
+# local users and nodes
+#
+Target[users]: `cat /spider/mrtg/users`
+MaxBytes1[users]: 500
+MaxBytes2[users]: 200
+Title[users]: Users and Nodes for $main::mycall
+Options[users]: withzeroes, gauge, growright, nopercent, integer
+YLegend[users]: Users \&amp; Nodes
+YTicsFactor[users]: 1
+ShortLegend[users]: \&nbsp;
+Legend1[users]:Maximum No of Users
+Legend2[users]:Maximum No of Nodes
+LegendI[users]:Users
+LegendO[users]:Nodes
+PageTop[users]: <H1>Users and Nodes on GB7DJK</H1>
+ <TABLE>
+   <TR><TD>System:</TD>     <TD>$main::mycall</TD></TR>
+   <TR><TD>Maintainer:</TD> <TD>$main::myemail</TD></TR>
+   <TR><TD>Description:</TD><TD>Users \&amp; Nodes </TD></TR>
+ </TABLE>
+EOF
+
+# do the  total users and nodes
+if ($want{totalusers} || $want{all}) {
+       $nodes = Route::Node::count();
+       $users = Route::User::count();
+       #dbg "$users $nodes $uptime\n";
+       if (open M, ">$dir/totalusers") {
+               print M "$users\n$nodes\n$uptime\nTotal Users and Nodes\n";
+               close M;
+       }
+       print MC <<"EOF";
+#
+# total users and nodes
+#
+Target[totalusers]: `cat /spider/mrtg/totalusers`
+MaxBytes1[totalusers]: 5000
+MaxBytes2[totalusers]: 5000
+Title[totalusers]: Total Users and Nodes for the Visible Cluster Network
+Options[totalusers]: withzeroes,  gauge, growright, nopercent, integer
+YLegend[totalusers]: Users \&amp; Nodes
+YTicsFactor[totalusers]: 1
+ShortLegend[totalusers]: \&nbsp;
+Legend1[totalusers]:Maximum No of Users
+Legend2[totalusers]:Maximum No of Nodes
+LegendI[totalusers]:Users
+LegendO[totalusers]:Nodes
+PageTop[totalusers]: <H1>Total Users and Nodes in the Visible Network</H1>
+ <TABLE>
+   <TR><TD>System:</TD>     <TD>$main::mycall</TD></TR>
+   <TR><TD>Maintainer:</TD> <TD>$main::myemail</TD></TR>
+   <TR><TD>Description:</TD><TD>Total Users \&amp; Nodes for the Visible Cluster Network </TD></TR>
+ </TABLE>
+EOF
+}
+
+# do the total spots
+if ($want{totalspots} || $want{all}) {
+       if (open M, ">$dir/totalspots") {
+               print M "$Spot::totalspots\n$Spot::totalspots\n$uptime\nTotal Spots\n";
+               close M;
+       }
+       $Spot::totalspots = 0;
+       print MC <<"EOF";
+#
+# total spots
+#
+Target[totalspots]: `cat /spider/mrtg/totalspots`
+MaxBytes[totalspots]: 20000
+Title[totalspots]: Total Spots
+Options[totalspots]: unknaszero, gauge, withzeroes, growright, nopercent, integer, noi
+YLegend[totalspots]: Spots
+YTicsFactor[totalspots]: 1
+ShortLegend[totalspots]: \&nbsp;
+Legend2[totalspots]:Maximum No of Spots
+LegendO[totalspots]:Spots
+PageTop[totalspots]: <H1>Total Spots</H1>
+ <TABLE>
+   <TR><TD>System:</TD>     <TD>$main::mycall</TD></TR>
+   <TR><TD>Maintainer:</TD> <TD>$main::myemail</TD></TR>
+   <TR><TD>Description:</TD><TD>Total Spots</TD></TR>
+ </TABLE>
+EOF
+}
+
+# do the HF and VHF spots
+if ($want{hfvhf} || $want{all}) {
+       if (open M, ">$dir/hfspots") {
+               print M "$Spot::hfspots\n$Spot::vhfspots\n$uptime\nHF and VHF+ Spots\n";
+               close M;
+       }
+       $Spot::hfspots = $Spot::vhfspots = 0;
+       print MC <<"EOF";
+# 
+# HF and VHF spots
+#
+Target[hfspots]: `cat /spider/mrtg/hfspots`
+MaxBytes[hfspots]: 20000
+Title[hfspots]: HF and VHF+ Spots
+Options[hfspots]: unknaszero, gauge, withzeroes, growright, nopercent, integer
+YLegend[hfspots]: Spots
+WithPeak[hfspots]: ymwd
+YTicsFactor[hfspots]: 1
+ShortLegend[hfspots]: \&nbsp;
+Legend1[hfspots]:Max no of HF Spots
+Legend2[hfspots]:Max no of VHF Spots
+LegendI[hfspots]:HF
+LegendO[hfspots]:VHF+
+PageTop[hfspots]: <H1>Total HF and VHF+ Spots</H1>
+ <TABLE>
+   <TR><TD>System:</TD>     <TD>$main::mycall</TD></TR>
+   <TR><TD>Maintainer:</TD> <TD>$main::myemail</TD></TR>
+   <TR><TD>Description:</TD><TD>Total HF and VHF+ Spots</TD></TR>
+ </TABLE>
+EOF
+}
+
+close MC;
+
+my @args;
+@args = ("mrtg", $cfg);
+system @args;
+
+return (1);
diff --git a/mrtg/mrtg.cfg.issue b/mrtg/mrtg.cfg.issue
new file mode 100644 (file)
index 0000000..0114642
--- /dev/null
@@ -0,0 +1,101 @@
+
+### Global Config Options
+
+#  for UNIX
+# WorkDir: /home/http/mrtg
+
+#  or for NT
+# WorkDir: c:\mrtgdata
+
+### Global Defaults
+
+#  to get bits instead of bytes and graphs growing to the right
+# Options[_]: growright, bits
+
+WorkDir: /spider/html/mrtg
+Options[_]: growright
+
+######################################################################
+#System: gate.tobit.co.uk
+#Description: Tobit Computer Co Ltd Router
+#Contact: djk@tobit.co.uk
+#Location: Dereham, Norfolk, UK JO02LQ
+######################################################################
+
+Target[users]: `cat /spider/mrtg/users`
+MaxBytes1[users]: 500 
+MaxBytes2[users]: 200 
+Title[users]: Users and Nodes for GB7DJK 
+Options[users]: unknaszero, withzeroes, gauge, growright, nopercent, integer
+WithPeak[users]: ymwd
+YLegend[users]: Users &amp; Nodes
+YTicsFactor[users]: 1
+ShortLegend[users]: &nbsp;
+Legend1[users]:Maximum No of Users
+Legend2[users]:Maximum No of Nodes
+LegendI[users]:Users
+LegendO[users]:Nodes
+PageTop[users]: <H1>Users and Nodes on GB7DJK</H1>
+ <TABLE>
+   <TR><TD>System:</TD>     <TD>gb7djk.dxcluster.net</TD></TR>
+   <TR><TD>Maintainer:</TD> <TD>djk@tobit.co.uk</TD></TR>
+   <TR><TD>Description:</TD><TD>Users &amp; Nodes </TD></TR>
+ </TABLE>
+
+Target[totalusers]: `cat /spider/mrtg/totalusers`
+MaxBytes1[totalusers]: 5000
+MaxBytes2[totalusers]: 5000
+Title[totalusers]: Total Users and Nodes for the Visible Cluster Network
+Options[totalusers]: unknaszero, withzeroes,  gauge, growright, nopercent, integer
+YLegend[totalusers]: Users &amp; Nodes
+WithPeak[totalusers]: ymwd
+YTicsFactor[totalusers]: 1
+ShortLegend[totalusers]: &nbsp;
+Legend1[totalusers]:Maximum No of Users
+Legend2[totalusers]:Maximum No of Nodes
+LegendI[totalusers]:Users
+LegendO[totalusers]:Nodes
+PageTop[totalusers]: <H1>Total Users and Nodes in the Visible Network</H1>
+ <TABLE>
+   <TR><TD>System:</TD>     <TD>gb7djk.dxcluster.net</TD></TR>
+   <TR><TD>Maintainer:</TD> <TD>djk@tobit.co.uk</TD></TR>
+   <TR><TD>Description:</TD><TD>Total Users &amp; Nodes for the Visible Cluster Network </TD></TR>
+ </TABLE>
+
+Target[totalspots]: `cat /spider/mrtg/totalspots`
+MaxBytes[totalspots]: 20000
+Title[totalspots]: Total Spots
+Options[totalspots]: unknaszero, gauge, withzeroes, growright, nopercent, integer, noi
+YLegend[totalspots]: Spots
+WithPeak[totalspots]: ymwd
+YTicsFactor[totalspots]: 1
+ShortLegend[totalspots]: &nbsp;
+Legend2[totalspots]:Maximum No of Spots
+LegendO[totalspots]:Spots
+PageTop[totalspots]: <H1>Total Spots</H1>
+ <TABLE>
+   <TR><TD>System:</TD>     <TD>gb7djk.dxcluster.net</TD></TR>
+   <TR><TD>Maintainer:</TD> <TD>djk@tobit.co.uk</TD></TR>
+   <TR><TD>Description:</TD><TD>Total Spots</TD></TR>
+ </TABLE>
+
+
+Target[hfspots]: `cat /spider/mrtg/hfspots`
+MaxBytes[hfspots]: 20000
+Title[hfspots]: HF and VHF+ Spots
+Options[hfspots]: unknaszero, gauge, withzeroes, growright, nopercent, integer
+YLegend[hfspots]: Spots
+WithPeak[hfspots]: ymwd
+YTicsFactor[hfspots]: 1
+ShortLegend[hfspots]: &nbsp;
+Legend1[hfspots]:Max no of HF Spots
+Legend2[hfspots]:Max no of VHF Spots
+LegendI[hfspots]:HF
+LegendO[hfspots]:VHF+
+PageTop[hfspots]: <H1>Total HF and VHF+ Spots</H1>
+ <TABLE>
+   <TR><TD>System:</TD>     <TD>gb7djk.dxcluster.net</TD></TR>
+   <TR><TD>Maintainer:</TD> <TD>djk@tobit.co.uk</TD></TR>
+   <TR><TD>Description:</TD><TD>Total HF and VHF+ Spots</TD></TR>
+ </TABLE>
+
index 6262d79e3b16cf8bec846bf5277cb44290eda296..80d345ed69e19f716f6a258762e616c221e89817 100644 (file)
@@ -26,7 +26,7 @@ $BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/  || (0,0))
 $main::build += $VERSION;
 $main::branch += $BRANCH;
 
-use vars qw($fp $statp $maxspots $defaultspots $maxdays $dirprefix $duplth $dupage $filterdef);
+use vars qw($fp $statp $maxspots $defaultspots $maxdays $dirprefix $duplth $dupage $filterdef $totalspots $hfspots $vhfspots);
 
 $fp = undef;
 $statp = undef;
@@ -140,6 +140,12 @@ sub add
 {
        my $buf = join("\^", @_[0..7]);
        $fp->writeunix($_[2], $buf);
+       $totalspots++;
+       if ($_[0] <= 30000) {
+               $hfspots++;
+       } else {
+               $vhfspots++;
+       }
 }
 
 # search the spot database for records based on the field no and an expression