Provided by: erlang-manpages_11.b.5-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()   =  {restart_type,  restart_type()}  |  {agent_type,
             agent_type()}  |  {agent_verbosity,  verbosity()}  |   {versions,
             versions()}   |   {priority,   priority()}   |   {multi_threaded,
             multi_threaded()}  |   {db_dir,   db_dir()}   |   {db_init_error,
             db_init_error()}    |    {local_db,    local_db()}   |   {net_if,
             agent_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()}    |
             {target_cache, target_cache()} | {config, agent_config()}

             The SNMP agent specific options.

         manager = [manager_opt()]:
             manager_opt()  =  {restart_type,   restart_type()}   |   {net_if,
             manager_net_if()}    |    {server,   server()}   |   {note_store,
             note_store()}      |      {config,      manager_config()}       |
             {inform_request_behaviour,      manager_irb()}      |      {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 flushed 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()} | {sndbuf, sndbuf()}
             | {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 | {ets, Dir} | {ets, Dir, Action} | dets | {dets,
         Dir} | {dets, Dir, Action} | mnesia  |  {mnesia,  Nodes}  |  {mnesia,
         Nodes, Action} <optional>:
             Specifies how info retrieved from the mibs will be stored.

             If  mib_storage  is  {ets, Dir}, the table will also be stored on
             file. If Dir is default, then db_dir will be used.

             If mib_storage is dets or if Dir is default, then db_dir will  be
             used for Dir.

             If  mib_storage  is  mnesia  then erlang:nodes() will be used for
             Nodes.

             Default is ets.

             Dir = default | string(). Dir is the directory  where  the  files
             will be stored. If default, then db_dir will be used.

             Nodes  =  visible  |  connected  |  [node()].  Nodes = visible is
             translated  to  erlang:nodes(visible).  Nodes  =   connected   is
             translated to erlang:nodes(connected). 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/dets 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().

         target_cache() = [target_cache_opt()]:
             target_cache_opt() = {verbosity, verbosity()}

             Defines options specific for the SNMP agent target cache.

             For defaults see the options in target_cache_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()}  |  {db_init_error, db_init_error()} | {repair,
             manager_repair()}   |    {auto_save,    manager_auto_save()}    |
             {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 flushed to disk whenever not
             accessed for this amount of time.

             Default is 5000.

         manager_irb() = auto | user | {user, integer()} <optional>:
             This  option  defines  how the manager will handle the sending of
             response (acknowledgement) to received inform-requests.

               * auto  -  The  manager   will   autonomously   send   response
                 (acknowledgement> to inform-request messages.

               * {user,   integer()}   -   The   manager  will  send  response
                 (acknowledgement)  to  inform-request   messages   when   the
                 handle_inform function completes. The integer is the time, in
                 milli-seconds, that the  manager  will  consider  the  stored
                 inform-request info valid.

               * user  -  Same  as  {user, integer()}, except that the default
                 time, 15 seconds (15000), is used.

             See snmpm_network_interface , handle_inform and definition of the
             manager net if  for more info.

             Default is auto.

         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()  =  {bind_to,   bind_to()}   |   {sndbuf,
             sndbuf()} | {recbuf, recbuf()} | {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:

         restart_type() = permanent | transient | temporary:
             See supervisor documentaion for more info.

             Default is permanent for the agent and transient for the manager.

         db_init_error() = terminate | create:
             Defines  what  to do if the agent or manager is unable to open an
             existing database file. terminate means  that  the  agent/manager
             will  terminate  and  create  means  that  the agent/manager will
             remove the faulty file(s) and create new ones.

             Default is terminate.

         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.

         sndbuf() = integer() <optional>:
             Send buffer size.

             Default value is defined by gen_udp.

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

             Specifies the startup verbosity for the SNMP note store.

             For defaults see the options in note_store_opt().

         note_store_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 | snmp_repair <optional>:
             Specifies if and how the audit trail log shall be  repaired  when
             opened.  Unless  this  parameter  has the value snmp_repair it is
             sent  to  disk_log.  If,  on  the  other  hand,  the   value   is
             snmp_repair,  snmp attempts to handle certain faults on it’s own.
             And even if it cannot repair the file, it does  not  truncate  it
             directly, but instead moves it aside for later off-line analysis.

             Default is true.

See Also

       application(3), disk_log(3)

AUTHOR

       Martin Bjorklund - support@erlang.ericsson.se