Hi all!
I’m making a first foray into Chronograf, Telegraf and InfluxDB, and I’m having a bit of an issue wrapping my head around how to present the information that Telegraf is collecting.
First, allow me to explain the overarching objective. The goal is to use the TICK stack to collect metrics from a fleet of Network Switches(luckily, all the same model for the most part), display them appropriately(metrics per switch, as well as per interface metrics such as Up/Down status and Traffic), and use Kapacitor to report any dead collections or disconnected switches to a few different alert destinations.
I have Telegraf collecting metrics over SNMP for multiple switches and it places that data in an InfluxDB.
Below is an example of the data that gets pulled from a Telegraf test. There are another 50~ lines of the remaining interfaces. This is polling a 48 port Dell switch w/ 4 10GB SFP+ ports.
[root@host telegraf.d]# telegraf --config-directory /etc/telegraf/telegraf.d/switch-0116.conf --test
2020-01-29T20:41:27Z I! Starting Telegraf 1.13.2
2020-01-29T20:41:27Z I! Using config file: /etc/telegraf/telegraf.conf
snmp,agent_host=switch-0116.domain,host=switch-0116,uptime=1029144008 tcp_active_open=0i,tcp_passive_open=2865i,tcp_retransmission_timeout_max=64000i,tcp_retransmission_timeout_min=1000i 1580330487000000000
ifXTable,agent_host=switch-0116.domain interface_name=“GigabitEthernet 1/7”,interface_speed=1000000000i,interface_status=2i,traffic_egress=0i,traffic_egress_discards=0i,traffic_egress_errors=0i,traffic_ingress=0i,traffic_ingress_discards=0i,traffic_ingress_errors=0i 1580330488000000000
ifXTable,agent_host=switch-0116.domain interface_name=“GigabitEthernet 1/31”,interface_speed=1000000000i,interface_status=2i,traffic_egress=0i,traffic_egress_discards=0i,traffic_egress_errors=0i,traffic_ingress=0i,traffic_ingress_discards=0i,traffic_ingress_errors=0i 1580330488000000000
and here is the matching .conf file.
[[inputs.snmp]]
agents = [ “switch-0116.domain:161” ]
timeout = “5s”
retries = 3
version = 2
community = “string”[[inputs.snmp.table]]
name = “ifXTable”
#Remove below comment to poll all availble fields[Don’t do this in produciton]
#oid = “IF-MIB::ifXTable”[[inputs.snmp.field]]
name = “host”
oid = “SNMPv2-MIB::sysName.0”
is_tag = true[[inputs.snmp.field]]
name = “uptime”
oid = “DISMAN-EVENT-MIB::sysUpTimeInstance”
is_tag = true[[inputs.snmp.table.field]]
name = “interface_name”
oid = “IF-MIB::ifName”[[inputs.snmp.table.field]]
name = “interface_speed”
oid = “IF-MIB::ifSpeed”[[inputs.snmp.table.field]]
name = “traffic_ingress”
oid = “IF-MIB::ifInOctets”[[inputs.snmp.table.field]]
name = “traffic_egress”
oid = “IF-MIB:ifOutOctets”[[inputs.snmp.table.field]]
name = “traffic_ingress_errors”
oid = “IF-MIB::ifInErrors”[[inputs.snmp.table.field]]
name = “traffic_egress_errors”
oid = “IF-MIB::ifOutErrors”[[inputs.snmp.table.field]]
name = “traffic_ingress_discards”
oid = “IF-MIB::ifInDiscards”[[inputs.snmp.table.field]]
name = “traffic_egress_discards”
oid = “IF-MIB::ifOutDiscards”[[inputs.snmp.table.field]]
name = “interface_status”
oid = “IF-MIB::ifOperStatus”[[inputs.snmp.field]]
name = “tcp_active_open”
oid = “TCP-MIB::tcpActiveOpens.0”[[inputs.snmp.field]]
name = “tcp_passive_open”
oid = “TCP-MIB::tcpPassiveOpens.0”[[inputs.snmp.field]]
name = “tcp_retransmission_timeout_min”
oid = “TCP-MIB::tcpRtoMin.0”[[inputs.snmp.field]]
name = “tcp_retransmission_timeout_max”
oid = “TCP-MIB::tcpRtoMax.0”
My issue primarily resides in Chronograf. If I go to the Hosts page, it will show my hosts that are currently there, however when I click on them absolutely no data is accompanying it. I’m assuming this is an issue with tags, but I can not find a list to properly tag the inputs I am collecting. Is there a list for this?
Either way, I am a bit lost, and at this point I am wondering if Chronograf is the right piece of software for the job. Is Chronograf capable of properly visualizing per port data and static data from a Network Switch?
Sorry for any confusion. Thank you for any and all help.
Cheers,
Dan