1%% Example snmp (node) config file
2%% [{snmp, [snmp_app()]
3%% snmp_app() -> {agent, agent_opts()} | {manager, manager_opts()}
4%%
5%% -- Agent types --
6%% agent_opts() -> [agent_opt()]
7%% agent_opt()  -> {agent_type,        agent_type()} |
8%%                 {agent_verbosity,   verbosity()} |
9%%                 {versions,          versions()} |
10%%                 {priority,          atom()} |
11%%                 {get_mechanism,     module()} |
12%%                 {set_mechanism,     module()} |
13%%                 {authentication_service, module()} |
14%%                 {multi_threaded,    bool()} |
15%%                 {db_dir,            dir()} |
16%%                 {local_db,          local_db_opts()} |
17%%                 {net_if,            net_if_opts()} |
18%%                 {mibs,              [string()]} |
19%%                 {mib_storage,       mib_storage()} |
20%%                 {mib_server,        mib_server_opts()} |
21%%                 {audit_trail_log,   audit_trail_log_opts()} |
22%%                 {error_report_mod,  module()} |
23%%                 {note_store,        note_store_opts()} |
24%%                 {symbolic_store,    symbolic_store_opts()} |
25%%                 {config,            config_opts()}
26%%                 {supervisor,        supervisor_opts()}
27%% agent_type() -> master | sub
28%% local_db_opts() -> [local_db_opt()]
29%% local_db_opt() -> {repair, repair()} |
30%%                   {auto_save, auto_save()} |
31%%                   {verbosity, verbosity()}
32%% repair() -> true | false | force
33%% auto_save() -> integer() | infinity
34%% net_if_opts() -> [net_if_opt()]
35%% net_if_opt() -> {module,    atom()} |
36%%                 {verbosity, verbosity()} |
37%%                 {options,   net_if_options()}
38%% net_if_options() -> [net_if_option()]
39%% net_if_option() -> Note that these are basically dependant on which net-if
40%%                    module is beeing used, but the options described here
41%%                    are the ones that snmp_net_if (the default value for
42%%                    the module option) handles:
43%%                    {bind_to,   bool()} |
44%%                    {recbuf,    integer()} |
45%%                    {no_reuse,  bool()}
46%%                    {req_limit, integer() | infinity}
47%% mib_server_opts() -> [mib_server_opt()]
48%% mib_server_opt() -> {mibentry_override,  bool()} |
49%%                     {trapentry_override, bool()} |
50%%                     {verbosity,          verbosity()}
51%% mib_storage() -> ets |
52%%                  {dets, dir()} | {dets, dir(), action()} |
53%%                  {mnesia, [node()]} |
54%%                  {mnesia, [node()], action()} |
55%% action() -> clear | keep
56%% symbolic_store_opts() -> [symbolic_store_opt()]
57%% symbolic_store_opt() -> {verbosity, verbosity()}
58%% supervisor_opts() -> [supervisor_opt()]
59%% supervisor_opt()  -> {verbosity, verbosity()}
60%% config_opts() -> [config_opt()]
61%% config_opt()  -> {dir, dir()} |
62%%                  {force_load, bool()} |
63%%                  {verbosity, verbosity()}
64%%
65%%
66%% -- Manager types --
67%% manager_options() -> [manager_option()]
68%% manager_option() -> {net_if,          mgr_net_if_opts()} |
69%%                     {note_store,      note_store_opts()} |
70%%                     {config,          mgr_config_opts()}  |
71%%                     {mibs,            [string()]}   |
72%%                     {priority,        priority()}   |
73%%                     {audit_trail_log, audit_trail_log_opts()} |
74%%                     {versions,        versions()}
75%% mgr_net_if_opts() -> [mgr_net_if_opt()]
76%% mgr_net_if_opt() -> {module,    atom()} |
77%%                     {verbosity, verbosity()} |
78%%                     {options,   mgr_net_if_options()}
79%% mgr_net_if_options() -> [mgr_net_if_option()]
80%% mgr_net_if_option() -> Note that these are basically dependant on which
81%%                        net-if module is beeing used, but the options
82%%                        described here are the ones of the snmpm_net_if
83%%                        (the default value for the module option):
84%%                        {recbuf,   integer()} |
85%%                        {bind_to,  bool()} |
86%%                        {no_reuse, bool()}
87%% mgr_config_opts() -> {dir, dir()} |
88%%                      {verbosity, verbosity()}
89%%
90%% -- Common types --
91%% module() -> atom()
92%% verbosity() -> silence | info | log | debug | trace
93%% versions() -> [version()]
94%% version() -> v1 | v2 | v3
95%% audit_trail_log_opts() -> [audit_trail_log_opt()]
96%% audit_trail_log_opt() -> {type,   atl_type()} |
97%%                          {dir,    atl_dir()} |
98%%                          {size,   atl_size()} |
99%%                          {repair, atl_repair()}
100%% atl_type()   -> read | write | read_write
101%% atl_dir()    -> dir()
102%% atl_size()   -> {max_bytes(), max_files()}
103%% atl_repair() -> true | false | truncate
104%% max_bytes()  -> integer()
105%% max_files()  -> integer()
106%% dir()        -> string()
107%% note_store_opts() -> [note_store_opt()]
108%% note_store_opt() -> {verbosity, verbosity()} |
109%%                     {timeout, integer()}
110%%
111
112[{snmp,
113  [
114   {agent,
115    [{agent_type,      master},
116     {agent_verbosity, trace},
117     {priority,        normal},
118     {versions,        [v1,v2,v3]},
119     {multi_threaded,  true},
120     {config,          [{verbosity, trace},
121                        {dir, "/ldisk/snmp/agent/conf"},
122                        {force_load, true}]},
123     {db_dir,          "/ldisk/snmp/agent/db"},
124     {local_db,        [{repair,    true},
125                        {verbosity, silence}]},
126     {net_if,
127      [{module,    snmp_net_if},
128       {verbosity, log},
129       {options,   [{recbuf, 10240}, {req_limit, 32}]}]},
130     {audit_trail_log, [{type, read_write_log},
131                        {dir,  "/ldisk/snmp/agent/log"}]},
132     {mib_storage, {dets, "/ldisk/snmp/agent/mibs", clear}},
133     {mib_server, [{mibentry_override,true},
134                   {trapentry_override,true},
135                   {verbosity,info}]}
136    ]
137   },
138   {manager,
139    [{priority, normal},
140     {versions, [v1,v2,v3]},
141     {config,   [{dir, "/ldisk/snmp/manager/conf"},
142                 {verbosity, trace}]},
143     {server,   [{verbosity, trace}]},
144     {net_if,
145      [{module,    snmpm_net_if},
146       {verbosity, log},
147       {options,   [{recbuf, 10240}]}]},
148     {audit_trail_log, [{dir,    "/ldisk/snmp/manager/log"},
149                        {size,   {10,10240}},
150                        {repair, true}]}
151    ]
152   }
153  ]
154 }
155].
156