Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Introduction

PingER2 in slac at SLAC resides under /afs/slac/package/pinger/pinger2/share/pinger/. This directory contains all the scripts, needed by PingER2 except for lynxwget, ping, ping6,dig, and other similar standard Linux binaries. The directory contains:

...

  • These files contain the configuration values for pinger2. They are created atomically every 6 hours from the Oracle NODEDETAILS database as a result of running write_offsitenodes.pl from the pinger@pinger.slac.stanford.edu cronjob trscronjob. There are actually two files:
  • This file has four parts:
    • Beacon List, containing a list of all the beacon sites.
    • Beacon List Config, containing configuration values for the beacon list. This includes:
      • BeaconListURL: Location of beacon.txt file
      • HttpGetBin: Location of lynx
      • RefreshInterval: Used to determine, when the list should be refreshed.
    • DataDirectory: Indicating where the data gathered by PingER2 should reside.
    • DefaultHost: Values here determine what a default host looks like. For the hostlisthost list, any value that is not in there for a host , is picked up from here.
      • It is advised that DNS Caching  Caching be turned off, to cause PingER2 to do a new dns DNS request every time.
      • PingER2 throws all the error messages at the same time

        ,

        when the time to the notification is achieved. The default value is 12 hours. If you wish to store this information instead, in a log file, replace the

        Code Block
        
         <AlarmCmd>echo &quot;%message\n-----------------\n&quot; &gt;&gt; /afs/slac.stanford.edu/package/pinger/pinger2/share/pinger/pinger.log </AlarmCmd>
    • HostList: List of hosts, PingER2 gathers data from.
    • Final Configuration values:

      Code Block
      xml
      xml
      &nbsp; <MaxProcessCount>25</MaxProcessCount>
      &nbsp; <PingV4Cmd>/bin/ping \-n \-w %deadline \-c %count \-i %interval \-s %packetsize %destination</PingV4Cmd>
      &nbsp; <PingV6Cmd>/bin/ping6 \-n \-w %deadline \-c %count \-i %interval \-s %packetsize %destination</PingV6Cmd>
      &nbsp; <SrcName>pinger.slac.stanford.edu</SrcName>
      &nbsp; <Version>2.0.1</Version>
      &nbsp; <dnsV4Cmd>/afs/slac/package/pinger/pinger2/share/pinger/dnsV4Cmd.pl %destination</dnsV4Cmd>
      &nbsp; <dnsV6Cmd>/usr/bin/dig \-t aaaa \+short %destination</dnsV6Cmd>
      &nbsp; <doRandomWait>false</doRandomWait>
      &nbsp; <modifiedTime>Tue Feb&nbsp; 9 17:17:31 2010</modifiedTime>
      &nbsp; <waitInterval>30</waitInterval>
      

pinger2.pl

      The main, perl script to do all the PingER2 tasks, including ping. There is  detailed information on the Pinger data Flow.

  • Example of IPv6 output:

    Image Added

Logs

There are logs at:

  • /afs/slac.stanford.edu/package/pinger/pinger2/share/pinger/pinger.log
  • /afs/slac.stanford.edu/package/pinger/pinger2/share/pinger/pingerCronStat.stderr
  • /afs/slac.stanford.edu/package/pinger/pinger2/share/pinger/pingerCronStat.stdout

...

...

[slaconly

...

]

...

pinger_startup.pl

...

       This script , alleviates the need to pass multiple arguments to PingER2 everytime every time it needs to be run. It verifies that the pinger2.pl script exists, that pinger.xml is > 100Bytes, and that pinger2.pl is not still running. It has some default values, that make the cronjob and the whole running a clean process. It also has various options to assist in debugging etc.

       With out Without this script a typical run would look like this:

Code Block

cd /afs/slac.stanford.edu/package/pinger/pinger2/share/pinger ;
perl /afs/slac.stanford.edu/package/pinger/pinger2/share/pinger/pinger2.pl >
 /afs/slac.stanford.edu/package/pinger/pinger2/share/pinger/pingerCronStat.stdout;

       However using pinger_startup.pl, this becomes:

Code Block

 /afs/slac/package/pinger/pinger2/share/pinger/pinger_startup.pl

dnsV4Cmd.pl

      This Command Utilises, utilizes the Perl utility gethostbyname() to determine, the ip address of a host, given a hostname.

Include Page

...

PingER2 Data Flow

...

PingER2 Data Flow