telegraf/plugins/inputs/snmp
Cameron Sparr de7c35280b WIP adding snmptranslate MIB-lookup integration 2016-08-01 12:16:50 +01:00
..
README.md New snmp plugin and snmp_legacy rename 2016-07-28 16:23:40 +01:00
snmp.go WIP adding snmptranslate MIB-lookup integration 2016-08-01 12:16:50 +01:00
snmp_test.go WIP adding snmptranslate MIB-lookup integration 2016-08-01 12:16:50 +01:00

README.md

SNMP Plugin

The SNMP input plugin gathers metrics from SNMP agents. It is an alternative to the SNMP plugin with significantly different configuration & behavior.

Configuration:

Example:

SNMP data:

.1.2.3.0.0.1.0 octet_str "foo"
.1.2.3.0.0.1.1 octet_str "bar"
.1.2.3.0.0.102 octet_str "bad"
.1.2.3.0.0.2.0 integer 1
.1.2.3.0.0.2.1 integer 2
.1.2.3.0.0.3.0 octet_str "0.123"
.1.2.3.0.0.3.1 octet_str "0.456"
.1.2.3.0.0.3.2 octet_str "9.999"
.1.2.3.0.1 octet_str "baz"
.1.2.3.0.2 uinteger 54321
.1.2.3.0.3 uinteger 234

Telegraf config:

[[inputs.snmp]]
  agents = [ "127.0.0.1:161" ]
  version = 2
  community = "public"

  name = "system"
  [[inputs.snmp.field]]
    name = "hostname"
    oid = ".1.2.3.0.1"
    is_tag = true
  [[inputs.snmp.field]]
    name = "uptime"
    oid = ".1.2.3.0.2"
  [[inputs.snmp.field]]
    name = "loadavg"
    oid = ".1.2.3.0.3"
  	conversion = "float(2)"

  [[inputs.snmp.table]]
    name = "remote_servers"
    inherit_tags = [ "hostname" ]
    [[inputs.snmp.table.field]]
      name = "server"
      oid = ".1.2.3.0.0.1"
      is_tag = true
    [[inputs.snmp.table.field]]
      name = "connections"
      oid = ".1.2.3.0.0.2"
    [[inputs.snmp.table.field]]
      name = "latency"
      oid = ".1.2.3.0.0.3"
  		conversion = "float"

Resulting output:

* Plugin: snmp, Collection 1
> system,agent_host=127.0.0.1,host=mylocalhost,hostname=baz loadavg=2.34,uptime=54321i 1468953135000000000
> remote_servers,agent_host=127.0.0.1,host=mylocalhost,hostname=baz,server=foo connections=1i,latency=0.123 1468953135000000000
> remote_servers,agent_host=127.0.0.1,host=mylocalhost,hostname=baz,server=bar connections=2i,latency=0.456 1468953135000000000

Config parameters

  • agents: Default: [] List of SNMP agents to connect to in the form of IP[:PORT]. If :PORT is unspecified, it defaults to 161.

  • version: Default: 2 SNMP protocol version to use.

  • community: Default: "public" SNMP community to use.

  • max_repetitions: Default: 50 Maximum number of iterations for repeating variables.

  • sec_name: Security name for authenticated SNMPv3 requests.

  • auth_protocol: Values: "MD5","SHA","". Default: "" Authentication protocol for authenticated SNMPv3 requests.

  • auth_password: Authentication password for authenticated SNMPv3 requests.

  • sec_level: Values: "noAuthNoPriv","authNoPriv","authPriv". Default: "noAuthNoPriv" Security level used for SNMPv3 messages.

  • context_name: Context name used for SNMPv3 requests.

  • priv_protocol: Values: "DES","AES","". Default: "" Privacy protocol used for encrypted SNMPv3 messages.

  • priv_password: Privacy password used for encrypted SNMPv3 messages.

  • name: Output measurement name.

Field parameters:

  • name: Output field/tag name.

  • oid: OID to get. Must be in dotted notation, not textual.

  • is_tag: Output this field as a tag.

  • conversion: Values: "float(X)","float","int","". Default: "" Converts the value according to the given specification.

    • float(X): Converts the input value into a float and divides by the Xth power of 10. Efficively just moves the decimal left X places. For example a value of 123 with float(2) will result in 1.23.
    • float: Converts the value into a float with no adjustment. Same as float(0).
    • int: Convertes the value into an integer.

Table parameters:

  • name: Output measurement name.

  • inherit_tags: Which tags to inherit from the top-level config and to use in the output of this table's measurement.