Using configuration file pinger.xml, PingER2 determines the sites, it needs to gather data from.
PingER2 in slac resides under /afs/slac/package/pinger/pinger2/share/pinger/. This directory contains all the scripts, needed by PingER2 except for lynx, ping,ping6,dig and other similar binaries. The directory contains:
1. pinger.xml
- This file contains the configuration values for pinger2. It gets created every 6 hours, as a result of running write_offsitenodes.pl
- 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 hostlist, any value that is not in there for a host, is picked up from here.
- It is advised that DNS Caching be turned off, to cause PingER2 to do a new dns request every time.
- PingER2 throws all the error messages at the same time, when the time to notification is achieved. The default value is 12 hours. If you wish to store this information instead, in a log file, replace the
<AlarmCmd>echo "%message\n-----------------\n" >> /afs/slac.stanford.edu/package/pinger/pinger2/share/pinger/pinger.log </AlarmCmd>
- HostList: List of hosts, PingER2 gathers data from.
- Final Configuration values:
<MaxProcessCount>25</MaxProcessCount> <PingV4Cmd>/bin/ping \-n \-w %deadline \-c %count \-i %interval \-s %packetsize %destination</PingV4Cmd> <PingV6Cmd>/bin/ping6 \-n \-w %deadline \-c %count \-i %interval \-s %packetsize %destination</PingV6Cmd> <SrcName>pinger.slac.stanford.edu</SrcName> <Version>2.0.1</Version> <dnsV4Cmd>/afs/slac/package/pinger/pinger2/share/pinger/dnsV4Cmd.pl %destination</dnsV4Cmd> <dnsV6Cmd>/usr/bin/dig \-t aaaa \+short %destination</dnsV6Cmd> <doRandomWait>false</doRandomWait> <modifiedTime>Tue Feb 9 17:17:31 2010</modifiedTime> <waitInterval>30</waitInterval>
2. dnsV4Cmd.pl
This Command Utilises, Perl utility gethostbyname() to determine, the ip address of a host, given a hostname.
3. pinger2.pl
The main, perl script to do all the PingER2 tasks, including ping.
4. [slaconly]pinger.log
Log File for PingER2.
5. [slaconly]pinger_startup.pl
This script, alleviates the need to pass multiple arguments to PingER2 everytime it needs to be run. It has some default values, that make the cronjob and the whole running a clean process.
With out this script a typical run would look like:
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:
/afs/slac/package/pinger/pinger2/share/pinger/pinger_startup.pl