SNMP Component
Available as of Camel 2.1
SNMP Component
The snmp: component gives you the ability to poll SNMP capable devices or receiving traps.
Maven users will need to add the following dependency to their pom.xml
for this component:
Code Block |
---|
|
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-snmp</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>
|
URI format
Code Block |
---|
snmp://hostname[:port][?Options]
|
...
You can append query options to the URI in the following format, ?option=value&option=value&...
Options
Div |
---|
class | confluenceTableSmall |
---|
|
Name | Default Value | Description |
---|
type
| none | The type of action you want to perform. Actually you can enter here |
|
...
...
...
POLL will instruct the endpoint to poll a given host for the supplied OID keys. If you put in |
|
...
TRAP you will setup a listener for SNMP Trap Events. |
|
...
address
...
This is the IP address and the port of the host to poll or where to setup the Trap Receiver. Example: 127.0.0.1:162
...
| Here you can select which protocol to use. |
|
...
You can use either udp or tcp . | retries
| 2
| Defines how often a retry is made before canceling the request. |
|
...
| timeout
| 1500
| Sets the timeout value for the request in millis. |
|
...
| snmpVersion
| 0 (which means SNMPv1)
|
|
...
| Sets the snmp version for the request. |
|
...
| snmpCommunity
| public
| Sets the community octet string for the snmp request. |
|
...
| delay
| 60 seconds
| Defines the delay in seconds between to poll cycles |
|
...
. From Camel 2.15 onwards the delay is using millis as its timeunit, so configure 30000 for 30 seconds. Older releases uses the value in seconds. | oids
| none | Defines which values you are interested in. Please have a look at the Wikipedia to get a better understanding. You may provide a single OID or a coma separated list of OIDs. Example: oids="1.3.6.1.2.1.1.3.0,1.3.6.1.2.1.25.3.2.1.5.1,1.3.6.1.2.1.25.3.5.1.1.1,1.3.6.1.2.1.43.5.1.1.11.1" |
|
The result of a poll
Given the situation, that I poll for the following OIDs:
Code Block |
---|
title | OIDs |
---|
lang | java | title | oids |
---|
|
1.3.6.1.2.1.1.3.0
1.3.6.1.2.1.25.3.2.1.5.1
1.3.6.1.2.1.25.3.5.1.1.1
1.3.6.1.2.1.43.5.1.1.11.1
|
The result will be the following:
Code Block |
---|
lang | xml |
---|
title | Result of toString conversion |
---|
lang | xml |
---|
|
<?xml version="1.0" encoding="UTF-8"?>
<snmp>
<entry>
<oid>1.3.6.1.2.1.1.3.0</oid>
<value>6 days, 21:14:28.00</value>
</entry>
<entry>
<oid>1.3.6.1.2.1.25.3.2.1.5.1</oid>
<value>2</value>
</entry>
<entry>
<oid>1.3.6.1.2.1.25.3.5.1.1.1</oid>
<value>3</value>
</entry>
<entry>
<oid>1.3.6.1.2.1.43.5.1.1.11.1</oid>
<value>6</value>
</entry>
<entry>
<oid>1.3.6.1.2.1.1.1.0</oid>
<value>My Very Special Printer Of Brand Unknown</value>
</entry>
</snmp>
|
...
Polling a remote device:
Code Block |
---|
snmp:192.168.178.23:161?protocol=udp&type=pollPOLL&oids=1.3.6.1.2.1.1.5.0
|
Setting up a trap receiver (Note that no OID info is needed here!):
Code Block |
---|
snmp:127.0.0.1:162?protocol=udp&type=trap
TRAP
|
From Camel 2.10.0, you can get the community of SNMP TRAP with message header 'securityName',
peer address of the SNMP TRAP with message header 'peerAddress'.
Routing example in Java: (converts the SNMP PDU to XML String)
Code Block |
---|
from("snmp:192.168.178.23:161?protocol=udp&type=pollPOLL&oids=1.3.6.1.2.1.1.5.0").
convertBodyTo(String.class).
to("activemq:snmp.states");
|
...
...