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:
- For the SLAC monitoring host: /afs/slac.stanford.edu/package/pinger/pinger2/share/pinger/pinger.xml
- For other (non-SLAC) monitoring hosts: http://www-iepm.slac.stanford.edu/pinger/pinger.xml
- Non-SLAC hosts by default update their beacons every 30 days.
- The last update time can be found by:
cottrell@pinger $ ls -l /afs/slac.stanford.edu/package/pinger/pinger2/share/pinger/pinger.xml
-rw-r--r-- 1 fahad sg 233552 Dec 27 09:51 /afs/slac.stanford.edu/package/pinger/pinger2/share/pinger/pinger.xml
- 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 "%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:
Code Block xml xml <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>
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:
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 |
---|
...
|
...
|