SNMP Traps
1. Introduction
HORISEN SMS Platform supports notifications using SNMP Traps.
Implemented protocol versions are:
- SNMPv2c
- SNMPv3
2. Configuring SNMP Traps in the Platform
In order to receive SNMP Traps, platform owner needs to provide IP address and port where SNMP notifications will be sent, and depending on the selected version of the protocol:
- For SNMPv2c – community name (example: public),
-
For SNMPv3 set of parameters:
- enterpriseid: "8000000001020304"
- username: "traptest"
- authalgorithm: "sha"
- authpassword: "mypassword"
- privalgorithm: "aes"
- privpassword: "mypassword"
The above parameters must be sent to the HORISEN IT Team because currently, GUI does not support SNMP configuration.
3. Configuring the SNMP Trap Receiver to Accept the Traps
The typical configuration for the snmptrapd, the standard Linux server for receiving SNMP Traps, for v2c protocol is:
# SNMP v2 configuration
authCommunity log public
and for v3 protocol:
createUser -e 0x8000000001020304 traptest SHA mypassword AES
authuser log traptest
Traps are sent using UDP packets to provided IP:Port pair.
4. Structure of SNMP Traps
SNMP Traps are described in MIB provided as an addition to this document, in sections:
gateStateNotification NOTIFICATION-TYPE
OBJECTS { gtID, gtName, gtCName, gtOperStatus, gtBindsUp, gtBindsMax, gtStatusDescription }
STATUS current
DESCRIPTION
“Notification about state change on one gate”
::= { gtTraps 1 }
gateSystemNotification NOTIFICATION-TYPE
OBJECTS { gtID, gtName, gtCName, gtStatusDescription }
STATUS current
DESCRIPTION
“Notification about system problem on one gate”
::= { gtTraps 2 }
accountStateNotification NOTIFICATION-TYPE
OBJECTS { acID, acName, acCName, acOperStatus, acBindsUp, acBindsMax, acStatusDescription }
STATUS current
DESCRIPTION
“Notification about state change on one account”
::= { acTraps 1 }
accountSystemNotification NOTIFICATION-TYPE
OBJECTS { acID, acName, acCName, acStatusDescription }
STATUS current
DESCRIPTION
“Notification about system problem on one account”
::= { acTraps 2 }
5. Events That Trigger SNMP Trap
SNMP Trap notification module in the SMS Platform monitors:
- Number of binds established for each SMPP account
- Number of binds established for each SMPP gate
These counters are checked every 15 seconds, and whenever change is detected on any of them, SNMP Trap is generated.
6. Examples
All the examples are recorded using SNMPv3 protocol, snmptrapd, and its log. When the SNMPv2c protocol is used, available fields are the same – but the log for each query looks different.
6.1 Customer Connection Established
2023-03-15 20:42:36 registry.local [UDP: [192.168.0.202]:52186->[0.0.0.0]:0]:
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1678909356) 194 days, 7:38:13.56
SNMPv2-MIB::snmpTrapOID.0 = OID: SNMPv2-SMI::enterprises.52601.1.2.0.1
SNMPv2-SMI::enterprises.52601.1.2.2.1.2 = INTEGER: 12306
SNMPv2-SMI::enterprises.52601.1.2.2.1.4 = STRING: "SMPP Test"
SNMPv2-SMI::enterprises.52601.1.2.2.1.5 = STRING: "11482_SMPP_Test"
SNMPv2-SMI::enterprises.52601.1.2.2.1.6 = INTEGER: 1
SNMPv2-SMI::enterprises.52601.1.2.2.1.13 = INTEGER: 1
SNMPv2-SMI::enterprises.52601.1.2.2.1.14 = INTEGER: 100
SNMPv2-SMI::enterprises.52601.1.2.2.1.12 = STRING: "Status change, was 0/100 now 1/100"
6.2 Customer Connection Stopped
2023-03-15 20:44:21 registry.local [UDP: [192.168.0.202]:57322->[0.0.0.0]:0]:
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1678909461) 194 days, 7:38:14.61
SNMPv2-MIB::snmpTrapOID.0 = OID: SNMPv2-SMI::enterprises.52601.1.2.0.1
SNMPv2-SMI::enterprises.52601.1.2.2.1.2 = INTEGER: 12306
SNMPv2-SMI::enterprises.52601.1.2.2.1.4 = STRING: "SMPP Test"
SNMPv2-SMI::enterprises.52601.1.2.2.1.5 = STRING: "11482_SMPP_Test"
SNMPv2-SMI::enterprises.52601.1.2.2.1.6 = INTEGER: 2
SNMPv2-SMI::enterprises.52601.1.2.2.1.13 = INTEGER: 0
SNMPv2-SMI::enterprises.52601.1.2.2.1.14 = INTEGER: 100
SNMPv2-SMI::enterprises.52601.1.2.2.1.12 = STRING: "Status change, was 1/100 now 0/100"
6.3 Supplier Connection Established
2023-03-15 20:46:21 registry.local [UDP: [192.168.0.202]:54170->[0.0.0.0]:0]:
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1678909581) 194 days, 7:38:15.81
SNMPv2-MIB::snmpTrapOID.0 = OID: SNMPv2-SMI::enterprises.52601.1.1.0.1
SNMPv2-SMI::enterprises.52601.1.1.2.1.2 = INTEGER: 12573
SNMPv2-SMI::enterprises.52601.1.1.2.1.4 = STRING: "10236_HORMESSSUN"
SNMPv2-SMI::enterprises.52601.1.1.2.1.5 = STRING: "10236_HORMESSSUN"
SNMPv2-SMI::enterprises.52601.1.1.2.1.6 = INTEGER: 1
SNMPv2-SMI::enterprises.52601.1.1.2.1.18 = INTEGER: 1
SNMPv2-SMI::enterprises.52601.1.1.2.1.19 = INTEGER: 1
SNMPv2-SMI::enterprises.52601.1.1.2.1.17 = STRING: "Status change, was 0/1 now 1/1"
6.4 Supplier Connection Stopped
2023-03-15 20:45:06 registry.local [UDP: [192.168.0.202]:50528->[0.0.0.0]:0]:
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1678909506) 194 days, 7:38:15.06
SNMPv2-MIB::snmpTrapOID.0 = OID: SNMPv2-SMI::enterprises.52601.1.1.0.1
SNMPv2-SMI::enterprises.52601.1.1.2.1.2 = INTEGER: 12573
SNMPv2-SMI::enterprises.52601.1.1.2.1.4 = STRING: "10236_HORMESSSUN"
SNMPv2-SMI::enterprises.52601.1.1.2.1.5 = STRING: "10236_HORMESSSUN"
SNMPv2-SMI::enterprises.52601.1.1.2.1.6 = INTEGER: 2
SNMPv2-SMI::enterprises.52601.1.1.2.1.18 = INTEGER: 0
SNMPv2-SMI::enterprises.52601.1.1.2.1.19 = INTEGER: 1
SNMPv2-SMI::enterprises.52601.1.1.2.1.17 = STRING: "Status change, was 1/1 now 0/1"
7. Status of the Connections
Both account and gate connections have the field OperStatus (gtOperStatus for the gates and acOperStatus for the accounts). This field has two possible values:
- up(1)
- down(2)
Both statuses are up if at least one bind is active. Otherwise, the status becomes down.
8. Severity Qualification
The reason why SNMP Traps do not add severity level is that level to identify is the severity of normal, minor, major, and critical, may differ from one to another gate or account. This way, notifications provide the current count of binds and the maximum configured count of binds, so that the SNMP Traps receiver can decide on the severity and take appropriate action.