QNAP Dashboard - Telegraf SNMP - InfluxDB
Grafana Dashboard for QNAP Devices, collecting SNMP using Telegraf, and InfluxDB
QNAP Dashboard using SNMP v3. To collect data, I’ve used the always helpful telegraf SNMP plugin https://github.com/influxdata/telegraf/blob/master/plugins/inputs/snmp/README.md use the collector instructions from above ^
I’ve added all the variables to the Dashboard. The Grafana dashboard it should work out of the box; perhaps if you do not have NVMe disks, the #1 and #2 will be wrongly tagged, fix that widget if required.
It will work with SNMP v1/v2 as well, but I totally do not recommend it, stay safe and secure.
Collector config:
# List of agents to poll
agents = [ "YOURQNAPIP" ]
# Polling interval
interval = "30s"
# Timeout for each SNMP query.
timeout = "30s"
# Number of retries to attempt within timeout.
retries = 3
# The GETBULK max-repetitions parameter
max_repetitions = 10
# Measurement name
name = "snmp.QNAP"
#SNMPv3
version = 3
sec_name = "YOURUSERNAME"
auth_protocol = "SHA"
auth_password = "YOURPASS"
sec_level = "authPriv"
priv_protocol = "DES"
priv_password = "YOUROTHERPASS"
##
## System Details & Metrics
##
# CPU
[[inputs.snmp.field]]
name = "name"
oid = "NAS-MIB::enclosureName.1"
is_tag = true
[[inputs.snmp.table]]
name = "snmp.QNAP.cpuTable"
oid = "NAS-MIB::cpuTable"
[[inputs.snmp.table.field]]
name = "cpuIndex"
oid = "NAS-MIB::cpuIndex"
is_tag = true
[[inputs.snmp.table.field]]
name = "cpuID"
oid = "NAS-MIB::cpuID"
is_tag = true
[[inputs.snmp.table.field]]
name = "cpuUsage"
oid = "NAS-MIB::cpuUsage"
# System
# Enclosures
[[inputs.snmp.table]]
name = "snmp.QNAP.systemTable"
# Memory
[[inputs.snmp.table.field]]
name = "systemTotalMemEX"
oid = "NAS-MIB::systemTotalMemEX"
[[inputs.snmp.table.field]]
name = "systemFreeMemEX"
oid = "NAS-MIB::systemFreeMemEX"
# System temp
[[inputs.snmp.table.field]]
name = "cpu-TemperatureEX"
oid = "NAS-MIB::cpu-TemperatureEX"
[[inputs.snmp.table.field]]
name = "systemTemperatureEX"
oid = "NAS-MIB::systemTemperatureEX"
# Uptime
[[inputs.snmp.table.field]]
name = "systemUptime"
oid = "NAS-MIB::systemUptimeEX"
# Uptime
[[inputs.snmp.table.field]]
name = "systemCPU-UsageEX"
oid = "NAS-MIB::systemCPU-UsageEX"
# Enclosures
[[inputs.snmp.table]]
name = "snmp.QNAP.enclosureTable"
oid = "NAS-MIB::enclosureTable"
# Memory
[[inputs.snmp.table.field]]
name = "enclosureID"
oid = "NAS-MIB::enclosureID"
is_tag = true
[[inputs.snmp.table.field]]
name = "enclosureModel"
oid = "NAS-MIB::enclosureModel"
is_tag = true
[[inputs.snmp.table.field]]
name = "enclosureName"
oid = "NAS-MIB::enclosureName"
is_tag = true
[[inputs.snmp.table.field]]
name = "enclosureSystemTemp"
oid = "NAS-MIB::enclosureSystemTemp"
# Fan
[[inputs.snmp.table]]
name = "snmp.QNAP.systemFanTableEx"
oid = "NAS-MIB::systemFanTableEx"
[[inputs.snmp.table.field]]
name = "sysFanIndexEX"
oid = "NAS-MIB::sysFanIndexEX"
is_tag = true
[[inputs.snmp.table.field]]
name = "sysFanDescrEX"
oid = "NAS-MIB::sysFanDescrEX"
is_tag = true
[[inputs.snmp.table.field]]
name = "sysFanSpeedEX"
oid = "NAS-MIB::sysFanSpeedEX"
# Power
[[inputs.snmp.table]]
name = "snmp.QNAP.systemPowerTable"
oid = "NAS-MIB::systemPowerTable"
[[inputs.snmp.table.field]]
name = "systemPowerIndex"
oid = "NAS-MIB::systemPowerIndex"
is_tag = true
[[inputs.snmp.table.field]]
name = "systemPowerID"
oid = "NAS-MIB::systemPowerID"
is_tag = true
[[inputs.snmp.table.field]]
name = "systemPowerEnclosureID"
oid = "NAS-MIB::systemPowerEnclosureID"
is_tag = true
[[inputs.snmp.table.field]]
name = "systemPowerStatus"
oid = "NAS-MIB::systemPowerStatus"
[[inputs.snmp.table.field]]
name = "systemPowerFanSpeed"
oid = "NAS-MIB::systemPowerFanSpeed"
[[inputs.snmp.table.field]]
name = "systemPowerFanSpeed"
oid = "NAS-MIB::systemPowerFanSpeed"
[[inputs.snmp.table.field]]
name = "systemPowerTemp"
oid = "NAS-MIB::systemPowerTemp"
# Interfaces
[[inputs.snmp.table]]
name = "snmp.QNAP.systemIfTableEx"
oid = "NAS-MIB::systemIfTableEx"
[[inputs.snmp.table.field]]
name = "ifIndexEX"
oid = "NAS-MIB::ifIndexEX"
is_tag = true
[[inputs.snmp.table.field]]
name = "ifDescrEX"
oid = "NAS-MIB::ifDescrEX"
is_tag = true
[[inputs.snmp.table.field]]
name = "ifPacketsReceivedEX"
oid = "NAS-MIB::ifPacketsReceivedEX"
[[inputs.snmp.table.field]]
name = "ifPacketsSentEX"
oid = "NAS-MIB::ifPacketsSentEX"
[[inputs.snmp.table.field]]
name = "ifErrorPacketsEX"
oid = "NAS-MIB::ifErrorPacketsEX"
# Interfaces
[[inputs.snmp.table]]
name = "snmp.QNAP.ifXTable"
oid = "IF-MIB::ifXTable"
[[inputs.snmp.table.field]]
name = "ifName"
oid = "IF-MIB::ifName"
is_tag = true
[[inputs.snmp.table.field]]
name = "ifHCInOctets"
oid = "IF-MIB::ifHCInOctets"
[[inputs.snmp.table.field]]
name = "ifHCOutOctets"
oid = "IF-MIB::ifHCOutOctets"
##
## Disk Details & Metrics
##
# Disk
[[inputs.snmp.table]]
name = "snmp.QNAP.diskTable"
oid = "NAS-MIB::diskTable"
[[inputs.snmp.table.field]]
name = "diskIndex"
oid = "NAS-MIB::diskIndex"
is_tag = true
[[inputs.snmp.table.field]]
name = "diskID"
oid = "NAS-MIB::diskID"
is_tag = true
[[inputs.snmp.table.field]]
name = "diskEnclosureID"
oid = "NAS-MIB::diskEnclosureID"
is_tag = true
[[inputs.snmp.table.field]]
name = "diskSummary"
oid = "NAS-MIB::diskSummary"
[[inputs.snmp.table.field]]
name = "diskTemperture"
oid = "NAS-MIB::diskTemperture"
[[inputs.snmp.table.field]]
name = "diskSmartInfo"
oid = "NAS-MIB::diskSmartInfo"
[[inputs.snmp.table.field]]
name = "diskGlobalSpare"
oid = "NAS-MIB::diskGlobalSpare"
[[inputs.snmp.table.field]]
name = "diskModel"
oid = "NAS-MIB::diskModel"
is_tag = true
[[inputs.snmp.table.field]]
name = "diskCapacity"
oid = "NAS-MIB::diskCapacity"
is_tag = true
##
## Volume Details & Metrics
##
# Volumes
[[inputs.snmp.table]]
name = "snmp.QNAP.systemVolumeTableEx"
oid = "NAS-MIB::systemVolumeTableEx"
[[inputs.snmp.table.field]]
name = "sysVolumeIndexEX"
oid = "NAS-MIB::sysVolumeIndexEX"
is_tag = true
[[inputs.snmp.table.field]]
name = "sysVolumeDescrEX"
oid = "NAS-MIB::sysVolumeDescrEX"
is_tag = true
[[inputs.snmp.table.field]]
name = "sysVolumeFSEX"
oid = "NAS-MIB::sysVolumeFSEX"
is_tag = true
[[inputs.snmp.table.field]]
name = "sysVolumeTotalSizeEX"
oid = "NAS-MIB::sysVolumeTotalSize"
[[inputs.snmp.table.field]]
name = "sysVolumeFreeSize"
oid = "NAS-MIB::sysVolumeFreeSizeEX"
[[inputs.snmp.table.field]]
name = "sysVolumeStatus"
oid = "NAS-MIB::sysVolumeStatusEX"
##
## Disk Performance Details & Metrics
##
# Disk Performance
[[inputs.snmp.table]]
name = "snmp.QNAP.diskPerformanceTable"
oid = "NAS-MIB::diskPerformanceTable"
[[inputs.snmp.table.field]]
name = "diskPerformanceIndex"
oid = "NAS-MIB::diskPerformanceIndex"
is_tag = true
[[inputs.snmp.table.field]]
name = "blvID"
oid = "NAS-MIB::blvID"
is_tag = true
[[inputs.snmp.table.field]]
name = "iops"
oid = "NAS-MIB::iops"
[[inputs.snmp.table.field]]
name = "latency"
oid = "NAS-MIB::latency"
# JBOD
[[inputs.snmp.table]]
name = "snmp.QNAP.jBODHdTable1"
oid = "NAS-MIB::jBODHdTable1"
[[inputs.snmp.table.field]]
name = "jBODHdIndex1"
oid = "NAS-MIB::jBODHdIndex1"
is_tag = true
[[inputs.snmp.table.field]]
name = "jBODHdDescr1"
oid = "NAS-MIB::jBODHdDescr1"
is_tag = true
[[inputs.snmp.table.field]]
name = "jBODHdTemperature1"
oid = "NAS-MIB::sysVolumeFSEX"
[[inputs.snmp.table.field]]
name = "jBODHdStatus1"
oid = "NAS-MIB::jBODHdStatus1"
[[inputs.snmp.table.field]]
name = "jBODHdModel1"
oid = "NAS-MIB::jBODHdModel1"
is_tag = true
[[inputs.snmp.table.field]]
name = "jBODHdCapacity1 "
oid = "NAS-MIB::jBODHdCapacity1"
[[inputs.snmp.table.field]]
name = "jBODHdSmartInfo1"
oid = "NAS-MIB::jBODHdSmartInfo1"```
Data source config
Collector config:
Upload an updated version of an exported dashboard.json file from Grafana
Revision | Description | Created | |
---|---|---|---|
Download |
InfluxDB
Easily monitor InfluxDB, an open source time series database, with Grafana Cloud's out-of-the-box monitoring solution.
Learn more