mirror of https://github.com/sipwise/kamailio.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
696 lines
26 KiB
696 lines
26 KiB
SNMPStats Module (Simple Network Management Protocal Statistic
|
|
Module)
|
|
|
|
Jeffrey Magder
|
|
|
|
SOMA Networks, Inc.
|
|
|
|
Edited by
|
|
|
|
Jeffrey Magder
|
|
|
|
Copyright © 2006 SOMA Networks, Inc.
|
|
Revision History
|
|
Revision $Revision$ $Date: 2008-08-06 13:08:33 +0300
|
|
(Wed, 06 Aug 2008) $
|
|
__________________________________________________________
|
|
|
|
Table of Contents
|
|
|
|
1. Admin Guide
|
|
|
|
1.1. Overview
|
|
|
|
1.1.1. General Scalar Statistics
|
|
1.1.2. SNMP Tables
|
|
1.1.3. Alarm Monitoring
|
|
|
|
1.2. How it works
|
|
|
|
1.2.1. How the SNMPStats module gets its data
|
|
1.2.2. How data is moved from the SNMPStats module
|
|
to a NOC
|
|
|
|
1.3. Dependencies
|
|
|
|
1.3.1. Kamailio Modules
|
|
1.3.2. External Libraries or Applications
|
|
|
|
1.4. Exported Parameters
|
|
|
|
1.4.1. sipEntityType (String)
|
|
1.4.2. MsgQueueMinorThreshold (Integer)
|
|
1.4.3. MsgQueueMajorThreshold (Integer)
|
|
1.4.4. dlg_minor_threshold (Integer)
|
|
1.4.5. dlg_major_threshold (Integer)
|
|
1.4.6. snmpgetPath (String)
|
|
1.4.7. snmpCommunity (String)
|
|
|
|
1.5. Exported Functions
|
|
1.6. Installation and Running
|
|
|
|
1.6.1. Compiling the SNMPStats Module
|
|
1.6.2. Configuring NetSNMP to allow connections from
|
|
the SNMPStats module.
|
|
|
|
1.6.3. Configuring the SNMPStats module for
|
|
communication with a Master Agent
|
|
|
|
1.6.4. Testing for a proper Configuration
|
|
|
|
2. Frequently Asked Questions
|
|
|
|
List of Examples
|
|
|
|
1.1. Setting the sipEntityType parameter
|
|
1.2. Setting the MsgQueueMinorThreshold parameter
|
|
1.3. Setting the MsgQueueMajorThreshold parameter
|
|
1.4. Setting the dlg_minor_threshold parameter
|
|
1.5. Setting the dlg_major_threshold parameter
|
|
1.6. Setting the snmpgetPath parameter
|
|
1.7. Setting the snmpCommunity parameter
|
|
|
|
Chapter 1. Admin Guide
|
|
|
|
1.1. Overview
|
|
|
|
The SNMPStats module provides an SNMP management interface to
|
|
OpenSER. Specifically, it provides general SNMP queryable
|
|
scalar statistics, table representations of more complicated
|
|
data such as user and contact information, and alarm monitoring
|
|
capabilities.
|
|
|
|
1.1.1. General Scalar Statistics
|
|
|
|
The SNMPStats module provides a number of general scalar
|
|
statistics. Details are available in OPENSER-MIB,
|
|
OPENSER-REG-MIB, OPENSER-SIP-COMMON-MIB, and
|
|
OPENSER-SIP-SERVER-MIB. But briefly, these scalars are:
|
|
|
|
openserSIPProtocolVersion, openserSIPServiceStartTime,
|
|
openserSIPEntityType, openserSIPSummaryInRequests,
|
|
openserSIPSummaryOutRequest, openserSIPSummaryInResponses,
|
|
openserSIPSummaryOutResponses,
|
|
openserSIPSummaryTotalTransactions,
|
|
openserSIPCurrentTransactions, openserSIPNumUnsupportedUris,
|
|
openserSIPNumUnsupportedMethods,
|
|
openserSIPOtherwiseDiscardedMsgs, openserSIPProxyStatefulness
|
|
openserSIPProxyRecordRoute, openserSIPProxyAuthMethod,
|
|
openserSIPNumProxyRequireFailures,
|
|
openserSIPRegMaxContactExpiryDuration, openserSIPRegMaxUsers,
|
|
openserSIPRegCurrentUsers, openserSIPRegDfltRegActiveInterval,
|
|
openserSIPRegAcceptedRegistrations,
|
|
openserSIPRegRejectedRegistrations, openserMsgQueueDepth.
|
|
openserCurNumDialogs, openserCurNumDialogsInProgress,
|
|
openserCurNumDialogsInSetup, openserTotalNumFailedDialogSetups
|
|
|
|
There are also scalars associated with alarms. They are as
|
|
follows:
|
|
|
|
openserMsgQueueMinorThreshold, openserMsgQueueMajorThreshold,
|
|
openserMsgQueueDepthAlarmStatus,
|
|
openserMsgQueueDepthMinorAlarm, openserMsgQueueDepthMajorAlarm,
|
|
openserDialogLimitMinorThreshold,
|
|
openserDialogLimitMajorThreshold, openserDialogUsageState,
|
|
openserDialogLimitAlarmStatus, openserDialogLimitMinorAlarm,
|
|
openserDialogLimitMajorAlarm
|
|
|
|
1.1.2. SNMP Tables
|
|
|
|
The SNMPStats module provides several tables, containing more
|
|
complicated data. The current available tables are:
|
|
|
|
openserSIPPortTable, openserSIPMethodSupportedTable,
|
|
openserSIPStatusCodesTable, openserSIPRegUserTable,
|
|
openserSIPContactTable, openserSIPRegUserLookupTable
|
|
|
|
1.1.3. Alarm Monitoring
|
|
|
|
If enabled, the SNMPStats module will monitor for alarm
|
|
conditions. Currently, there are two alarm types defined.
|
|
1. The number of active dialogs has passed a minor or major
|
|
threshold. The idea is that a network operation centre can
|
|
be made aware that their SIP servers may be overloaded,
|
|
without having to explicitly check for this condition.
|
|
If a minor or major condition has occured, then a
|
|
openserDialogLimitMinorEvent trap or a
|
|
openserDialogLimitMajorEvent trap will be generated,
|
|
respectively. The minor and major thresholds are described
|
|
in the parameters section below.
|
|
2. The number of bytes waiting to be consumed across all of
|
|
OpenSERs listening ports has passed a minor or major
|
|
threshold. The idea is that a network operation centre can
|
|
be made aware that a machine hosting a SIP server may be
|
|
entering a degraded state, and to investigate why this is
|
|
so.
|
|
If the number of bytes to be consumed passes a minor or
|
|
major threshold, then a openserMsgQueueDepthMinorEvent or
|
|
openserMsgQueueDepthMajorEvent trap will be sent out,
|
|
respectively.
|
|
|
|
Full details of these traps can be found in the distributions
|
|
OPENSER-MIB file.
|
|
|
|
1.2. How it works
|
|
|
|
1.2.1. How the SNMPStats module gets its data
|
|
|
|
The SNMPStats module uses OpenSERs internal statistic framework
|
|
to collect most of its data. However, there are two exceptions.
|
|
1. The openserSIPRegUserTable and openserSIPContactTable rely
|
|
on the usrloc modules callback system. Specifically, the
|
|
SNMPStats module will receive callbacks whenever a
|
|
user/contact is added to the system.
|
|
2. The SNMPStats modules openserSIPMsgQueueDepthMinorEvent and
|
|
openserSIPMsgQueueDepthMajorEvent alarms rely on the
|
|
OpenSER core to find out what interfaces, ports, and
|
|
transports OpenSER is listening on. However, the module
|
|
will actually query the proc file system to find out the
|
|
number of bytes waiting to be consumed. (Currently, this
|
|
will only work on systems providing the proc file system).
|
|
|
|
1.2.2. How data is moved from the SNMPStats module to a NOC
|
|
|
|
We have now explained how the SNMPStats module gathers its
|
|
data. We still have not explained how it exports this data to a
|
|
NOC (Network Operations Centre), or administrator.
|
|
|
|
The SNMPStats module expects to connect to a Master Agent. This
|
|
would be a NetSNMP daemon running either on the same system as
|
|
the OpenSER instance, or on another system. (Communication can
|
|
take place over TCP, so there is no restriction that this
|
|
daemon need be on the same system as OpenSER).
|
|
|
|
If the master agent is unavailable when OpenSER first starts
|
|
up, the SNMPStats module will continue to run. However, you
|
|
will not be able to query it. Thankfully, the SNMPStats module
|
|
continually looks for its master agent. So even if the master
|
|
agent is started late, or if the link to the SNMPStats module
|
|
is severed due to a temporary hardware failure or crashed and
|
|
restarted master agent, the link will eventually be
|
|
re-established. No data should be lost, and querying can begin
|
|
again.
|
|
|
|
To request for this data, you will need to query the master
|
|
agent. The master agent will then redirect the request to the
|
|
SNMPStats module, which will respond to the master agent, which
|
|
will in turn respond to your request.
|
|
|
|
1.3. Dependencies
|
|
|
|
1.3.1. Kamailio Modules
|
|
|
|
The SNMPStats module provides a plethora of statistics, some of
|
|
which are collected by other modules. If the dependent modules
|
|
are not loaded then those specific statistics will still be
|
|
returned, but with zeroed values. All other statistics will
|
|
continue to function normally. This means that the SNMPStats
|
|
module has no hard/mandatory dependencies on other modules.
|
|
There are however, soft dependencies, as follows:
|
|
* usrloc - all scalars and tables relating to users and
|
|
contacts are dependent on the usrloc module. If the module
|
|
is not loaded, the respective tables will be empty.
|
|
* dialog - all scalars relating to the number of dialogs are
|
|
dependent on the presence of the dialog module.
|
|
Furthermore, if the module is not loaded, then the
|
|
openserDialogLimitMinorEvent, and
|
|
openserDialogLimitMajorEvent alarm will be disabled.
|
|
|
|
The contents of the openserSIPMethodSupportedTable change
|
|
depending on which modules are loaded.
|
|
|
|
1.3.2. External Libraries or Applications
|
|
|
|
The following libraries or applications must be installed
|
|
before running Kamailio with this module loaded:
|
|
* NetSNMP v5.3 or greater - NetSNMP must be around at the
|
|
time of compilation. Furthermore, there are several shared
|
|
objects that must be loadable at the time SNMPStats is
|
|
loaded. This means that NetSNMP must be installed (but not
|
|
necessarily running) on the system that has loaded the
|
|
SNMPStats module. (Details can be found in the compilation
|
|
section below).
|
|
* lm_sensors-dev - on some OS-es, this lib is required for
|
|
compilation (http://www.lm-sensors.org/).
|
|
|
|
1.4. Exported Parameters
|
|
|
|
1.4.1. sipEntityType (String)
|
|
|
|
This parameter describes the entity type for this OpenSER
|
|
instance, and will be used in determining what is returned for
|
|
the openserSIPEntityType scalar. Valid parameters are:
|
|
|
|
registrarServer, redirectServer, proxyServer, userAgent, other
|
|
|
|
Example 1.1. Setting the sipEntityType parameter
|
|
...
|
|
modparam("snmpstats", "sipEntityType", "registrarServer")
|
|
modparam("snmpstats", "sipEntityType", "proxyServer")
|
|
...
|
|
|
|
Note that as the above example shows, you can define this
|
|
parameter more than once. This is of course because a given
|
|
OpenSER instance can take on more than one role.
|
|
|
|
1.4.2. MsgQueueMinorThreshold (Integer)
|
|
|
|
The SNMPStats module monitors the number of bytes waiting to be
|
|
consumed by OpenSER. If the number of bytes waiting to be
|
|
consumed exceeds a minor threshold, the SNMPStats module will
|
|
send out an openserMsgQueueDepthMinorEvent trap to signal that
|
|
an alarm condition has occured. The minor threshold is set with
|
|
the MsgQueueMinorThreshold parameter.
|
|
|
|
Example 1.2. Setting the MsgQueueMinorThreshold parameter
|
|
...
|
|
modparam("snmpstats", "MsgQueueMinorThreshold", 2000)
|
|
...
|
|
|
|
If this parameter is not set, then there will be no minor alarm
|
|
monitoring.
|
|
|
|
1.4.3. MsgQueueMajorThreshold (Integer)
|
|
|
|
The SNMPStats module monitors the number of bytes waiting to be
|
|
consumed by OpenSER. If the number of bytes waiting to be
|
|
consumed exceeds a major threshold, the SNMPStats module will
|
|
send out an openserMsgQueueDepthMajorEvent trap to signal that
|
|
an alarm condition has occured. The major threshold is set with
|
|
the MsgQueueMajorThreshold parameter.
|
|
|
|
Example 1.3. Setting the MsgQueueMajorThreshold parameter
|
|
...
|
|
modparam("snmpstats", "MsgQueueMajorThreshold", 5000)
|
|
...
|
|
|
|
If this parameter is not set, then there will be no major alarm
|
|
monitoring.
|
|
|
|
1.4.4. dlg_minor_threshold (Integer)
|
|
|
|
The SNMPStats module monitors the number of active dialogs. If
|
|
the number of active dialogs exceeds a minor threshold, the
|
|
SNMPStats module will send out an openserDialogLimitMinorEvent
|
|
trap to signal that an alarm condition has occured. The minor
|
|
threshold is set with the dlg_minor_threshold parameter.
|
|
|
|
Example 1.4. Setting the dlg_minor_threshold parameter
|
|
...
|
|
modparam("snmpstats", "dlg_minor_threshold", 500)
|
|
...
|
|
|
|
If this parameter is not set, then there will be no minor alarm
|
|
monitoring.
|
|
|
|
1.4.5. dlg_major_threshold (Integer)
|
|
|
|
The SNMPStats module monitors the number of active dialogs. If
|
|
the number of active dialogs exceeds a major threshold, the
|
|
SNMPStats module will send out an openserDialogLimitMajorEvent
|
|
trap to signal that an alarm condition has occured. The major
|
|
threshold is set with the dlg_major_threshold parameter.
|
|
|
|
Example 1.5. Setting the dlg_major_threshold parameter
|
|
...
|
|
modparam("snmpstats", "dlg_major_threshold", 750)
|
|
...
|
|
|
|
If this parameter is not set, then there will be no major alarm
|
|
monitoring.
|
|
|
|
1.4.6. snmpgetPath (String)
|
|
|
|
The SNMPStats module provides the openserSIPServiceStartTime
|
|
scalar. This scalar requires the SNMPStats module to perform a
|
|
snmpget query to the master agent. You can use this parameter
|
|
to set the path to your instance of NetSNMP's snmpget program.
|
|
|
|
Default value is "/usr/local/bin/".
|
|
|
|
Example 1.6. Setting the snmpgetPath parameter
|
|
...
|
|
modparam("snmpstats", "snmpgetPath", "/my/custom/path/")
|
|
...
|
|
|
|
1.4.7. snmpCommunity (String)
|
|
|
|
The SNMPStats module provides the openserSIPServiceStartTime
|
|
scalar. This scalar requires the SNMPStats module to perform a
|
|
snmpget query to the master agent. If you have defined a custom
|
|
community string for the snmp daemon, you need to specify it
|
|
with this parameter.
|
|
|
|
Default value is "public".
|
|
|
|
Example 1.7. Setting the snmpCommunity parameter
|
|
...
|
|
modparam("snmpstats", "snmpCommunity", "customCommunityString")
|
|
...
|
|
|
|
1.5. Exported Functions
|
|
|
|
Currently, there are no exported functions.
|
|
|
|
1.6. Installation and Running
|
|
|
|
There are several things that need to be done to get the
|
|
SNMPStats module compiled and up and running.
|
|
|
|
1.6.1. Compiling the SNMPStats Module
|
|
|
|
In order for the SNMPStats module to compile, you will need at
|
|
least version 5.3 of the NetSNMP source code. The source can be
|
|
found at:
|
|
http://net-snmp.sourceforge.net/
|
|
|
|
For the specifics of installing NetSNMP, please see the INSTALL
|
|
document in the root of the NetSNMP source package.
|
|
|
|
The SNMPStats modules makefile requires that the NetSNMP script
|
|
"net-snmp-config" can run. At a minimum, running
|
|
"net-snmp-config --agent-libs" from the OpenSER source
|
|
directory should return something similar to:
|
|
-L/usr/local/lib -lnetsnmpmibs -lnetsnmpagent -lnetsnmphelpers -lnet
|
|
snmp
|
|
|
|
The specifics of what is returned depends on how the system was
|
|
configured. If your NetSNMP installation was installed from an
|
|
RPM (or another packaged version), then there is a good chance
|
|
that net-snmp-config will return something unecessarily longer.
|
|
It is highly recommended you install NetSNMP from source to
|
|
avoid bringing in excessive dependencies to the SNMPStats
|
|
module.
|
|
|
|
1.6.2. Configuring NetSNMP to allow connections from the SNMPStats
|
|
module.
|
|
|
|
The SNMPStats module will communicate with the NetSNMP Master
|
|
Agent. This communication happens over a protocol known as
|
|
AgentX. This means that NetSNMP must have been compiled with
|
|
AgentX support. This will always be the case when you are
|
|
compiling from source unless you explicitly removed AgentX
|
|
support with ./configure.
|
|
|
|
After AgentX support has been compiled into NetSNMP, its
|
|
configuration file needs to be changed to turn on AgentX
|
|
support. The exact location of the configuration file
|
|
(snmpd.conf) may vary depending on your system. On my system,
|
|
it is located in:
|
|
/usr/local/share/snmp/snmpd.conf.
|
|
|
|
At the very end of the file add the following line:
|
|
master agentx
|
|
|
|
The line tells NetSNMP to act as an AgentX master agent, so
|
|
that it can accept connections from sub-agents such as the
|
|
SNMPStats module.
|
|
|
|
There is still one last step. Even though we have compiled and
|
|
configured NetSNMP to have AgentX support, we still need to
|
|
tell the daemon which interface and port to listen to for
|
|
AgentX connections. This is done when the daemon is started as
|
|
follows:
|
|
snmpd -x mySystemName:PortNumber
|
|
|
|
On my system, I start the NetSNMP daemon with:
|
|
snmpd -x localhost:705
|
|
|
|
This tells NetSNMP to act as a master agent, listening on the
|
|
localhost UDP interface at port 705.
|
|
|
|
1.6.3. Configuring the SNMPStats module for communication with a
|
|
Master Agent
|
|
|
|
The previous section explained how to set up a NetSNMP master
|
|
agent to accept AgentX connections. We now need to tell the
|
|
SNMPStats module how to communicate with this master agent.
|
|
This is done by giving the SNMPStats module its own NetSNMP
|
|
configuration file. The file must be named snmpstats.conf, and
|
|
must be in the same folder as the snmpd.conf file that was
|
|
configured above. On my system this would be:
|
|
/usr/local/share/snmp/snmpstats.conf
|
|
|
|
The default configuration file included with the distribution
|
|
can be used, and contains the following:
|
|
agentXSocket tcp:localhost:705
|
|
|
|
The above line tells the SNMPStats module to register with the
|
|
master agent on the localhost, port 705. The parameters should
|
|
match up with the snmpd process. Note that the master agent
|
|
(snmpd) does not need to be present on the same machine as
|
|
OpenSER. localhost could be replaced with any other machine.
|
|
|
|
1.6.4. Testing for a proper Configuration
|
|
|
|
As a quick test to make sure that the SNMPStats module
|
|
sub-agent can succesfully connect to the NetSNMP Master agent,
|
|
start snmpd with the following:
|
|
snmpd -f -Dagentx -x tcp:localhost:705 2>&1 | less
|
|
|
|
You should see something similar to the following:
|
|
No log handling enabled - turning on stderr logging
|
|
registered debug token agentx, 1
|
|
...
|
|
Turning on AgentX master support.
|
|
agentx/master: initializing...
|
|
agentx/master: initializing... DONE
|
|
NET-SNMP version 5.3.1
|
|
|
|
Now, start up OpenSER in another window. In the snmpd window,
|
|
you should see a bunch of:
|
|
agentx/master: handle pdu (req=0x2c58ebd4,trans=0x0,sess=0x0)
|
|
agentx/master: open 0x81137c0
|
|
agentx/master: opened 0x814bbe0 = 6 with flags = a0
|
|
agentx/master: send response, stat 0 (req=0x2c58ebd4,trans=0x0,sess=
|
|
0x0)
|
|
agentx_build: packet built okay
|
|
|
|
The messages beginning with "agentx" are debug messages stating
|
|
that something is happening with an AgentX sub-agent, appearing
|
|
because of the -Dagentx snmpd switch. The large number of debug
|
|
messages appear at startup as the SNMPStats module registers
|
|
all of its scalars and tables with the Master Agent. If you
|
|
receive these messages, then SNMPStats module and NetSNMP
|
|
daemon have both been configured correctly.
|
|
|
|
Chapter 2. Frequently Asked Questions
|
|
|
|
2.1.
|
|
|
|
Where can I find more about SNMP?
|
|
|
|
There are many websites that explain SNMP at all levels of
|
|
detail. A great general introduction can be found at
|
|
http://en.wikipedia.org/wiki/SNMP If you are interested in the
|
|
nitty gritty details of the protocol, then please look at RFC
|
|
3410. RFC 3410 maps out the many other RFCs that define SNMP,
|
|
and can be found at
|
|
http://www.rfc-archive.org/getrfc.php?rfc=3410
|
|
|
|
2.2.
|
|
|
|
Where can I find more about NetSNMP?
|
|
|
|
NetSNMP source code, documentation, FAQs, and tutorials can all
|
|
be found at http://net-snmp.sourceforge.net/.
|
|
|
|
2.3.
|
|
|
|
Where can I find out more about AgentX?
|
|
|
|
The full details of the AgentX protocol are explained in RFC
|
|
2741, available at:
|
|
http://www.rfc-archive.org/getrfc.php?rfc=2741
|
|
|
|
2.4.
|
|
|
|
Why am I not receiving any SNMP Traps?
|
|
|
|
Assuming you've configured the trap thresholds in kamailio.cfg
|
|
with something similar to:
|
|
modparam("snmpstats", "MsgQueueMinorThreshold", 1234)
|
|
modparam("snmpstats", "MsgQueueMajorThreshold", 5678)
|
|
|
|
modparam("snmpstats", "dlg_minor_threshold", 500)
|
|
modparam("snmpstats", "dlg_minor_threshold", 600)
|
|
|
|
Then either Kamailio is not reaching these thresholds (which is
|
|
a good thing), or you haven't set up the trap monitor
|
|
correctly. To prove this to yourself, you can start NetSNMP
|
|
with:
|
|
snmpd -f -Dtrap -x localhost:705
|
|
|
|
The -f tells the NetSNMP process to not daemonize, and the
|
|
-Dtrap enables trap debug logs. You should see something
|
|
similar to the following:
|
|
registered debug token trap, 1
|
|
trap: adding callback trap sink ----- You should see both
|
|
trapsess: adding to trap table ----- of these lines.
|
|
Turning on AgentX master support.
|
|
trap: send_trap 0 0 NET-SNMP-TC::linux
|
|
trap: sending trap type=167, version=1
|
|
NET-SNMP version 5.3.1
|
|
|
|
If the two lines above did not appear, then you probably have
|
|
not included the following in your snmpd.conf file.
|
|
trap2sink machineToSendTrapsTo:machinesPortNumber.
|
|
|
|
When a trap has been received by snmpd, the following will
|
|
appear in the above output:
|
|
sent_trap -1 -1 NET-SNMP-TC::linus
|
|
sending trap type=167, version=1
|
|
|
|
You'll also need a program to collect the traps and do
|
|
something with them (such as sending them to syslog). NetSNMP
|
|
provides snmptrapd for this. Other solutions exist as well.
|
|
Google is your friend.
|
|
|
|
2.5.
|
|
|
|
Kamailio refuses to load the SNMPStats module. Why is it
|
|
displaying "load_module: could not open module snmpstats.so"?
|
|
|
|
On some systems, you may receive the following error at stdout
|
|
or the log files depending on the configuration.
|
|
ERROR: load_module: could not open module </usr/local/lib/openser/mo
|
|
dules/snmpstats.so>:
|
|
libnetsnmpmibs.so.10: cannot open shared object file: No such
|
|
file or directory.
|
|
|
|
This means one of two things:
|
|
1. You did not install NetSNMP. ("make install" if building
|
|
from source)
|
|
2. The dynamic linker cannot find the necessary libraries.
|
|
|
|
In the second case, the fix is as follows:
|
|
1. find / -name "libnetsnmpmibs*"
|
|
+ You will find a copy unless you haven't installed
|
|
NetSNMP. Make note of the path.
|
|
2. less /etc/ld.so.conf
|
|
+ If the file is missing the path from step 1, then add
|
|
the path to ld.so.conf
|
|
3. ldconfig
|
|
4. Try starting Kamailio again.
|
|
|
|
Alternatively, you may prefix your startup command with:
|
|
LD_LIBRARY_PATH=/path/noted/in/step/one/above
|
|
|
|
For example, on my system I ran:
|
|
LD_LIBRARY_PATH=/usr/local/lib kamctl start
|
|
|
|
2.6.
|
|
|
|
How can I learn what all the scalars and tables are?
|
|
|
|
All scalars and tables are named in the SNMPStats module
|
|
overview. The files OPENSER-MIB, OPENSER-REG-MIB,
|
|
OPENSER-SIP-COMMON-MIB and OPENSER-SIP-SERVER-MIB contain the
|
|
full definitions and descriptions. Note however, that the MIBs
|
|
may actually contain scalars and tables which are currently not
|
|
provided by the SNMPStats module. Therefore, it is better to
|
|
use NetSNMP's snmptranslate as an alternative. Take the
|
|
openserSIPEntityType scalar as an example. You can invoke
|
|
snmptranslate as follows:
|
|
snmptranslate -TBd openserSIPEntityType
|
|
|
|
Which would result in something similar to the following:
|
|
-- FROM OPENSER-SIP-COMMON-MIB
|
|
-- TEXTUAL CONVENTION KamailioSIPEntityRole
|
|
SYNTAX BITS {other(0), userAgent(1), proxyServer(2), redirect
|
|
Server(3), registrarServer(4)}
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION " This object identifies the list of SIP entities this
|
|
row is related to. It is defined as a bit map. Each
|
|
bit represents a type of SIP entity.
|
|
If a bit has value 1, the SIP entity represented by
|
|
this row plays the role of this entity type.
|
|
|
|
If a bit has value 0, the SIP entity represented by
|
|
this row does not act as this entity type
|
|
Combinations of bits can be set when the SIP entity
|
|
plays multiple SIP roles."
|
|
|
|
2.7.
|
|
|
|
Why do snmpget, snmpwalk, and snmptable always time out?
|
|
|
|
If your snmp operations are always returning with: "Timeout: No
|
|
Response from localhost", then chances are that you are making
|
|
the query with the wrong community string. Default installs
|
|
will most likely use "public" as their default community
|
|
strings. Grep your snmpd.conf file for the string
|
|
"rocommunity", and use the result as your community string in
|
|
your queries.
|
|
|
|
2.8.
|
|
|
|
How do I use snmpget?
|
|
|
|
NetSNMP's snmpget is used as follows:
|
|
snmpget -v 2c -c theCommunityString machineToSendTheMachineTo scalar
|
|
Element.0
|
|
|
|
For example, consider an snmpget on the openserSIPEntityType
|
|
scalar, run on the same machine running the Kamailio instance,
|
|
with the default "public" community string. The command would
|
|
be:
|
|
snmpget -v2c -c public localhost openserSIPEntityType.0
|
|
|
|
Which would result in something similar to:
|
|
OPENSER-SIP-COMMON-MIB::openserSIPEntityType.0 = BITS: F8 \
|
|
other(0) userAgent(1) proxyServer(2) \
|
|
redirectServer(3) registrarServer(4)
|
|
|
|
2.9.
|
|
|
|
How do I use snmptable?
|
|
|
|
NetSNMP's snmptable is used as follows:
|
|
snmptable -Ci -v 2c -c theCommunityString machineToSendTheMachineTo
|
|
theTableName
|
|
|
|
For example, consider the openserSIPRegUserTable. If we run the
|
|
snmptable command on the same machine as the running Kamailio
|
|
instance, configured with the default "public" community
|
|
string. The command would be:
|
|
snmptable -Ci -v 2c -c public localhost openserSIPRegUserTable
|
|
|
|
Which would result in something similar to:
|
|
index openserSIPUserUri openserSIPUserAuthenticationFailures
|
|
1 DefaultUser 0
|
|
2 bogdan 0
|
|
3 jeffrey.magder 0
|
|
|
|
2.10.
|
|
|
|
Where can I find more about Kamailio?
|
|
|
|
Take a look at http://www.kamailio.org/.
|
|
|
|
2.11.
|
|
|
|
Where can I post a question about this module?
|
|
|
|
First at all check if your question was already answered on one
|
|
of our mailing lists:
|
|
* User Mailing List -
|
|
http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
|
|
* Developer Mailing List -
|
|
http://lists.kamailio.org/cgi-bin/mailman/listinfo/devel
|
|
|
|
E-mails regarding any stable Kamailio release should be sent to
|
|
<users@lists.kamailio.org> and e-mails regarding development
|
|
versions should be sent to <devel@lists.kamailio.org>.
|
|
|
|
If you want to keep the mail private, send it to
|
|
<team@lists.kamailio.org>.
|
|
|
|
2.12.
|
|
|
|
How can I report a bug?
|
|
|
|
Please follow the guidelines provided at:
|
|
http://sourceforge.net/tracker/?group_id=139143.
|