Terminal monitoring via SNMP

Terminal professional monitoring via SNMP

Description

Goal of this feature is to be able to monitor the SafeQ hardware Terminal Professional via SNMP. Customer is able to see a problem on the terminal immediately after it occurs to be able to respond and hopefully solve the problem before users start experiencing it.

User Stories

  1. As a administrator of SNMP management server, I want to be informed about terminal status so I can check terminals from central management software.

  2. As a administrator, I want be able to configure which events will be sent from terminal so that I can optimize number of SNMP packets on network.

Functional Requirements

1) The terminal sends SNMP traps (UDP packet) to the management server when the following conditions are met (according to configuration):

  • connection to the SafeQ server is lost

  • connection to the SafeQ server is established

  • connection to the SafeQ server could not be established

  • user logs in using PIN

  • user logs in using ID card

  • user logs in using login

  • User was not authenticated

Relevant MIB (OID prefix: .1.3.6.1.4.1.20519)
.500.2.1.1.1.1  - Connection to SQ server established
.500.2.1.1.1.2  - Connection to SQ server could not be established
.500.2.1.1.1.3  - Connection to SQ server closed
.500.2.1.2.1.1  - User not authenticated    (data: .100.2.1.2.1.3)
.500.2.1.2.1.2  - User authenticated        (data: .100.2.1.2.1.3)

2) The terminal also support SNMP polling and respond to SNMP requests sent from a management server. The following information are available in the terminal's MIB:

  • Status of the connection to the SafeQ server

  • Type of last user authentication (pin,card,login)

  • Last server connection IP

  • Last server connection port

  • Last server connection time stamp of connection create

  • Last server connection time stamp of connection close

  • Last user authentication time stamp

  • Last user authentication result

Relevant MIB (OID prefix: .1.3.6.1.4.1.20519)(i=integer32,s=octet string,c=counter32)
.100.2.1.1.1.1  i       - Connected to SQ server (1/2)=(disconnected/connected)
.100.2.1.1.1.2  s       - Last connected SQ server IP
.100.2.1.1.1.3  i       - Last connected SQ server port
.100.2.1.1.1.4  c       - Timestamp of last established connection to SQ server
.100.2.1.1.1.5  c       - Timestamp of last closed connection to SQ server
.100.2.1.1.1.6  c       - Timestamp of last connection to SQ server which fails (could not connect)
.100.2.1.2.1.1  i       - Last authentication state (1/2)=(unsucessfull/sucessfull)
.100.2.1.2.1.2  c       - Last authentication timestamp
.100.2.1.2.1.3  i       - Last authentication type (1,2,3,4,5,6,7,8)=(pin,card,card&pin,login,digital signature,activation code,forced by server,fingerprint)

3) The terminal allows user to enable / disable and set SNMP support in its service menu. It should be possible to switch on/off sending individual traps in the service menu.

Service menu options (Item name in remote configuration):

  • Enable/disable SNMP service (SNMP)

  • Set SNMP community name (SNMP_COMMUNITY)

  • Set SNMP location (SNMP_LOCATION)

  • Set SNMP contact (SNMP_CONTACT)

  • Enable/disable SNMP traps (SNMP_TRAP)

  • Set SNMP trap server IP (SNMP_TRAP_SERVER)

  • Set SNMP trap server port (SNMP_TRAP_PORT)

  • Set SNMP trap server community name (SNMP_TRAP_COMMUNITY)

  • Individually enable/disable each trap (SNMP_ENABLED_TRAPS)

Dependencies / Non-functional Requirements

Please note that it is not guaranteed that the SNMP trap is delivered to the management server.

Supported will be only SNMP v2c (with community name set)

Caveats

  • SNMP is supported only on Terminal Professional

  • SNMP support in terminal allows only read only polling

Terminal also contain following items which are not relevant to user interaction with terminal.

Rest of terminal MIB (text IODs)
SNMPv2-MIB::sysDescr.0 = STRING: Terminal_professional
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.20519.2.1.4
SNMPv2-MIB::sysUpTime.0 = Timeticks
SNMPv2-MIB::sysContact.0 = STRING:                  - defined in service menu - contact
SNMPv2-MIB::sysName.0 = STRING:                     - defined in service menu - hostname
SNMPv2-MIB::sysLocation.0 = STRING:                 - defined in service menu - location
HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks
UCD-SNMP-MIB::memTotalReal.0 = INTEGER: 62916
UCD-SNMP-MIB::memAvailReal.0 = INTEGER: 56008
UCD-SNMP-MIB::memShared.0 = INTEGER: 0
UCD-SNMP-MIB::memBuffer.0 = INTEGER: 0
UCD-SNMP-MIB::memCached.0 = INTEGER: 3548
UCD-SNMP-MIB::laIndex.1 = INTEGER: 1
UCD-SNMP-MIB::laIndex.2 = INTEGER: 2
UCD-SNMP-MIB::laIndex.3 = INTEGER: 3
UCD-SNMP-MIB::laNames.1 = STRING: Load-1
UCD-SNMP-MIB::laNames.2 = STRING: Load-5
UCD-SNMP-MIB::laNames.3 = STRING: Load-15
UCD-SNMP-MIB::laLoad.1 = STRING: 0.00
UCD-SNMP-MIB::laLoad.2 = STRING: 0.03
UCD-SNMP-MIB::laLoad.3 = STRING: 0.00
UCD-SNMP-MIB::laConfig.1 = STRING: 1
UCD-SNMP-MIB::laConfig.2 = STRING: 5
UCD-SNMP-MIB::laConfig.3 = STRING: 15
UCD-SNMP-MIB::laLoadInt.1 = INTEGER: 0
UCD-SNMP-MIB::laLoadInt.2 = INTEGER: 3
UCD-SNMP-MIB::laLoadInt.3 = INTEGER: 0
UCD-SNMP-MIB::ssCpuRawUser.0 = Counter32: 68639
UCD-SNMP-MIB::ssCpuRawNice.0 = Counter32: 0
UCD-SNMP-MIB::ssCpuRawSystem.0 = Counter32: 113753
UCD-SNMP-MIB::ssCpuRawIdle.0 = Counter32: 44088979
UCD-SNMP-MIB::ssRawInterrupts.0 = Counter32: 46094044
UCD-SNMP-MIB::ssRawContexts.0 = Counter32: 2800981
Rest of terminal MIB (numeric IODs)
.1.3.6.1.2.1.1.1.0 = STRING: Terminal_professional
.1.3.6.1.2.1.1.2.0 = OID: .1.3.6.1.4.1.20519.2.1.4
.1.3.6.1.2.1.1.3.0 = Timeticks
.1.3.6.1.2.1.1.4.0 = STRING:                         - defined in service menu - contact
.1.3.6.1.2.1.1.5.0 = STRING:                         - defined in service menu - hostname
.1.3.6.1.2.1.1.6.0 = STRING:                         - defined in service menu - location
.1.3.6.1.2.1.25.1.1.0 = Timeticks
.1.3.6.1.4.1.2021.4.5.0 = INTEGER: 62916
.1.3.6.1.4.1.2021.4.6.0 = INTEGER: 56008
.1.3.6.1.4.1.2021.4.13.0 = INTEGER: 0
.1.3.6.1.4.1.2021.4.14.0 = INTEGER: 0
.1.3.6.1.4.1.2021.4.15.0 = INTEGER: 3548
.1.3.6.1.4.1.2021.10.1.1.1 = INTEGER: 1
.1.3.6.1.4.1.2021.10.1.1.2 = INTEGER: 2
.1.3.6.1.4.1.2021.10.1.1.3 = INTEGER: 3
.1.3.6.1.4.1.2021.10.1.2.1 = STRING: Load-1
.1.3.6.1.4.1.2021.10.1.2.2 = STRING: Load-5
.1.3.6.1.4.1.2021.10.1.2.3 = STRING: Load-15
.1.3.6.1.4.1.2021.10.1.3.1 = STRING: 0.00
.1.3.6.1.4.1.2021.10.1.3.2 = STRING: 0.03
.1.3.6.1.4.1.2021.10.1.3.3 = STRING: 0.00
.1.3.6.1.4.1.2021.10.1.4.1 = STRING: 1
.1.3.6.1.4.1.2021.10.1.4.2 = STRING: 5
.1.3.6.1.4.1.2021.10.1.4.3 = STRING: 15
.1.3.6.1.4.1.2021.10.1.5.1 = INTEGER: 0
.1.3.6.1.4.1.2021.10.1.5.2 = INTEGER: 3
.1.3.6.1.4.1.2021.10.1.5.3 = INTEGER: 0
.1.3.6.1.4.1.2021.11.50.0 = Counter32: 68634
.1.3.6.1.4.1.2021.11.51.0 = Counter32: 0
.1.3.6.1.4.1.2021.11.52.0 = Counter32: 113747
.1.3.6.1.4.1.2021.11.53.0 = Counter32: 44088492
.1.3.6.1.4.1.2021.11.59.0 = Counter32: 46093471
.1.3.6.1.4.1.2021.11.60.0 = Counter32: 2800901

Licensing

License coverage of the feature

  • The feature is not covered by a license which equals to freely available feature in any installation.