|
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] |
|