| 89 |
rodolico |
1 |
#! /usr/bin/env perl
|
|
|
2 |
use warnings;
|
|
|
3 |
use strict;
|
|
|
4 |
use YAML::Tiny;
|
|
|
5 |
|
|
|
6 |
# basically, if you're not that good with YAML, like me, this will
|
|
|
7 |
# let you create the config as a hashref, then run the script
|
|
|
8 |
# which will give you a file (config.yaml) that is the YAML equivilent.
|
|
|
9 |
#
|
|
|
10 |
# rename the created file to monitorNetwork.yaml and it is now your
|
|
|
11 |
# config file
|
|
|
12 |
#
|
|
|
13 |
# rename this file to makeConfig, edit it, then save and run.
|
|
|
14 |
# It will not be overwritten by svn updates
|
|
|
15 |
|
|
|
16 |
my $config = {
|
|
|
17 |
'defaults' => { # defaults if not specified in site
|
|
|
18 |
'timeout' => 60, # the default timeout, in seconds
|
|
|
19 |
'failure count' => 0, # the number of successive failures before a report
|
| 92 |
rodolico |
20 |
'report to' => 'me@example.com',
|
| 89 |
rodolico |
21 |
'report type' => 'mail',
|
| 92 |
rodolico |
22 |
'report from' => 'root@localhost',
|
| 93 |
rodolico |
23 |
'type' => 'netcat'
|
| 89 |
rodolico |
24 |
},
|
|
|
25 |
'sites to check' => { # all sites to check
|
| 92 |
rodolico |
26 |
'some web site' => { # this is for display purposes only
|
| 89 |
rodolico |
27 |
'url' => 'http://example.com', # the actual URL to use
|
|
|
28 |
'type' => 'lwp' # type of test to run
|
|
|
29 |
},
|
| 92 |
rodolico |
30 |
'something that responds to icmp' => {
|
| 89 |
rodolico |
31 |
'url' => '192.168.1.50',
|
|
|
32 |
'type' => 'ping',
|
|
|
33 |
'timeout' => 20 # 20 second timeout
|
|
|
34 |
},
|
| 92 |
rodolico |
35 |
'site with netcat server running' => {
|
|
|
36 |
'url' => '192.168.1.51',
|
|
|
37 |
'type' => 'netcat',
|
|
|
38 |
'port' => 45654,
|
| 93 |
rodolico |
39 |
# any additional netcat parameters. This is not checked, so
|
|
|
40 |
# use at your own risk.
|
|
|
41 |
'additional parameters' => '-u',
|
| 92 |
rodolico |
42 |
'timeout' => 3 # 20 second timeout
|
|
|
43 |
},
|
| 89 |
rodolico |
44 |
}
|
|
|
45 |
};
|
|
|
46 |
|
|
|
47 |
# types of tests are listed in the code, and each test can take.
|
|
|
48 |
# different parameters. Read the comments at the top of the file
|
|
|
49 |
|
|
|
50 |
my $yaml = YAML::Tiny->new( $config );
|
|
|
51 |
$yaml->write( 'config.yaml' );
|
|
|
52 |
|