snmpstats Improve README formatting of list of items in MIB
[sip-router] / modules / snmpstats / README
1 SNMPStats Module (Simple Network Management Protocal Statistic Module)
2
3 Jeffrey Magder
4
5    SOMA Networks, Inc.
6
7 Edited by
8
9 Jeffrey Magder
10
11 Edited by
12
13 Olle E. Johansson
14
15    Copyright © 2006 SOMA Networks, Inc.
16
17    Copyright © 2013 Edvina AB, Sollentuna, Sweden
18      __________________________________________________________________
19
20    Table of Contents
21
22    1. Admin Guide
23
24         1. Overview
25
26               1.1. General Scalar Statistics
27               1.2. SNMP Tables
28               1.3. Alarm Monitoring
29
30         2. How it works
31
32               2.1. How the SNMPStats module gets its data
33               2.2. How data is moved from the SNMPStats module to a NOC
34
35         3. Dependencies
36
37               3.1. Kamailio Modules
38               3.2. External Libraries or Applications
39
40         4. Parameters
41
42               4.1. sipEntityType (String)
43               4.2. MsgQueueMinorThreshold (Integer)
44               4.3. MsgQueueMajorThreshold (Integer)
45               4.4. dlg_minor_threshold (Integer)
46               4.5. dlg_major_threshold (Integer)
47               4.6. snmpgetPath (String)
48               4.7. snmpCommunity (String)
49               4.8. export_registrar (int)
50
51         5. Functions
52         6. Installation and Running
53
54               6.1. Compiling the SNMPStats Module
55               6.2. Configuring NetSNMP to allow connections from the
56                       SNMPStats module.
57
58               6.3. Configuring the SNMPStats module for communication with
59                       a Master Agent
60
61               6.4. Testing for a proper Configuration
62
63    2. Frequently Asked Questions
64
65    List of Examples
66
67    1.1. Setting the sipEntityType parameter
68    1.2. Setting the MsgQueueMinorThreshold parameter
69    1.3. Setting the MsgQueueMajorThreshold parameter
70    1.4. Setting the dlg_minor_threshold parameter
71    1.5. Setting the dlg_major_threshold parameter
72    1.6. Setting the snmpgetPath parameter
73    1.7. Setting the snmpCommunity parameter
74    1.8. Setting the export_registrar parameter
75
76 Chapter 1. Admin Guide
77
78    Table of Contents
79
80    1. Overview
81
82         1.1. General Scalar Statistics
83         1.2. SNMP Tables
84         1.3. Alarm Monitoring
85
86    2. How it works
87
88         2.1. How the SNMPStats module gets its data
89         2.2. How data is moved from the SNMPStats module to a NOC
90
91    3. Dependencies
92
93         3.1. Kamailio Modules
94         3.2. External Libraries or Applications
95
96    4. Parameters
97
98         4.1. sipEntityType (String)
99         4.2. MsgQueueMinorThreshold (Integer)
100         4.3. MsgQueueMajorThreshold (Integer)
101         4.4. dlg_minor_threshold (Integer)
102         4.5. dlg_major_threshold (Integer)
103         4.6. snmpgetPath (String)
104         4.7. snmpCommunity (String)
105         4.8. export_registrar (int)
106
107    5. Functions
108    6. Installation and Running
109
110         6.1. Compiling the SNMPStats Module
111         6.2. Configuring NetSNMP to allow connections from the SNMPStats
112                 module.
113
114         6.3. Configuring the SNMPStats module for communication with a
115                 Master Agent
116
117         6.4. Testing for a proper Configuration
118
119 1. Overview
120
121    1.1. General Scalar Statistics
122    1.2. SNMP Tables
123    1.3. Alarm Monitoring
124
125    The SNMPStats module provides an SNMP management interface to Kamailio.
126    Specifically, it provides general SNMP queryable scalar statistics,
127    table representations of more complicated data such as user and contact
128    information, and alarm monitoring capabilities.
129
130    The MIB has been renamed in version 4.0.0 to reflect the product name.
131    Please note that all the OID names has changed, as well as the MIB
132    itself.
133
134 1.1. General Scalar Statistics
135
136    The SNMPStats module provides a number of general scalar statistics.
137    Details are available in KAMAILIO-MIB, KAMAILIO-REG-MIB,
138    KAMAILIO-SIP-COMMON-MIB, and KAMAILIO-SIP-SERVER-MIB. But briefly,
139    these scalars are:
140
141      * kamailioSIPProtocolVersion
142      * kamailioSIPServiceStartTime
143      * kamailioSIPEntityType
144      * kamailioSIPSummaryInRequests
145      * kamailioSIPSummaryOutRequest
146      * kamailioSIPSummaryInResponses
147      * kamailioSIPSummaryOutResponses
148      * kamailioSIPSummaryTotalTransactions
149      * kamailioSIPCurrentTransactions
150      * kamailioSIPNumUnsupportedUris
151      * kamailioSIPNumUnsupportedMethods
152      * kamailioSIPOtherwiseDiscardedMsgs
153      * kamailioSIPProxyStatefulness kamailioSIPProxyRecordRoute
154      * kamailioSIPProxyAuthMethod
155      * kamailioSIPNumProxyRequireFailures
156      * kamailioSIPRegMaxContactExpiryDuration
157      * kamailioSIPRegMaxUsers
158      * kamailioSIPRegCurrentUsers
159      * kamailioSIPRegDfltRegActiveInterval
160      * kamailioSIPRegAcceptedRegistrations
161      * kamailioSIPRegRejectedRegistrations
162      * kamailioMsgQueueDepth
163      * kamailioCurNumDialogs
164      * kamailioCurNumDialogsInProgress
165      * kamailioCurNumDialogsInSetup
166      * kamailioTotalNumFailedDialogSetups
167
168    There are also scalars associated with alarms. They are as follows:
169
170      * kamailioMsgQueueMinorThreshold
171      * kamailioMsgQueueMajorThreshold
172      * kamailioMsgQueueDepthAlarmStatus
173      * kamailioMsgQueueDepthMinorAlarm
174      * kamailioMsgQueueDepthMajorAlarm
175      * kamailioDialogLimitMinorThreshold
176      * kamailioDialogLimitMajorThreshold
177      * kamailioDialogUsageState
178      * kamailioDialogLimitAlarmStatus
179      * kamailioDialogLimitMinorAlarm
180      * kamailioDialogLimitMajorAlarm
181
182    In Kamailio 4.1 a set of new OIDs was added to reflect the Kamailio
183    configuration, the version, core status (memory, connections),
184    transports and module data.
185
186 1.2. SNMP Tables
187
188    The SNMPStats module provides several tables, containing more
189    complicated data. The current available tables are:
190
191    kamailioSIPPortTable, kamailioSIPMethodSupportedTable,
192    kamailioSIPStatusCodesTable, kamailioSIPRegUserTable,
193    kamailioSIPContactTable, kamailioSIPRegUserLookupTable
194
195 1.3. Alarm Monitoring
196
197    If enabled, the SNMPStats module will monitor for alarm conditions.
198    Currently, there are two alarm types defined.
199     1. The number of active dialogs has passed a minor or major threshold.
200        The idea is that a network operation centre can be made aware that
201        their SIP servers may be overloaded, without having to explicitly
202        check for this condition.
203        If a minor or major condition has occured, then a
204        kamailioDialogLimitMinorEvent trap or a
205        kamailioDialogLimitMajorEvent trap will be generated, respectively.
206        The minor and major thresholds are described in the parameters
207        section below.
208     2. The number of bytes waiting to be consumed across all of Kamailios
209        listening ports has passed a minor or major threshold. The idea is
210        that a network operation centre can be made aware that a machine
211        hosting a SIP server may be entering a degraded state, and to
212        investigate why this is so.
213        If the number of bytes to be consumed passes a minor or major
214        threshold, then a kamailioMsgQueueDepthMinorEvent or
215        kamailioMsgQueueDepthMajorEvent trap will be sent out,
216        respectively.
217
218    Full details of these traps can be found in the distributions
219    KAMAILIO-MIB file.
220
221 2. How it works
222
223    2.1. How the SNMPStats module gets its data
224    2.2. How data is moved from the SNMPStats module to a NOC
225
226 2.1. How the SNMPStats module gets its data
227
228    The SNMPStats module uses Kamailios internal statistic framework to
229    collect most of its data. However, there are two exceptions.
230     1. The kamailioSIPRegUserTable and kamailioSIPContactTable rely on the
231        usrloc modules callback system. Specifically, the SNMPStats module
232        will receive callbacks whenever a user/contact is added to the
233        system.
234     2. The SNMPStats modules kamailioSIPMsgQueueDepthMinorEvent and
235        kamailioSIPMsgQueueDepthMajorEvent alarms rely on the Kamailio core
236        to find out what interfaces, ports, and transports Kamailio is
237        listening on. However, the module will actually query the proc file
238        system to find out the number of bytes waiting to be consumed.
239        (Currently, this will only work on systems providing the proc file
240        system).
241
242 2.2. How data is moved from the SNMPStats module to a NOC
243
244    We have now explained how the SNMPStats module gathers its data. We
245    still have not explained how it exports this data to a NOC (Network
246    Operations Centre), or administrator.
247
248    The SNMPStats module expects to connect to a Master Agent. This would
249    be a NetSNMP daemon running either on the same system as the Kamailio
250    instance, or on another system. (Communication can take place over TCP,
251    so there is no restriction that this daemon need be on the same system
252    as Kamailio).
253
254    If the master agent is unavailable when Kamailio first starts up, the
255    SNMPStats module will continue to run. However, you will not be able to
256    query it. Thankfully, the SNMPStats module continually looks for its
257    master agent. So even if the master agent is started late, or if the
258    link to the SNMPStats module is severed due to a temporary hardware
259    failure or crashed and restarted master agent, the link will eventually
260    be re-established. No data should be lost, and querying can begin
261    again.
262
263    To request for this data, you will need to query the master agent. The
264    master agent will then redirect the request to the SNMPStats module,
265    which will respond to the master agent, which will in turn respond to
266    your request.
267
268 3. Dependencies
269
270    3.1. Kamailio Modules
271    3.2. External Libraries or Applications
272
273 3.1. Kamailio Modules
274
275    The SNMPStats module provides a plethora of statistics, some of which
276    are collected by other modules. If the dependent modules are not loaded
277    then those specific statistics will still be returned, but with zeroed
278    values. All other statistics will continue to function normally. This
279    means that the SNMPStats module has no hard/mandatory dependencies on
280    other modules. There are however, soft dependencies, as follows:
281      * usrloc - all scalars and tables relating to users and contacts are
282        dependent on the usrloc module. If the module is not loaded, the
283        respective tables will be empty.
284      * dialog or dialog-ng - all scalars relating to the number of dialogs
285        are dependent on the presence of a dialog module. Furthermore, if
286        the module is not loaded, then the kamailioDialogLimitMinorEvent,
287        and kamailioDialogLimitMajorEvent alarm will be disabled.
288
289    The contents of the kamailioSIPMethodSupportedTable change depending on
290    which modules are loaded.
291
292 3.2. External Libraries or Applications
293
294    The following libraries or applications must be installed before
295    running Kamailio with this module loaded:
296      * NetSNMP v5.3 or greater - NetSNMP must be around at the time of
297        compilation. Furthermore, there are several shared objects that
298        must be loadable at the time SNMPStats is loaded. This means that
299        NetSNMP must be installed (but not necessarily running) on the
300        system that has loaded the SNMPStats module. (Details can be found
301        in the compilation section below).
302      * lm_sensors-dev - on some OS-es, this lib is required for
303        compilation (http://www.lm-sensors.org/).
304
305 4. Parameters
306
307    4.1. sipEntityType (String)
308    4.2. MsgQueueMinorThreshold (Integer)
309    4.3. MsgQueueMajorThreshold (Integer)
310    4.4. dlg_minor_threshold (Integer)
311    4.5. dlg_major_threshold (Integer)
312    4.6. snmpgetPath (String)
313    4.7. snmpCommunity (String)
314    4.8. export_registrar (int)
315
316 4.1. sipEntityType (String)
317
318    This parameter describes the entity type for this Kamailio instance,
319    and will be used in determining what is returned for the
320    kamailioSIPEntityType scalar. Valid parameters are:
321
322    registrarServer, redirectServer, proxyServer, userAgent,
323    edgeproxyServer, sipcaptureServer,other
324
325    Example 1.1. Setting the sipEntityType parameter
326 ...
327 modparam("snmpstats", "sipEntityType", "registrarServer")
328 modparam("snmpstats", "sipEntityType", "proxyServer")
329 ...
330
331    Note that as the above example shows, you can define this parameter
332    more than once. This is of course because a given Kamailio instance can
333    take on more than one role. The edgeproxyServer is an edge server using
334    the outbound module and path extensions. The sipcaptureServer is a
335    Homer Sip Capture server that collect SIP messages.
336
337 4.2. MsgQueueMinorThreshold (Integer)
338
339    The SNMPStats module monitors the number of bytes waiting to be
340    consumed by Kamailio. If the number of bytes waiting to be consumed
341    exceeds a minor threshold, the SNMPStats module will send out an
342    kamailioMsgQueueDepthMinorEvent trap to signal that an alarm condition
343    has occured. The minor threshold is set with the MsgQueueMinorThreshold
344    parameter.
345
346    Example 1.2. Setting the MsgQueueMinorThreshold parameter
347 ...
348 modparam("snmpstats", "MsgQueueMinorThreshold", 2000)
349 ...
350
351    If this parameter is not set, then there will be no minor alarm
352    monitoring.
353
354 4.3. MsgQueueMajorThreshold (Integer)
355
356    The SNMPStats module monitors the number of bytes waiting to be
357    consumed by Kamailio. If the number of bytes waiting to be consumed
358    exceeds a major threshold, the SNMPStats module will send out an
359    kamailioMsgQueueDepthMajorEvent trap to signal that an alarm condition
360    has occured. The major threshold is set with the MsgQueueMajorThreshold
361    parameter.
362
363    Example 1.3. Setting the MsgQueueMajorThreshold parameter
364 ...
365 modparam("snmpstats", "MsgQueueMajorThreshold", 5000)
366 ...
367
368    If this parameter is not set, then there will be no major alarm
369    monitoring.
370
371 4.4. dlg_minor_threshold (Integer)
372
373    The SNMPStats module monitors the number of active dialogs. If the
374    number of active dialogs exceeds a minor threshold, the SNMPStats
375    module will send out an kamailioDialogLimitMinorEvent trap to signal
376    that an alarm condition has occured. The minor threshold is set with
377    the dlg_minor_threshold parameter.
378
379    Example 1.4. Setting the dlg_minor_threshold parameter
380 ...
381   modparam("snmpstats", "dlg_minor_threshold", 500)
382 ...
383
384    If this parameter is not set, then there will be no minor alarm
385    monitoring.
386
387 4.5. dlg_major_threshold (Integer)
388
389    The SNMPStats module monitors the number of active dialogs. If the
390    number of active dialogs exceeds a major threshold, the SNMPStats
391    module will send out an kamailioDialogLimitMajorEvent trap to signal
392    that an alarm condition has occured. The major threshold is set with
393    the dlg_major_threshold parameter.
394
395    Example 1.5. Setting the dlg_major_threshold parameter
396 ...
397   modparam("snmpstats", "dlg_major_threshold", 750)
398 ...
399
400    If this parameter is not set, then there will be no major alarm
401    monitoring.
402
403 4.6. snmpgetPath (String)
404
405    The SNMPStats module provides the kamailioSIPServiceStartTime scalar.
406    This scalar requires the SNMPStats module to perform a snmpget query to
407    the master agent. You can use this parameter to set the path to your
408    instance of NetSNMP's snmpget program.
409
410    Default value is "/usr/local/bin/".
411
412    Example 1.6. Setting the snmpgetPath parameter
413 ...
414 modparam("snmpstats", "snmpgetPath",     "/my/custom/path/")
415 ...
416
417 4.7. snmpCommunity (String)
418
419    The SNMPStats module provides the kamailioSIPServiceStartTime scalar.
420    This scalar requires the SNMPStats module to perform a snmpget query to
421    the master agent. If you have defined a custom community string for the
422    snmp daemon, you need to specify it with this parameter.
423
424    Default value is "public".
425
426    Example 1.7. Setting the snmpCommunity parameter
427 ...
428 modparam("snmpstats", "snmpCommunity", "customCommunityString")
429 ...
430
431 4.8. export_registrar (int)
432
433    The SNMPStats module will export registrar (usrloc) records if this
434    parameter is set to 1. This will result in more memory usage and bigger
435    exporter structure.
436
437    If you enable this setting and NOT use it (i.e. not check the SNMP
438    tables for registrations) an internal memory queue of usrloc changes
439    will keep growing in shared (core) memory. To release the queue memory,
440    run snmpwalk or use a monitoring tool to check the tables with regular
441    intervals.
442
443    Default value is "0" (don't export).
444
445    Example 1.8. Setting the export_registrar parameter
446 ...
447 modparam("snmpstats", "export_registrar", 1)
448 ...
449
450 5. Functions
451
452    Currently, there are no exported functions.
453
454 6. Installation and Running
455
456    6.1. Compiling the SNMPStats Module
457    6.2. Configuring NetSNMP to allow connections from the SNMPStats
458           module.
459
460    6.3. Configuring the SNMPStats module for communication with a Master
461           Agent
462
463    6.4. Testing for a proper Configuration
464
465    There are several things that need to be done to get the SNMPStats
466    module compiled and up and running.
467
468 6.1. Compiling the SNMPStats Module
469
470    In order for the SNMPStats module to compile, you will need at least
471    version 5.3 of the NetSNMP source code. The source can be found at:
472     http://net-snmp.sourceforge.net/
473
474    For the specifics of installing NetSNMP, please see the INSTALL
475    document in the root of the NetSNMP source package.
476
477    The SNMPStats modules makefile requires that the NetSNMP script
478    "net-snmp-config" can run. At a minimum, running "net-snmp-config
479    --agent-libs" from the Kamailio source directory should return
480    something similar to:
481     -L/usr/local/lib -lnetsnmpmibs -lnetsnmpagent -lnetsnmphelpers -lnetsnmp
482
483    The specifics of what is returned depends on how the system was
484    configured. If your NetSNMP installation was installed from an RPM (or
485    another packaged version), then there is a good chance that
486    net-snmp-config will return something unecessarily longer. It is highly
487    recommended you install NetSNMP from source to avoid bringing in
488    excessive dependencies to the SNMPStats module.
489
490 6.2. Configuring NetSNMP to allow connections from the SNMPStats module.
491
492    The SNMPStats module will communicate with the NetSNMP Master Agent.
493    This communication happens over a protocol known as AgentX. This means
494    that NetSNMP must have been compiled with AgentX support. This will
495    always be the case when you are compiling from source unless you
496    explicitly removed AgentX support with ./configure.
497
498    After AgentX support has been compiled into NetSNMP, its configuration
499    file needs to be changed to turn on AgentX support. The exact location
500    of the configuration file (snmpd.conf) may vary depending on your
501    system. On my system, it is located in:
502     /usr/local/share/snmp/snmpd.conf.
503
504    At the very end of the file add the following line:
505     master agentx
506
507    The line tells NetSNMP to act as an AgentX master agent, so that it can
508    accept connections from sub-agents such as the SNMPStats module.
509
510    There is still one last step. Even though we have compiled and
511    configured NetSNMP to have AgentX support, we still need to tell the
512    daemon which interface and port to listen to for AgentX connections.
513    This is done when the daemon is started as follows:
514     snmpd -x mySystemName:PortNumber
515
516    On my system, I start the NetSNMP daemon with:
517     snmpd -x localhost:705
518
519    This tells NetSNMP to act as a master agent, listening on the localhost
520    UDP interface at port 705.
521
522 6.3. Configuring the SNMPStats module for communication with a Master Agent
523
524    The previous section explained how to set up a NetSNMP master agent to
525    accept AgentX connections. We now need to tell the SNMPStats module how
526    to communicate with this master agent. This is done by giving the
527    SNMPStats module its own NetSNMP configuration file. The file must be
528    named snmpstats.conf, and must be in the same folder as the snmpd.conf
529    file that was configured above. On my system this would be:
530     /usr/local/share/snmp/snmpstats.conf
531
532    The default configuration file included with the distribution can be
533    used, and contains the following:
534     agentXSocket tcp:localhost:705
535
536    The above line tells the SNMPStats module to register with the master
537    agent on the localhost, port 705. The parameters should match up with
538    the snmpd process. Note that the master agent (snmpd) does not need to
539    be present on the same machine as Kamailio. localhost could be replaced
540    with any other machine.
541
542 6.4. Testing for a proper Configuration
543
544    As a quick test to make sure that the SNMPStats module sub-agent can
545    succesfully connect to the NetSNMP Master agent, start snmpd with the
546    following:
547     snmpd -f -Dagentx -x tcp:localhost:705 2>&1 | less
548
549    You should see something similar to the following:
550     No log handling enabled - turning on stderr logging
551     registered debug token agentx, 1
552     ...
553     Turning on AgentX master support.
554     agentx/master: initializing...
555     agentx/master: initializing...   DONE
556     NET-SNMP version 5.3.1
557
558    Now, start up Kamailio in another window. In the snmpd window, you
559    should see a bunch of:
560     agentx/master: handle pdu (req=0x2c58ebd4,trans=0x0,sess=0x0)
561     agentx/master: open 0x81137c0
562     agentx/master: opened 0x814bbe0 = 6 with flags = a0
563     agentx/master: send response, stat 0 (req=0x2c58ebd4,trans=0x0,sess=0x0)
564     agentx_build: packet built okay
565
566    The messages beginning with "agentx" are debug messages stating that
567    something is happening with an AgentX sub-agent, appearing because of
568    the -Dagentx snmpd switch. The large number of debug messages appear at
569    startup as the SNMPStats module registers all of its scalars and tables
570    with the Master Agent. If you receive these messages, then SNMPStats
571    module and NetSNMP daemon have both been configured correctly.
572
573 Chapter 2. Frequently Asked Questions
574
575    2.1. Where can I find more about SNMP?
576    2.2. Where can I find more about NetSNMP?
577    2.3. Where can I find out more about AgentX?
578    2.4. Why am I not receiving any SNMP Traps?
579    2.5. Kamailio refuses to load the SNMPStats module. Why is it
580           displaying "load_module: could not open module snmpstats.so"?
581
582    2.6. How can I learn what all the scalars and tables are?
583    2.7. Why do snmpget, snmpwalk, and snmptable always time out?
584    2.8. How do I use snmpget?
585    2.9. How do I use snmptable?
586    2.10. Where can I find more about Kamailio?
587    2.11. Where can I post a question about this module?
588    2.12. How can I report a bug?
589
590    2.1.
591
592    Where can I find more about SNMP?
593
594    There are many websites that explain SNMP at all levels of detail. A
595    great general introduction can be found at
596    http://en.wikipedia.org/wiki/SNMP If you are interested in the nitty
597    gritty details of the protocol, then please look at RFC 3410. RFC 3410
598    maps out the many other RFCs that define SNMP, and can be found at
599    http://www.rfc-archive.org/getrfc.php?rfc=3410
600
601    2.2.
602
603    Where can I find more about NetSNMP?
604
605    NetSNMP source code, documentation, FAQs, and tutorials can all be
606    found at http://net-snmp.sourceforge.net/.
607
608    2.3.
609
610    Where can I find out more about AgentX?
611
612    The full details of the AgentX protocol are explained in RFC 2741,
613    available at: http://www.rfc-archive.org/getrfc.php?rfc=2741
614
615    2.4.
616
617    Why am I not receiving any SNMP Traps?
618
619    Assuming you've configured the trap thresholds in kamailio.cfg with
620    something similar to:
621     modparam("snmpstats", "MsgQueueMinorThreshold", 1234)
622     modparam("snmpstats", "MsgQueueMajorThreshold", 5678)
623
624     modparam("snmpstats", "dlg_minor_threshold", 500)
625     modparam("snmpstats", "dlg_minor_threshold", 600)
626
627    Then either Kamailio is not reaching these thresholds (which is a good
628    thing), or you haven't set up the trap monitor correctly. To prove this
629    to yourself, you can start NetSNMP with:
630     snmpd -f -Dtrap -x localhost:705
631
632    The -f tells the NetSNMP process to not daemonize, and the -Dtrap
633    enables trap debug logs. You should see something similar to the
634    following:
635     registered debug token trap, 1
636     trap: adding callback trap sink            ----- You should see both
637     trapsess: adding to trap table             ----- of these lines.
638     Turning on AgentX master support.
639     trap: send_trap 0 0 NET-SNMP-TC::linux
640     trap: sending trap type=167, version=1
641     NET-SNMP version 5.3.1
642
643    If the two lines above did not appear, then you probably have not
644    included the following in your snmpd.conf file.
645     trap2sink machineToSendTrapsTo:machinesPortNumber.
646
647    When a trap has been received by snmpd, the following will appear in
648    the above output:
649     sent_trap -1 -1 NET-SNMP-TC::linus
650     sending trap type=167, version=1
651
652    You'll also need a program to collect the traps and do something with
653    them (such as sending them to syslog). NetSNMP provides snmptrapd for
654    this. Other solutions exist as well. Google is your friend.
655
656    2.5.
657
658    Kamailio refuses to load the SNMPStats module. Why is it displaying
659    "load_module: could not open module snmpstats.so"?
660
661    On some systems, you may receive the following error at stdout or the
662    log files depending on the configuration.
663     ERROR: load_module: could not open module </usr/local/lib/kamailio/modules_k
664 /snmpstats.so>:
665            libnetsnmpmibs.so.10: cannot open shared object file: No such file or
666  directory.
667
668    This means one of two things:
669     1. You did not install NetSNMP. ("make install" if building from
670        source)
671     2. The dynamic linker cannot find the necessary libraries.
672
673    In the second case, the fix is as follows:
674     1. find / -name "libnetsnmpmibs*"
675           + You will find a copy unless you haven't installed NetSNMP.
676             Make note of the path.
677     2. less /etc/ld.so.conf
678           + If the file is missing the path from step 1, then add the path
679             to ld.so.conf
680     3. ldconfig
681     4. Try starting Kamailio again.
682
683    Alternatively, you may prefix your startup command with:
684     LD_LIBRARY_PATH=/path/noted/in/step/one/above
685
686    For example, on my system I ran:
687     LD_LIBRARY_PATH=/usr/local/lib kamctl start
688
689    2.6.
690
691    How can I learn what all the scalars and tables are?
692
693    All scalars and tables are named in the SNMPStats module overview. The
694    files KAMAILIO-MIB, KAMAILIO-REG-MIB, KAMAILIO-SIP-COMMON-MIB and
695    KAMAILIO-SIP-SERVER-MIB contain the full definitions and descriptions.
696    Note however, that the MIBs may actually contain scalars and tables
697    which are currently not provided by the SNMPStats module. Therefore, it
698    is better to use NetSNMP's snmptranslate as an alternative. Take the
699    kamailioSIPEntityType scalar as an example. You can invoke
700    snmptranslate as follows:
701     snmptranslate -TBd kamailioSIPEntityType
702
703    Which would result in something similar to the following:
704     -- FROM       KAMAILIO-SIP-COMMON-MIB
705     -- TEXTUAL CONVENTION KamailioSIPEntityRole
706     SYNTAX        BITS {other(0), userAgent(1), proxyServer(2), redirectServer(3
707 ), registrarServer(4)}
708     MAX-ACCESS    read-only
709     STATUS        current
710     DESCRIPTION   " This object identifies the list of SIP entities this
711                    row is related to. It is defined as a bit map.  Each
712                    bit represents a type of SIP entity.
713                    If a bit has value 1, the SIP entity represented by
714                    this row plays the role of this entity type.
715
716                    If a bit has value 0, the SIP entity represented by
717                    this row does not act as this entity type
718                    Combinations of bits can be set when the SIP entity
719                    plays multiple SIP roles."
720
721    2.7.
722
723    Why do snmpget, snmpwalk, and snmptable always time out?
724
725    If your snmp operations are always returning with: "Timeout: No
726    Response from localhost", then chances are that you are making the
727    query with the wrong community string. Default installs will most
728    likely use "public" as their default community strings. Grep your
729    snmpd.conf file for the string "rocommunity", and use the result as
730    your community string in your queries.
731
732    2.8.
733
734    How do I use snmpget?
735
736    NetSNMP's snmpget is used as follows:
737     snmpget -v 2c -c theCommunityString machineToSendTheMachineTo scalarElement.
738 0
739
740    For example, consider an snmpget on the kamailioSIPEntityType scalar,
741    run on the same machine running the Kamailio instance, with the default
742    "public" community string. The command would be:
743     snmpget -v2c -c public localhost kamailioSIPEntityType.0
744
745    Which would result in something similar to:
746     KAMAILIO-SIP-COMMON-MIB::kamailioSIPEntityType.0 = BITS: F8 \
747                 other(0) userAgent(1) proxyServer(2)          \
748                 redirectServer(3) registrarServer(4)
749
750    2.9.
751
752    How do I use snmptable?
753
754    NetSNMP's snmptable is used as follows:
755     snmptable -Ci -v 2c -c theCommunityString machineToSendTheMachineTo theTable
756 Name
757
758    For example, consider the kamailioSIPRegUserTable. If we run the
759    snmptable command on the same machine as the running Kamailio instance,
760    configured with the default "public" community string. The command
761    would be:
762     snmptable -Ci -v 2c -c public localhost kamailioSIPRegUserTable
763
764    Which would result in something similar to:
765     index kamailioSIPUserUri kamailioSIPUserAuthenticationFailures
766         1       DefaultUser                                    0
767         2            bogdan                                    0
768         3    jeffrey.magder                                    0
769
770    2.10.
771
772    Where can I find more about Kamailio?
773
774    Take a look at http://www.kamailio.org/.
775
776    2.11.
777
778    Where can I post a question about this module?
779
780    First at all check if your question was already answered on one of our
781    mailing lists:
782      * User Mailing List -
783        http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
784      * Developer Mailing List -
785        http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
786
787    E-mails regarding any stable Kamailio release should be sent to
788    <sr-users@lists.sip-router.org> and e-mails regarding development
789    versions should be sent to <sr-dev@lists.sip-router.org>.
790
791    If you want to keep the mail private, send it to
792    <sr-users@lists.sip-router.org>.
793
794    2.12.
795
796    How can I report a bug?
797
798    Please follow the guidelines provided at:
799    http://sip-router.org/tracker.