SellaNMS
Module Configuration
[Table of Contents] [Previous] [Next]
 
  Configuration Syntax
  --------------------

   <module-name> {
      <key> <value>;
      policy {
         input [ <policy-name> ... ];
         output [ <policy-name> ... ];
      }
      trace-options [ (all | developer | debug | config | sql | policy-sql | policy | policy-in | policy-out | thread | timer | internal) ];
      <sub-module-name> {
         <key> <value>;
         policy {
            input [ <policy-name> ... ];
            output [ <policy-name> ... ];
         }
         trace-options [ (all | developer | debug | config | sql | policy-sql | policy | policy-in | policy-out | thread | timer | internal) ];
      } 
   }

   system {
      process {
         nice <-20 to 19>;
         pidfile <filename>;
         statfile <filename>;
         core-dump <size in megs>;
      }
      security {
         user <username>;
         group <group>;
         umask <umask-value>;
         chroot <directory>;
      }
      syslog {
         faciliy <level>;
         severity < severity>;
      }
      snmp-mibs {
         <mib-directory>;
      }
      global {
         storage {
            <description> {
               debug;
               driver   (mysql | pgsql);
               server   <hostname>;
               port     <port number>;
               database <database-name>;
               username <username>;
               password <password>;
               compression;
            }
         }
      }
      modules {
         load <filename>;
         <module-name> {
            disable;
            load <filename>;
            options [ (blocks | non-blocking) (resident | non-resident) (thread | process) ];
            order <0-2147483647>;
            schedule {
               startup;
               delay <seconds>;
               cron <crontab format>;
               second (# | #-# | #,# | */#);
               minute (# | #-# | #,# | */#);
               hour (# | #-# | #,# | */#);
               dayofmonth (# | #-# | #,# | */#);
                month (# | #-# | #,# | */#);
               dayofweek (# | #-# | #,# | */#);
            }
            <sub-module-name> {
               disable;
               load <module>;
               options [ (blocks | non-blocking) (resident | non-resident) (thread | process) ];
               order <0-2147483647>;
               schedule {
                  startup;
                  delay <seconds>;
                  cron <crontab format>;
                  second (# | #-# | #,# | */#);
                  minute (# | #-# | #,# | */#);
                  hour (# | #-# | #,# | */#);
                  dayofmonth (# | #-# | #,# | */#);
                  month (# | #-# | #,# | */#);
                  dayofweek (# | #-# | #,# | */#);
               }
            }
         }
      }
   }

  Sella NMS Module Scheduler
  --------------------------

    The Sella NMS scheduler is controlled by utilizing the 'order', 'blocking',
    'non-blocking', 'startup', 'delay', 'schedule', 'thread' and proc ess'
    directives. Modules may have nested sub-modules which follow their own
    scheduler.

    The 'order' directive specifies when a module should be started in relation
    to other modules. A higher ordered module will not be able to start until
    all 'blocking' lower ordered modules have completed and all 'non-blocking'
    lower ordered modules have started.

    The 'schedule' directive specifies the time or interval at which a module
    should run. The time or interval does not start until all 'blocking' lower
    ordered modules have completed. When 'schedule' is combined with
    'non-blocking' (default for schedule) the module will repeatedly start at
    the specified interval. If 'schedule' is combined with 'blocking', it will
    run only once. The 'schedule' directive uses a modified subset of Vixie Cron
    notation, allowing accuracy down to the second. 

    The 'delay' directive will cause a module to wait for a number of seconds
    before starting up. The de lay will begin from the time that the module would
    have normally started. The 'delay' directive can be combined with the
    'schedule' directive, but is only applied on the first iteration.

    The 'startup' directive will cause a module to ignore its 'schedule' on its
    first run (within its parents scope). The 'delay' directive can be combined
    with 'startup'.

    The 'thread' or 'process' directive will cause the module to run as a thread
    or a process. Currently this option is ignored and defaults to thraed.


  Sella NMS Core Directives
  -------------------------

  This section covers directives that are part of the Sella NMS daemon itself.

    system - Specifies options to the Sella NMS daemon, including which modules
             to run.

      Hierarchy: top
      Syntax: system { ... }
      Default: n/a
      Required: yes
      Module: core
      Compatibility: Since v0.3.0.

    modules - Specifies the modules that Sella NMS will run.

      Hierarchy: sys tem
      Syntax: modules { ... }
      Default: n/a
      Required: yes
      Module: core
      Compatibility: Since v0.1.0.

    disable - Disabled module and its children.

      Hierarchy: system module <module-name>
      Syntax: disable
      Default: n/a
      Required: no
      Module: core
      Compatibility: Since v0.3.0.

    load - Specifies a DSO (module) for a module to load and run.

      Hierarchy: system module <module-name>
      Syntax: load <filename>
      Default: n/a
      Required: yes
      Module: core
      Compatibility: Since v0.1.0.

    order - Specifies the order in which the module should be scheduled to run,
            relative to other modules. Lower ordered modules are run before
            higher order modules.

      Hierarchy: system module <module-name>
      Syntax: disable
      Default: n/a
      Required: no
      Module: core
      Compatibility: Since v0.3.0.

    options - Specifies module options.

      Hierarchy: system module <mod ule-name>
      Syntax: options { ... }
      Default: n/a
      Required: no
      Module: core
      Compatibility: Since v0.3.0.

    blocking - Specifies if the module should block modules from a higher order
               from running.

      Hierarchy: system module <module-name> options
      Syntax: blocking
      Default: blocking
      Required: no
      Module: core
      Compatibility: Since v0.3.0.

    non-blocking - Specifies if the module should not block modules from a
                   higher order from running.

      Hierarchy: system module <module-name> options
      Syntax: non-blocking
      Default: blocking
      Required: no
      Module: core
      Compatibility: Since v0.3.0.

    resident - Specifies if the module's library should stay resident when not
               scheduled to be running, resulting in less system library calls.
               Only applies to non-blocking modules.

      Hierarchy: system module <module-name> options
      Syntax: res ident
      Default: non-resident
      Required: no
      Module: core
      Compatibility: Since v0.3.0.

    non-resident - Specifies if the module should be unloaded when not scheduled
                   to be running.

      Hierarchy: system module <module-name> options
      Syntax: non-resident
      Default: non-resident
      Required: no
      Module: core
      Compatibility: Since v0.3.0.

    thread - Specifies that the module should run as a child thread of its
             parent.

      Hierarchy: system module <module-name> options
      Syntax: thread
      Default: thread
      Required: no
      Module: core
      Compatibility: Future

    process - Specifies that the module should run as a process owned by its
             parent.

      Hierarchy: system module <module-name> options
      Syntax: process
      Default: thread
      Required: no
      Module: core
      Compatibility: Future

    schedule - Specifies various intervals at which a module should run , in a
               modified crontab-style format.

      Hierarchy: system module <module-name>
      Syntax: option { ... }
      Default: n/a
      Required: no
      Module: core
      Compatibility: Since v0.3.0.
      Notes:

        Specifying a schedule implies the module option 'non-blocking', unless
        'blocking' is specified. 

        Schedule supports a subset of Vixie Cron notations for fields. Supported
        notations include ranges (5-10), lists (1,3,5,7), and steps (*/5).

        Below are the allowed values for each field.

        field       allowed values
        -----       --------------
        second      0-59
        minute      0-59
        hour        0-23
        dayofmonth  1-31
        month       1-12
        dayofweek   0-7 (0 or 7 is Sun)

    global - Specifies configuration that is available to all modules that
             Sella NMS will run.

      Hierarchy: system
      Syntax: global { ... }
      Default: n/a
      Required: yes
       Module: core
      Compatibility: Since v0.3.0.

    storage - Specifies storage configuration that is available to all
              modules that Sella NMS will run.

      Hierarchy: system global
      Syntax: storage <description> { ... }
      Default: n/a
      Required: yes
      Module: core
      Compatibility: Since v0.3.0.

    type - Specifies the database type to use. This directly triggers libdbi's
           database plugins. The default is MySQL.

      Syntax:  type (mysql | pgsql)
      Context: system global storage <description> { ... }
      Default: mysql
      Required: no
      Module: core (libstorage.so)
      Compatibility: Since v0.3.0.

    server - Specifies the IP address or hostname of the database server. If
             this is set to 'localhost', then the client library will use the
             default file socket for access (usually /tmp/mysql.socket).

      Syntax:  server <IP or hostname>
      Context: system global storage <description> { ...  }
      Default: localhost
      Required: no
      Module: core (libstorage.so)
      Compatibility: Since v0.3.0.

    socket - Specifies the database socket to use, rather than using TCP/IP.

      Syntax:  socket <filename>
      Context: system global storage <description> { ... }
      Default: /tmp/mysql.socket
      Required: no
      Module: core (libstorage.so)
      Compatibility: Since v0.3.0.


    port - Specifies the TCP port to use when accessing the database.

      Syntax:  port <integer>
      Context: system global storage <description> { ... }
      Default: 3306
      Required: no
      Module: core (libstorage.so)
      Compatibility: Since v0.3.0.

    database - Specifies the database to utilize.

      Syntax:  database <string>
      Context: system global storage <description> { ... }
      Default: sella_nms
      Required: no
      Module: core (libstorage.so)
      Compatibility: Since v0.3.0.


    username - Specifies the MySQL username when connecting  to the database.

      Syntax:  username <string>
      Context: system global storage <description> { ... }
      Default: sella_nms
      Required: no
      Module: core (libstorage.so)
      Compatibility: Since v0.3.0.


    password - Specifies the MySQL password when connecting to the database.

      Syntax:  password <string>
      Context: system global storage <description> { ... }
      Default: empty string/no password
      Required: no
      Module: core (libstorage.so)
      Compatibility: Since v0.3.0.

    compression - Specifies that data should be compressed on connections 
                  to the database. This will cause additional overhead when 
                  communicating with the database, but could give a speed
                  benefit if you are reading or writing to a database over a
                  low speed Internet connection. Not Recommended.

      Syntax:  compression
      Context: system global storage <description> { ... }
      Default: di sabled
      Required: no
      Module: core (libstorage.so)
      Compatibility: Since v0.3.0.


  Sella NMS Module Directives
  ---------------------------
  
    discovery - Specifies options to the discovery daemon.

      Syntax: discovery { ... }
      Context: root, module
      Default: n/a
      Required: yes
      Module: libdiscovery.so
      Compatibility: Since v0.1.0.

    monitor - Specifies options to the monitor daemon.

      Syntax: discovery { ... }
      Context: root, module
      Default: n/a
      Required: yes
      Module: libmonitor.so
      Compatibility: Since v0.3.0.

    output - Specifies options to the output module.

      Syntax: output { ... }
      Context: module
      Default: n/a
      Required: yes
      Module: liboutput.so
      Compatibility: Since v0.3.0.

    icmp - Specifies options to specific to the icmp module.

      Syntax: icmp { ... }
      Context: discovery, module discovery
      Default: n/a
      Required: no
      Module: libi cmp.so (discovery)
      Compatibility: Since v0.1.0.

    snmp - Specifies options to specific to the snmp module.

      Syntax: snmp { ... }
      Context: discovery, module discovery
      Default: n/a
      Required: no
      Module: libsnmp.so (discovery)
      Compatibility: Since v0.2.0.

    topology - Specifies options to specific to the topology module.

      Syntax: topology { ... }
      Context: discovery, module discovery
      Default: n/a
      Required: no
      Module: libtopology.so (discovery)
      Compatibility: Since v0.2.0.

    interface - Specifies the interface to send packets from.

      Syntax:  interface <name>
      Context: <daemon-name> icmp
      Default: System Default
      Required: no
      Module: libicmp.so (discovery), libicmp.so (monitor)
      Compatibility: Since v0.2.0.

    send - Specifies the number of packets to send to each IP.

      Syntax:  transmit <number>
      Context: <daemon-name> <module-name>
      Default: 3
      Require d: no
      Module: libicmp.so (discovery)
      Compatibility: Since v0.1.0.

    require - Specifies the number of packets required to return from an active device.

      Syntax:  require <number>
      Context: <daemon-name> <module-name>
      Default: 1
      Required: no
      Module: libicmp.so (discovery)
      Compatibility: Since v0.1.0.

    timeout - Specifies the timeout between retrys in milliseconds. Longer
              timeout settings will make a discovery take longer, but will
              allow loaded devices more time to answer.

      Syntax:  timeout <milliseconds>
      Context: deamon_name <module-name>
      Default: 2000
      Required: no
      Module: libicmp.so (discovery), libsnmp.so (discovery)
      Compatibility: Since v0.1.0.

    threads - Specifies the number of threads to use for this module.

      Syntax: threads <number>
      Context: <daemon-name> <module-name>
      Default: 16
      Required: no
      Module: libsnmp.so (discovery)
      C ompatibility: Since v0.2.0.

    retry - Specifies the number of times to retry a device, after the first attempt
            to connect has failed.

      Syntax:  require <number>
      Context: <daemon-name> <module-name>
      Default: 2
      Required: no
      Module: libsnmp.so (discovery)
      Compatibility: Since v0.2.0.

    prefix - Specifies the prefix(es) to scan for active devices. Supports CIDR
             notation.

      Syntax:  netblock <netblock | { ... }>
      Context: <daemon-name> <module-name>
      Default: n/a
      Required: no
      Module: libicmp.so (discovery), libsnmp.so (discovery)
      Compatibility: Since v0.3.0.

    oid - Specifies the oids that should be collected from a device. Supports both
          numbered OIDs and named OIDs.

      Syntax:  oid <oid_name | { ... }>
      Context: <daemon-name> <module-name>
      Default: n/a
      Required: no
      Module: libsnmp.so (discovery)
      Compatibility: Since v0.2.0.
 
[Table of Contents] [Previous] [Next]