项目作者: ksator

项目描述 :
Telegraf with SNMP MIB loaded. SNMP monitoring with Telegraf
高级语言: Dockerfile
项目地址: git://github.com/ksator/telegraf_with_snmp_mib.git
创建时间: 2019-01-10T21:34:27Z
项目社区:https://github.com/ksator/telegraf_with_snmp_mib

开源协议:MIT License

下载


What to find in this repo

A docker file for telegraf that includes the following MIB:

requirements to use this repo

install docker

How to test this repo

Download the image

  1. $ docker pull ksator/telegraf_with_snmp_mib

Verify

  1. $ docker images ksator/telegraf_with_snmp_mib
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. ksator/telegraf_with_snmp_mib latest 9e86cea117ad 7 minutes ago 315MB

The MIB are in the directory /usr/share/snmp/mibs.
Run this command to verify:

  1. $ docker run -i -t ksator/telegraf_with_snmp_mib ls /usr/share/snmp/mibs

Run this command to test it:

  • community public
  • snmp version 2c
  • ip 100.123.1.0
  • mib JUNIPER-MIB
  • object name jnxBoxDescr.0
    1. $ docker run -i -t ksator/telegraf_with_snmp_mib snmpget -v 2c -c public 100.123.1.0 JUNIPER-MIB::jnxBoxDescr.0
    Here’s an output example:
    Juniper VMX Internet Backbone Router

This is the equivalent command of

  1. $ docker run -i -t ksator/telegraf_with_snmp_mib snmpget -v 2c -c public 100.123.1.0 1.3.6.1.4.1.2636.3.1.2.0

How to use this repo

Create a docker network

  1. $ docker network create test

Influxdb

pull influxdb docker image

  1. $ docker pull influxdb

Verify

  1. $ docker images influxdb

Instanciate an influxdb container

  1. $ docker run -d --name influxdb -p 8083:8083 -p 8086:8086 --network=test influxdb

Verify

  1. $ docker ps | grep influxdb

Telegraf

pull ksator/telegraf_snmp docker image

  1. $ docker pull ksator/telegraf_with_snmp_mib

Verify

  1. $ docker images ksator/telegraf_with_snmp_mib

create a telegraf configuration file

  1. $ cat telegraf.conf
  2. [[inputs.snmp]]
  3. # List of agents to poll
  4. agents = ["100.123.1.0:161", "100.123.1.1:161", "100.123.1.2:161"]
  5. # Polling interval
  6. interval = "5s"
  7. # Timeout for each SNMP query.
  8. timeout = "10s"
  9. # Number of retries to attempt within timeout.
  10. retries = 3
  11. # SNMP version
  12. version = 2
  13. # SNMP community string.
  14. community = "public"
  15. # Measurement name
  16. name = "demo"
  17. [[inputs.snmp.field]]
  18. name = "hostname"
  19. oid = ".1.3.6.1.2.1.1.5.0"
  20. is_tag = true
  21. # Juniper Networks MIB
  22. [[inputs.snmp.field]]
  23. name = "jnxBoxSerialNo"
  24. oid="JUNIPER-MIB::jnxBoxSerialNo.0"
  25. [[inputs.snmp.field]]
  26. name = "jnxBoxDescr"
  27. oid="JUNIPER-MIB::jnxBoxDescr.0"
  28. [[inputs.snmp.field]]
  29. name = "jnxBoxInstalled"
  30. oid="JUNIPER-MIB::jnxBoxInstalled.0"
  31. [[outputs.influxdb]]
  32. urls = ["http://influxdb:8086"]
  33. database = "mydb"
  34. timeout = "5s"
  35. username = "telegraf"
  36. password = "password123"

instanciate a telegraf container

  1. docker run -d --name telegraf \
  2. -v $PWD/telegraf.conf:/etc/telegraf/telegraf.conf \
  3. --network=test \
  4. ksator/telegraf_with_snmp_mib

verify

  1. $ docker ps | grep telegraf_with_snmp_mib

start a shell session in the influxdb container and query the influxdb database to verify

  1. $ docker exec -it influxdb bash
  2. root@7d6138d695d4:/# influx
  3. Connected to http://localhost:8086 version 1.7.2
  4. InfluxDB shell version: 1.7.2
  5. Enter an InfluxQL query

list databases

  1. > show databases
  2. name: databases
  3. name
  4. ----
  5. _internal
  6. mydb

list measurements

  1. > use mydb
  2. Using database mydb
  3. > show measurements
  4. name: measurements
  5. name
  6. ----
  7. demo

query

  1. > select * from "demo" order by desc limit 6
  2. name: demo
  3. time agent_host host hostname jnxBoxDescr jnxBoxInstalled jnxBoxSerialNo
  4. ---- ---------- ---- -------- ----------- --------------- --------------
  5. 1547163595000000000 100.123.1.2 458327811d17 vMX-addr-2 Juniper VMX Internet Backbone Router 22252400 VM5B6A238173
  6. 1547163595000000000 100.123.1.1 458327811d17 vMX-addr-1 Juniper VMX Internet Backbone Router 22254100 VM5B6A238173
  7. 1547163595000000000 100.123.1.0 458327811d17 vMX-addr-0 Juniper VMX Internet Backbone Router 22259900 VM5B6A238173
  8. 1547163590000000000 100.123.1.2 458327811d17 vMX-addr-2 Juniper VMX Internet Backbone Router 22251900 VM5B6A238173
  9. 1547163590000000000 100.123.1.1 458327811d17 vMX-addr-1 Juniper VMX Internet Backbone Router 22253600 VM5B6A238173
  10. 1547163590000000000 100.123.1.0 458327811d17 vMX-addr-0 Juniper VMX Internet Backbone Router 22259400 VM5B6A238173

exit influxdb container

  1. > exit
  2. root@7d6138d695d4:/# exit
  3. exit

Stop and remove the containers

  1. $ docker stop telegraf influxdb
  1. $ docker rm telegraf influxdb