A SNMP trap listener for the Sensu client process. This check extension creates a SNMPv2 trap listener, loads & imports MIB files, and attempts to translate SNMP traps into Sensu check results. Sensu proxy clients are created for SNMP devices, using the device hostname as the client name, when a SNMP trap is received.
The SNMP trap to Sensu check result translation logic is currently being improved. Failure to translate the SNMP trap will produce a check result (and event) like the following (addresses have been redacted):
This SNMP trap extension was inspired by the work done by Toby Jackson on SNMPTrapHandler.
This extension requires Sensu version >= 0.26.
On a Sensu client machine.
sensu-install -e snmp-trap:0.0.33
Edit /etc/sensu/conf.d/extensions.json
to load it.
{
"extensions": {
"snmp-trap": {
"version": "0.0.33"
}
}
}
Edit /etc/sensu/conf.d/snmp_trap.json
to change its configuration.
{
"snmp_trap": {
"community": "secret",
"result_attributes": {
"datacenter": "DC01"
},
"result_status_map": [
["authenticationFailure", 0]
],
"client_socket_bind": "192.168.0.3",
"client_socket_port": 1234
}
}
attribute | type | default | description |
---|---|---|---|
bind | string | 0.0.0.0 | IP to bind the SNMP trap listener to |
port | integer | 1062 | Port to bind the SNMP trap listener to |
community | string | "public" | SNMP community string to use |
mibs_dir | string | "/etc/sensu/mibs" | MIBs directory to import and load MIBs from |
imported_dir | string | "$TMPDIR/sensu_snmp_imported_mibs" | Directory to store imported MIB data in |
handlers | array | ["default"] | Handlers to specify in Sensu check results |
result_attributes | hash | {} | Custom check result attributes to add to every SNMP trap Sensu check result |
result_map | array | [] | SNMP trap varbind to Sensu check result translation mappings |
result_status_map | array | [] | SNMP trap varbind to Sensu check result status mappings |
client_socket_bind | string | "127.0.0.1" | IP to send events to when handled |
client_socket_port | integer | 3030 | Port to send events to when handled |
The configurable result map allows you to define SNMP trap varbind to Sensu check result attribute mappings. A mapping is comprised of a varbind name regular expression and a check attribute. For example, if you expect SNMP traps with a varbind name that contains "AlertDescription" and you would like to use its value as the Sensu check result output:
{
"snmp_trap": {
"...": "...",
"result_map": [
["/description/i", "output"]
]
}
}
Configuring a result map does not replace the built-in mappings, the configured mappings take precedence over them.
The configurable result status map allows you to define SNMP trap
varbind to numeric Sensu check result status value mappings. A
mapping is comprised of a varbind name regular expression and an check
exit status (e.g. 1-255). For example, if you expect SNMP traps with a
varbind name that contains "CriticalError" and you would like to set
the Sensu check result status to 2
(critical):
{
"snmp_trap": {
"...": "...",
"result_status_map": [
["/critical/i", 2]
]
}
}
Configuring a result status map does not replace the built-in mappings, the configured mappings take precedence over them.