Cryptomonkeys Consulting
  • Home
  • PGP
  • Blog

Setting up Telegraf

Please plan about 2 min to read this article.


Contents

  • Setting up Telegraf
  • Setup
  • Viewing the data we collected
  • Conclusion
  • Footnotes and References

Send to Kindle

Setting up Telegraf¶

Telegraf1 is an agent that is capable of collecting various metrics and exporting them to various storage backends.

Setup¶

Telegraf is lots of options. Start with something small and simple, then iterate on adding something else to the config. Makes it easier to troubleshoot.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
[global_tags]
[agent]
  interval = "10s"
  round_interval = true
  metric_batch_size = 1000
  metric_buffer_limit = 10000
  collection_jitter = "0s"
  flush_interval = "10s"
  flush_jitter = "0s"
  precision = ""
  hostname = ""
  omit_hostname = false
[[outputs.influxdb]]
  urls = ["http://127.0.0.1:8086"]
  database = "telegraf"
  skip_database_creation = false
[[inputs.snmp]]
   agents = ["udp://192.168.0.1:161"]
   interval = "60s"
   timeout = "10s"
   version = 1
   community = "public"
   retries = 3
  [[inputs.snmp.field]]
    name = "hostname"
    oid = "RFC1213-MIB::sysName.0"
    is_tag = true
  [[inputs.snmp.field]]
    name = "uptime"
    oid = ".1.3.6.1.2.1.1.3.0"
  [[inputs.snmp.table]]
    name = "interface"
    inherit_tags = [ "hostname" ]
    oid = "IF-MIB::ifTable"
  [[inputs.snmp.table.field]]
    name = "ifDescr"
    oid = "IF-MIB::ifDescr"
    is_tag = true
  [[inputs.snmp.table]]
    name = "interface"
    inherit_tags = [ "hostname" ]
    oid = "IF-MIB::ifXTable"
  [[inputs.snmp.table.field]]
    name = "ifDescr"
    oid = "IF-MIB::ifDescr"
    is_tag = true
  [[inputs.snmp.table]]
    name = "interface"
    inherit_tags = [ "hostname" ]
    oid = "EtherLike-MIB::dot3StatsTable"
  [[inputs.snmp.table.field]]
    name = "ifDescr"
    oid = "IF-MIB::ifDescr"
    is_tag = true

Here is the config I started with. It collects a small number of things from a single device. In this case, a Juniper SRX100. Things I changed from the defaults:

  • URL for influxdb
  • Database name
  • SNMP agents
  • SNMP community
  • The sub-sections for SNMP (I hard-coded the OID because it wasn’t working with the MIB name)

You can test your telegraf config by doing

1
2
3
$ telegraf --test --config /path/to/telegraf.conf
...
$

There should be plenty of output that is collected from the SNMP device configured, and no errors.

Viewing the data we collected¶

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
root@monitoring:~ # influx
Connected to http://localhost:8086 version 1.8.0
InfluxDB shell version: 1.8.0
> use telegraf
Using database telegraf
> show measurements
name: measurements
name
----
interface
> select * from interface limit 2
name: interface
time                agent_host dot3StatsAlignmentErrors dot3StatsCarrierSenseErrors dot3StatsDeferredTransmissions dot3StatsDuplexStatus dot3StatsEtherChipSet dot3StatsExcessiveCollisions dot3StatsFCSErrors dot3StatsFrameTooLongs dot3StatsIndex dot3StatsInternalMacReceiveErrors dot3StatsInternalMacTransmitErrors dot3StatsLateCollisions dot3StatsMultipleCollisionFrames dot3StatsSQETestErrors dot3StatsSingleCollisionFrames dot3StatsSymbolErrors host       hostname       ifAdminStatus ifAlias ifConnectorPresent ifCounterDiscontinuityTime ifDescr     ifHCInBroadcastPkts ifHCInMulticastPkts ifHCInOctets ifHCInUcastPkts ifHCOutBroadcastPkts ifHCOutMulticastPkts ifHCOutOctets ifHCOutUcastPkts ifHighSpeed ifInBroadcastPkts ifInDiscards ifInErrors ifInMulticastPkts ifInNUcastPkts ifInOctets ifInUcastPkts ifInUnknownProtos ifIndex ifLastChange ifLinkUpDownTrapEnable ifMtu ifName ifOperStatus ifOutBroadcastPkts ifOutDiscards ifOutErrors ifOutMulticastPkts ifOutNUcastPkts ifOutOctets ifOutQLen ifOutUcastPkts ifPhysAddress     ifPromiscuousMode ifSpecific ifSpeed ifType
----                ---------- ------------------------ --------------------------- ------------------------------ --------------------- --------------------- ---------------------------- ------------------ ---------------------- -------------- --------------------------------- ---------------------------------- ----------------------- -------------------------------- ---------------------- ------------------------------ --------------------- ----       --------       ------------- ------- ------------------ -------------------------- -------     ------------------- ------------------- ------------ --------------- -------------------- -------------------- ------------- ---------------- ----------- ----------------- ------------ ---------- ----------------- -------------- ---------- ------------- ----------------- ------- ------------ ---------------------- ----- ------ ------------ ------------------ ------------- ----------- ------------------ --------------- ----------- --------- -------------- -------------     ----------------- ---------- ------- ------
1595976547000000000 192.168.2.1                                                                                                                                                                                                                                                                                                                                                                                                                                 monitoring srx100.lab 1                                                                   ge-0/0/10.0                                                                                                                                                                             0            0                            0              0          0             0                 506     3693                                1514         7                               0             0                              0               0           0         0              54:e0:32:2f:86:8d                   .0.0       0       53
1595976547000000000 192.168.2.1                                                                                                                                                                                                                                                                                                                                                                                                                                 monitoring srx100.lab 1                                                                   ge-0/0/11                                                                                                                                                                               0            0                            0              0          0             0                 507     3369                                1514         2                               0             0                              0               0           0         0              54:e0:32:2f:86:8e                   .0.0       0       6
>
root@monitoring:~ #

Looks like we’re successfully storing data in InfluxDB2.

Conclusion¶

Next up, setting up visualizations.

Footnotes and References¶


  1. Telegraf Documentation ↩

  2. InfluxDB Documentation ↩


  • « Graphite and FreeNAS

So what do you think? Leave your comments below.

Comments
comments powered by Disqus

Published

by Louis Kowolowski on Aug 15, 2020
Last Updated
Aug 15, 2020

This post is part 3 of the "Influx and Grafana" series:

  1. Setting up InfluxDB
  2. Graphite and FreeNAS
  3. Setting up Telegraf

Category

Monitoring

Tags

  • FreeBSD 10
  • Telegraf 1

You can find me on

  • cryptomonkeys.com by Louis Kowolowski is licensed under a Creative Commons International License.