SNMP Component
Available as of Camel 2.1
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>
|
Code Block |
---|
snmp://hostname[:port][?Options]
|
The component supports polling OID values from an SNMP enabled device and receiving traps.
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 or TRAP . The value 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. | protocol
| udp
| 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 |
---|
|
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 |
---|
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>
|
As you maybe recognized there is one more result than requested....1.3.6.1.2.1.1.1.0.
This one is filled in by the device automatically in this special case. So it may absolutely happen, that you receive more than you requested...be prepared.
Examples
Polling a remote device:
Code Block |
---|
snmp:192.168.178.23:161?protocol=udp&type=POLL&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
|
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=POLL&oids=1.3.6.1.2.1.1.5.0").
convertBodyTo(String.class).
to("activemq:snmp.states");
|
Include Page |
---|
| Endpoint See Also |
---|
| Endpoint See Also |
---|
|