Sven Nierlein


Monitoring::Generator::TestConfig - generate monitoring configurations (nagios/icinga/shinken)


  use Monitoring::Generator::TestConfig;
  my $ngt = Monitoring::Generator::TestConfig->new( 'output_dir' => '/tmp/test_monitoring' );


This modul generates test configurations for your monitoring. This can be useful if you want for doing load tests or testing addons and plugins.


new ( [ARGS] )

Creates an Monitoring::Generator::TestConfig object. new takes at least the output_dir. Arguments are in key-value pairs.

    verbose                     verbose mode
    output_dir                  export directory
    overwrite_dir               overwrite contents of an existing directory. Default: false
    layout                      which config should be generated, valid options are "nagios", "icinga", "shinken" and "omd"
    user                        user, defaults to the current user
    group                       group, defaults to the current users group
    prefix                      prefix to all hosts / services
    binary                      path to your nagios/icinga bin
    hostcount                   amount of hosts to export, Default 10
    hostcheckcmd                use custom hostcheck command line
    servicecheckcmd             use custom servicecheck command line
    routercount                 amount of router to export, Default 5 ( exported as host and used as parent )
    services_per_host           amount of services per host, Default 10
    host_settings               key/value settings for use in the define host
    service_settings            key/value settings for use in the define service
    main_cfg                    overwrite/add settings from the nagios.cfg/icinga.cfg
    hostfailrate                chance of a host to fail, Default 2%
    servicefailrate             chance of a service to fail, Default 5%
    host_types                  key/value settings for percentage of hosttypes, possible keys are up,down,flap,random,block
    router_types                key/value settings for percentage of hosttypes for router
    service_types               key/value settings for percentage of servicetypes, possible keys are ok,warning,critical,unknown,flap,random,block
    skip_dependencys            no service dependencys will be exported



 generates and writes the configuration
 Returns true on success or undef on errors.


OMD Users

Using OMD makes generating test configs really easy:

    #> create site test
    #> su - test
    OMD[test]:~$ cpan
    Would you like me to configure as much as possible automatically? [yes] <enter>
    cpan[1]> install Monitoring::Generator::TestConfig
    cpan[2]> exit
    OMD[test]:~$ ./local/lib/perl5/bin/

After the first installation, configuration can be adjusted in the in your SITE directory.

Sample Script

Create a sample config with manually overriden host/service settings:

    use Monitoring::Generator::TestConfig;
    my $mgt = Monitoring::Generator::TestConfig->new(
                        'output_dir'                => '/tmp/test-conf',
                        'verbose'                   => 1,
                        'overwrite_dir'             => 1,
                        'user'                      => 'testuser',
                        'group'                     => 'users',
                        'hostcount'                 => 50,
                        'services_per_host'         => 20,
                        'main_cfg'                  => {
                                'debug_level'     => 1,
                                'debug_verbosity' => 1,
                        'hostfailrate'              => 2, # percentage (only for the random ones)
                        'servicefailrate'           => 5, # percentage (only for the random ones)
                        'host_settings'             => {
                                'normal_check_interval' => 10,
                                'retry_check_interval'  => 1,
                        'service_settings'          => {
                                'normal_check_interval' => 10,
                                'retry_check_interval'  => 2,
                        'host_types'                => {
                                        'down'         => 5, # percentage
                                        'up'           => 50,
                                        'flap'         => 5,
                                        'pending'      => 5,
                                        'random'       => 30,
                                        'block'        => 5,
                        'service_types'             => {
                                        'ok'           => 50, # percentage
                                        'warning'      => 5,
                                        'unknown'      => 5,
                                        'critical'     => 5,
                                        'pending'      => 5,
                                        'flap'         => 5,
                                        'random'       => 20,
                                        'block'        => 5,


Sven Nierlein, <>


Copyright (C) 2009 by Sven Nierlein

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.