You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 23 Next »

Project Description

Please provide a project overview with information as to what the package does

Package Description

Modules

Function

SelectConvSrcDest1.pm

This program is to be setup as a cron job to run every 24 hours (after installing on a server with a PingER data source)
This script is to be run once the data for all sources have been brought to the server from various monitoring sites using getdata.pl.
This program finds unique SourceSite_DestinationSite_PacketsSize_NumberOfPings(maximum) combinations and creates a srcdest.txt file agaist each combination. It calls the PingERtoSmokeping application to convert the data agaist each of the unique SourceSite_DestinationSite_PacketsSize_NumberOfPings(maximum) combinations found.

PingERtoSmokeping.pm

PingERtoSmokeping.pm is a tool to convert PingER data files into Smokeping data files. The output of this program is an rrd file for a SourceSite_DestinationSite_PacketsSize_NumberOfPing combination present in a PingER data file. This tool does not take any arguments from command line.

Configuration files

                                                                                                          Function

srcdest.txt

The file that stores unique SourceSite_DestinationSite_PacketsSize_NumberOfPings(maximum) combinations found in PingER data.

CGIs

Function

form.cgi

Displays the  SourceSite_DestinationSite_PacketsSize_NumberOfPings(maximum) RRDs(data) available for the monitoring site or node slected from pingtable.pl by user.

graph.cgi

Generates graphs from the rrd files on the fly and display them to the user and then deletes the graph from cache

saveimage.cgi

Displays the contents of the image to the user

Detailed description can be found at http://maggie.niit.edu.pk/newwebsite/federation_projectdesc2.html

Installation

SelectConvSrcDest1.pm

  • Modify the following path to point to the bin directory containing the PingERtoSmokeping.pm
    use lib qw(/home/bin);
    
  • Change following paths according to local system. Point this path to the pinger data files directory
    my $some_dir="/home/pinger/pingerdata/hep/data";
    
  • Point this path to the directory SRCDEST_FILE
    my $srcdest="/home/SRCDEST_FILE";
    

PingERtoSmokeping.pm

  • When installing PingERtoSmokeping, this file has to be adjusted to fit your local system. Two paths have to be changed. These path is located at the begining of PingERtoSmokeping:The $main_path should point to the source folder which contains the PingER files
  • my $main_path='/home/PingER_Data_Storage/';
    
  • The $pathofrrdcache should point to the folder RRDCache, which will contain the RRDs
    my $pathofrrdcache="/home/RRDCache"; 
    
    OtherParams2.cgi
  • Change the mainpath to point to the srcdest.txt file
    my $mainpath="/home/asma/SRCDEST_FILE/srcdest.txt";
    
  • Change this path to point to the folder contaning the pinger.new.cf file:
    $base_dir="/home/asma/pinger";
    
    mon-lib
  • Add following lines to the current mon-lib, rigth above the if ($type =~ /HISTO/) or use the mon-lib file available with the distribution
    if ($type =\~ /SMOKE/) {
    
    $site = "$table\[$i\]\[$nodecolumn-5\]";
     if($FORM{'by'}=~/node/)
     {$more = "&by=node";}
    if($FORM{'by'}=~/site/)
     {$more = "&by=site";}
    
     $label = "";
     $min = "";
     $max="";
     $data = "";
    }
    
    pingtable.pl
  • Add the following line into pingtable.pl
    $config{URLCOLUMN0} = "SMOKE http://203.99.50.206/cgi-bin/asma/OtherParams2.cgi?src_regexp= ";
    
  • This is to be added above the following line:
    $config{URLCOLUMN1} = "COLLECTION http://www.hep.net/cgi-bin/graph_pings.pl?src_regexp= ";
    
    Graph.cgi
  • Change the following path to point to 'rrdtool' installation 
    use lib qw( /usr/local/rrdtool-1.2.12/lib/perl );
    
  • Change following link(present on line 36,242) to point to installation of Graph.cgi:
    http://www.<path-of-server>.com/cgi-bin/graph.cgi
    
  • also modify the following relative path to GraphCache from folder containg Graph.cgi
    my $imgsrc='../GraphCache';
    
    It is used in:
    line (IMG SRC=\'$imgsrc/$destlink1.png\')
    And
    line (IMG SRC=\'$imgsrc/$destlink1"."_mini.png\')
    

     

 

Deployment of PingertoSmokePing

Prerequisite:

Depends on rrdtool version 1.2.12 or newer version of it. Therefore it must be installed. The RRD tool is already installed on PingER machine.

Security Checks

 The perl taint option -T is used in order to taint the input which the cgi will get from the user also "strict" is used.

CGI Scripts

Graph.cgi

Configuration Steps:

  • I changed the following path to point to 'rrdtool' installation. The path should go up to the 'perl' directory as follows:
use lib "/afs/slac.stanford.edu/package/netmon/rrdtool/lib/perl/5.8.8";
use lib "/afs/slac.stanford.edu/package/netmon/rrdtool/lib/perl/5.8.8/i386_linux24";

The problem I faced with this is that it was unable to link the dynamic library (.so) file at the run time which I ran it from Flora but when I ran it from 

PingER it worked fine. The problem was due to the fact that Flora is a 64 bit machine.

my $imgsrc="$HOME/pinger_smokeping/html/GraphCache where $HOME is my home directory where the project is placed.

SaveImage.cgi

* *I have written saveimage.cgi which is called from graph.cgi and it prints the image data to the browser. The image is created temporarily and is deleted after it is show to the user.

The image is created in /tmp/ directory

Form.cgi

Displays the SourceSite_DestinationSite_PacketsSize_NumberOfPings(maximum) RRDs(data) available for the monitoring site or node slected from pingtable.pl by user.

Configuration Steps:

  • I changed the mainpath to point to the srcdest.txt file:
    my $mainpath="$HOME/pinger_smokeping/SRCDEST_FILE/srcdest.txt";
    

where $HOME is  home directory where the project is placed.

  • I changed this path to point to the folder contaning the pinger.new.cf file: my $base_dir="$HOME/pinger_smokeping";
  • I also had to put <HTML> nad <BODY> tags to see the output correctly in the browser which otherwise gave error. This script takes two parameters as

1. src_regexp (Monitoring Site)
2. by site | node

Pingtable.pl

  • I used the version provided with the distribution. I added this link to form.cgi Line 504:
$config
{URLCOLUMN0}

= "SMOKE [http://www-dev.slac.stanford.edu/cgi-wrap/smokeping_form.cgi?src_regexp=]";
  • I also had to chage require statement at line 96 to point it to new pinger.new.cf
require "$base_dir/pinger.new.cf";

where

$base_dir="/afs/slac/u/sg/shahryar/pinger_smokeping";
  • Also the path of mon-lib.pl was changed in pinger.new.cf to point to the new mon-lib.pl 

These three scripts are deployed at Test server (/afs/slac.stanford.edu/g/www/cgi-wrap-bin/net/shahryar)

which I guess is not accessable from outside world. These scripts are deployed at:

http://www-dev.slac.stanford.edu/cgi-wrap/pingtable_test.pl

http://www-dev.slac.stanford.edu/cgi-wrap/smokeping_form.cgi

http://www-dev.slac.stanford.edu/cgi-wrap/smokeping_graph.cgi( The perl taint option -t was removed in order to make it work otherwise it gave Internal server Error)

Cron Jobs

I have run SelectSrcDest1.pm as a cron job which is supposed to run every 24 hours to generate the rrd files for unique source destination pairs.

  • No labels