Provided by: erlang-manpages_10.b.7-1_all bug

NAME

       snmp - The SNMP Application

DESCRIPTION

       This   chapter   describes  the  snmp  application  in  OTP.  The  SNMP
       application provides the following services:

         * a multilingual extensible SNMP agent

         * a SNMP manager

         * a MIB compiler

Configuration

       The  following  configuration  parameters  are  defined  for  the  SNMP
       application.   Refer  to  application(3)  for  more  information  about
       configuration parameters.

       A minimal config file for starting a node with both a  manager  and  an
       agent:

             [{snmp,
               [{agent, [{db_dir, "/tmp/snmp/agent/db"},
                         {config, [{dir, "/tmp/snmp/agent/conf"}]}]},
                {manager, [{config, [{dir, "/tmp/snmp/manager/conf"},
                                     {db_dir, "/tmp/snmp/manager/db"}]}]}]}
               ]
              }
             ].

         agent = [agent_opt()]:
             agent_opt()  =  {agent_type,  agent_type()}  |  {agent_verbosity,
             verbosity()} | {versions, versions()} | {priority, priority()}  |
             {multi_threaded,   multi_threaded()}   |   {db_dir,  db_dir()}  |
             {local_db, local_db()} | {net_if, net_if()} |  {mibs,  mibs()}  |
             {mib_storage,   mib_storage()}  |  {mib_server,  mib_server()}  |
             {audit_trail_log,   audit_trail_log()}    |    {error_report_mod,
             error_report_mod()}     |     {note_store,     note_store()}    |
             {symbolic_store, symbolic_store()} | {config, agent_config()}

             The SNMP agent specific options.

         manager = [manager_opt()]:
             manager_opt() = {net_if, manager_net_if()} | {server, server()} |
             {note_store,  note_store()} | {config, manager_config()} | {mibs,
             manager_mibs()}  |  {priority,  priority()}  |  {audit_trail_log,
             audit_trail_log()}  |  {versions,  versions() | {def_user_module,
             def_user_module() | {def_user_data, def_user_data()}

             The SNMP manager specific options.

       Agent specific config options and types:

         agent_type() = master | sub <optional>:
             If master, one master agent is started. Otherwise, no agents  are
             started.

             Default is master.

         multi_threaded() = bool() <optional>:
             If  true,  the  agent is multi-threaded, with one thread for each
             get request.

             Default is false.

         db_dir() = string() <mandatory>:
             Defines where the SNMP agent internal db files are stored.

         local_db() = [local_db_opt()] <optional>:
             local_db_opt()   =   {repair,   agent_repair()}   |   {auto_save,
             agent_auto_save()} | {verbosity, verbosity()}

             Defines options specific for the SNMP agent local database.

             For defaults see the options in local_db_opt().

         agent_repair() = false | true | force <optional>:
             When  starting snmpa_local_db it always tries to open an existing
             database. If false, and some errors  occur,  a  new  database  is
             created  instead.  If true, an existing file will be repaired. If
             force, the table will be repaired even if it was properly closed.

             Default is true.

         agent_auto_save() = integer() | infinity <optional>:
             The auto save interval. The table is fluched to disk whenever not
             accessed for this amount of time.

             Default is 5000.

         agent_net_if() = [agent_net_if_opt()] <optional>:
             agent_net_if_opt()   =    {module,    agent_net_if_module()}    |
             {verbosity, verbosity()} | {options, agent_net_if_options()}

             Defines  options  specific  for  the SNMP agent network interface
             entity.

             For defaults see the options in agent_net_if_opt().

         agent_net_if_module() = atom() <optional>:
             Module which handles the network  interface  part  for  the  SNMP
             agent. Must implement the snmpa_network_interface  behaviour.

             Default is snmpa_net_if.

         agent_net_if_options() = [agent_net_if_option()] <optional>:
             agent_net_if_option() = {bind_to, bind_to()} | {recbuf, recbuf()}
             | {no_reuse, no_reuse()} | {req_limit, req_limit()}

             These options are actually specific to the used module. The  ones
             shown here are applicable to the default agent_net_if_module().

             For defaults see the options in agent_net_if_option().

         req_limit() = integer() | infinity <optional>:
             Max number of simultanious requests handled by the agent.

             Default is infinity.

         agent_mibs() = [string()] <optional>:
             Specifies a list of MIBs (including path) that defines which MIBs
             are initially loaded into the SNMP master agent.

             Note that the following mibs will allways be loaded:

               * version v1: STANDARD-MIB

               * version v2: SNMPv2

               * version v3: SNMPv2, SNMP-FRAMEWORK-MIB and SNMP-MPD-MIB

             Default is [].

         mib_storage() = ets | {dets, Dir} | {dets, Dir,  Action}  |  {mnesia,
         Nodes} | {mnesia, Nodes, Action} <optional>:
             Specifies how info retrieved from the mibs will be stored.

             Default is ets.

             Dir = string(). Dir is the directory where the (dets) files  will
             be created.

             Nodes = [node()]. If Nodes = [] then the own node is assumed.

             Action = clear | keep. Default is keep. Action is used to specify
             what shall be done if the mnesia table already exist.

         mib_server() = [mib_server_opt()] <optional>:
             mib_server_opt()  =  {mibentry_override,  mibentry_override()}  |
             {trapentry_override,    trapentry_override()}    |    {verbosity,
             verbosity()}

             Defines options specific for the SNMP agent mib server.

             For defaults see the options in mib_server_opt().

         mibentry_override() = bool() <optional>:
             If this value is false, then when loading a mib each  mib-  entry
             is  checked  prior to installation of the mib. The perpose of the
             check is to prevent that the same symbolic mibentry name is  used
             for different oid’s.

             Default is false.

         trapentry_override() = bool() <optional>:
             If  this  value  is  false,  then when loading a mib each trap is
             checked prior to installation of the  mib.  The  perpose  of  the
             check  is to prevent that the same symbolic trap name is used for
             different trap’s.

             Default is false.

         error_report_mod() = atom() <optional>:
             Defines   an    error    report    module,    implementing    the
             snmpa_error_report  behaviour.  Two modules are provided with the
             toolkit: snmpa_error_logger and snmpa_error_io.

             Default is snmpa_error_logger.

         symbolic_store() = [symbolic_store_opt()]:
             symbolic_store_opt() = {verbosity, verbosity()}

             Defines options specific for the SNMP agent symbolic store.

             For defaults see the options in symbolic_store_opt().

         agent_config() = [agent_config_opt()] <mandatory>:
             agent_config_opt() =  {dir,  agent_config_dir()}  |  {force_load,
             force_load()} | {verbosity, verbosity()}

             Defines specific config related options for the SNMP agent.

             For defaults see the options in agent_config_opt().

         agent_config_dir = dir() <mandatory>:
             Defines where the SNMP agent configuration files are stored.

         force_load() = bool() <optional>:
             If  true  the configuration files are re-read during startup, and
             the contents of the  configuration  database  ignored.  Thus,  if
             true,  changes to the configuration database are lost upon reboot
             of the agent.

             Default is false.

       Manager specific config options and types:

         server() = [server_opt()] <optional>:
             server_opt()  =   {timeout,   server_timeout()}   |   {verbosity,
             verbosity()}

             Specifies the options for the manager server process.

             Default is silence.

         server_timeout() = integer() <optional>:
             Asynchroneous request cleanup time. For every requests, some info
             is stored internally, in order to be able to  deliver  the  reply
             (when  it  arrives)  to  the  proper  destination.  If  the reply
             arrives, this info will be deleted. But if there is no relpy  (in
             time),  the info has to be deleted after the best before time has
             been passed. This cleanup will be performed at regular intervals,
             defined  by  the server_timeout() time. The information will have
             an best before time,  defined  by  the  Expire  time  given  when
             calling the request function (see ag, agn and as).

             Time in milli-seconds.

             Default is 30000.

         manager_config() = [manager_config_opt()] <mandatory>:
             manager_config_opt()  =  {dir,  manager_config_dir()}  | {db_dir,
             manager_db_dir()}  |  {repair,  manager_repair()}  |  {verbosity,
             verbosity()}

             Defines specific config related options for the SNMP manager.

             For defaults see the options in manager_config_opt().

         manager_config_dir = dir() <mandatory>:
             Defines where the SNMP manager configuration files are stored.

         manager_db_dir = dir() <mandatory>:
             Defines where the SNMP manager store persistent data.

         manager_repair() = false | true | force <optional>:
             Defines the repair option for the persistent database (if and how
             the table is repaired when opened).

             Default is true.

         manager_auto_save() = integer() | infinity <optional>:
             The auto save interval. The table is fluched to disk whenever not
             accessed for this amount of time.

             Default is 5000.

         manager_mibs() = [string()] <optional>:
             Specifies  a list of MIBs (including path) and defines which MIBs
             are initially loaded into the SNMP manager.

             Default is [].

         manager_net_if() = [manager_net_if_opt()] <optional>:
             manager_net_if_opt()  =   {module,   manager_net_if_module()}   |
             {verbosity, verbosity()} | {options, manager_net_if_options()}

             Defines  options  specific for the SNMP manager network interface
             entity.

             For defaults see the options in manager_net_if_opt().

         manager_net_if_options() = [manager_net_if_option()] <optional>:
             manager_net_if_option()  =   {recbuf,   recbuf()}   |   {bind_to,
             bind_to()} | {no_reuse, no_reuse()}

             These  options are actually specific to the used module. The ones
             shown here are applicable to the default manager_net_if_module().

             For defaults see the options in manager_net_if_option().

         manager_net_if_module() = atom() <optional>:
             Module  which  handles  the  network  interface part for the SNMP
             manager. Must implement the snmpm_network_interface  behaviour.

             Default is snmpm_net_if.

         def_user_module() = atom() <optional>:
             The module implementing the  default  user.  See  the  snmpm_user
             behaviour.

             Default is snmpm_user_default.

         def_user_data() = term() <optional>:
             Data for the default user. Passed to the user module when calling
             the callback functions.

             Default is undefined.

       Common config types:

         priority() = atom() <optional>:
             Defines the Erlang priority for all SNMP processes.

             Default is normal.

         versions() = [version()] <optional>:
             version() = v1 | v2 | v3

             Which SNMP versions shall be accepted/used.

             Default is [v1, v2, v3].

         verbosity() = silence | info | log | debug | trace <optional>:
             Verbosity for a SNMP process. This specifies now much debug  info
             is printed.

             Default is silence.

         bind_to() = bool() <optional>:
             If  true, net_if binds to the IP adress. If false, net_if listens
             on any IP address on the host where it is running.

             Default is false.

         no_reuse() = bool() <optional>:
             If true, net_if does not specify that the  IP  and  port  address
             should be reusable. If false, the address is set to reusable.

             Default is false.

         recbuf() = integer() <optional>:
             Receive buffer size.

             Default value is defined by gen_udp.

         note_store() = [note_store_opt()] <optional>:
             note_store_opt()   =   {timeout,   gc_timeout()}   |  {verbosity,
             verbosity()}

             Specifies the startup verbosity for the SNMP note store.

             Default is silence.

         gc_timeout() = integer() <optional>:
             Note cleanup time. When storing a note in the  note  store,  each
             note  is  given  lifetime.  Every  timeout the note_store process
             performs a GC to  remove  the  expired  note’s.  Time  in  milli-
             seconds.

             Default is 30000.

         audit_trail_log() = [audit_trail_log_opt()] <optional>:
             audit_trail_log_opt()  =  {type, atl_type()} | {dir, atl_dir()} |
             {size, atl_size()} | {repair, atl_repair()}

             If present, this option specifies the options for the audit trail
             logging.  The  disk_log module is used to maintain a wrap log. If
             present, the dir and size options are mandatory.

             If not present, audit trail logging is not used.

         atl_type() = read | write | read_write <optional>:
             Specifies what type of an audit trail log  should  be  used.  The
             effect  of  the  type is actually different for the the agent and
             the manager.

             For the agent:

               * If write is specified, only set requests are logged.

               * If read is specified, only get requests are logged.

               * If read_write, all requests are logged.

             For the manager:

               * If write is specified, only sent messages are logged.

               * If read is specified, only received messages are logged.

               * If read_write,  both  outgoing  and  incomming  messages  are
                 logged.

             Default is read_write.

         atl_dir = dir() <mandatory>:
             Specifies where the audit trail log should be stored.

             If audit_trail_log specifies that logging should take place, this
             parameter must be defined.

         atl_size() = {integer(), integer()} <mandatory>:
             Specifies the size of the audit trail log. This parameter is sent
             to disk_log.

             If audit_trail_log specifies that logging should take place, this
             parameter must be defined.

         atl_repair() = true | false | truncate <optional>:
             Specifies if and how the audit trail log shall be  repaired  when
             opened. This parameter is sent to disk_log.

             Default is true.

See Also

       application(3), disk_log(3)

AUTHOR

       Martin Björklund - support@erlang.ericsson.se