more routeros grafana
This commit is contained in:
parent
4a4167e0b6
commit
75657d2423
11 changed files with 232 additions and 32 deletions
|
|
@ -158,13 +158,14 @@ for dashboard_id, monitored_node in enumerate(monitored_nodes, start=1):
|
|||
host=monitored_node.name,
|
||||
negative=query_config.get('negative', False),
|
||||
boolean_to_int=query_config.get('boolean_to_int', False),
|
||||
minimum=query_config.get('minimum', None),
|
||||
over=query_config.get('over', None),
|
||||
filters={
|
||||
'host': monitored_node.name,
|
||||
**query_config['filters'],
|
||||
},
|
||||
exists=query_config.get('exists', []),
|
||||
function=query_config.get('function', None),
|
||||
multiply=query_config.get('multiply', None),
|
||||
).strip()
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -44,6 +44,19 @@ def routeros_monitoring_telegraf_inputs(metadata):
|
|||
"name": "interface",
|
||||
"oid": "IF-MIB::ifTable",
|
||||
"field": [
|
||||
# 6: ethernetCsmacd (physischer Ethernet-Port)
|
||||
# 24: softwareLoopback
|
||||
# 53: propVirtual (oft VLANs bei MikroTik)
|
||||
# 131: tunnel
|
||||
# 135: l2vlan
|
||||
# 161: ieee8023adLag (Bonding/LACP)
|
||||
# 209: bridge
|
||||
{
|
||||
"name": "ifType",
|
||||
"oid": "IF-MIB::ifType",
|
||||
"is_tag": True,
|
||||
},
|
||||
|
||||
# Labels (optional but recommended)
|
||||
{
|
||||
"name": "ifName",
|
||||
|
|
@ -75,6 +88,22 @@ def routeros_monitoring_telegraf_inputs(metadata):
|
|||
"name": "out_ucast_pkts",
|
||||
"oid": "IF-MIB::ifHCOutUcastPkts",
|
||||
},
|
||||
{
|
||||
"name": "in_mcast_pkts",
|
||||
"oid": "IF-MIB::ifHCInMulticastPkts",
|
||||
},
|
||||
{
|
||||
"name": "in_bcast_pkts",
|
||||
"oid": "IF-MIB::ifHCInBroadcastPkts",
|
||||
},
|
||||
{
|
||||
"name": "out_mcast_pkts",
|
||||
"oid": "IF-MIB::ifHCOutMulticastPkts",
|
||||
},
|
||||
{
|
||||
"name": "out_bcast_pkts",
|
||||
"oid": "IF-MIB::ifHCOutBroadcastPkts",
|
||||
},
|
||||
|
||||
# Drops / Errors
|
||||
{
|
||||
|
|
@ -111,24 +140,24 @@ def routeros_monitoring_telegraf_inputs(metadata):
|
|||
"is_tag": True,
|
||||
},
|
||||
{
|
||||
"name": "poe_ifindex",
|
||||
"name": "ifindex",
|
||||
"oid": "MIKROTIK-MIB::mtxrPOEInterfaceIndex",
|
||||
"is_tag": True,
|
||||
},
|
||||
{
|
||||
"name": "poe_status",
|
||||
"name": "status",
|
||||
"oid": "MIKROTIK-MIB::mtxrPOEStatus",
|
||||
},
|
||||
{
|
||||
"name": "poe_voltage",
|
||||
"name": "voltage",
|
||||
"oid": "MIKROTIK-MIB::mtxrPOEVoltage",
|
||||
},
|
||||
{
|
||||
"name": "poe_current",
|
||||
"name": "current",
|
||||
"oid": "MIKROTIK-MIB::mtxrPOECurrent",
|
||||
},
|
||||
{
|
||||
"name": "poe_power",
|
||||
"name": "power",
|
||||
"oid": "MIKROTIK-MIB::mtxrPOEPower",
|
||||
},
|
||||
],
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@ from(bucket: "${bucket}")
|
|||
|> filter(fn: (r) => exists r["${exist}"]) // WTF
|
||||
% endfor
|
||||
|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) // aggregate early for best performance
|
||||
% if minimum:
|
||||
|> filter(fn: (r) => r._value > ${minimum})
|
||||
% if over is not None:
|
||||
|> filter(fn: (r) => r._value > ${over})
|
||||
% endif
|
||||
% if function == 'derivative':
|
||||
|> derivative(nonNegative: true)
|
||||
|
|
@ -19,5 +19,8 @@ from(bucket: "${bucket}")
|
|||
% endif
|
||||
% if negative:
|
||||
|> map(fn: (r) => ({r with _value: r._value * - 1.0}))
|
||||
% endif
|
||||
% if multiply is not None:
|
||||
|> map(fn: (r) => ({r with _value: r._value * ${multiply}}))
|
||||
% endif
|
||||
|> yield(name: "mean")
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
'cpu_usage',
|
||||
],
|
||||
},
|
||||
'minimum': 0.2,
|
||||
'over': 0.2,
|
||||
},
|
||||
},
|
||||
'unit': 'percent',
|
||||
|
|
@ -32,7 +32,7 @@
|
|||
'memory_rss',
|
||||
],
|
||||
},
|
||||
'minimum': 10*(10**6),
|
||||
'over': 10*(10**6),
|
||||
},
|
||||
},
|
||||
'unit': 'bytes',
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
],
|
||||
},
|
||||
'function': 'derivative',
|
||||
'minimum': 1024,
|
||||
'over': 1024,
|
||||
},
|
||||
},
|
||||
'unit': 'bytes',
|
||||
|
|
@ -34,7 +34,7 @@
|
|||
],
|
||||
},
|
||||
'function': 'derivative',
|
||||
'minimum': 1,
|
||||
'over': 1,
|
||||
},
|
||||
},
|
||||
'unit': 'bytes',
|
||||
|
|
|
|||
|
|
@ -1,15 +1,14 @@
|
|||
{
|
||||
'discards_in': {
|
||||
'stacked': False,
|
||||
'in': {
|
||||
'stacked': True,
|
||||
'queries': {
|
||||
'discards_in': {
|
||||
'in': {
|
||||
'filters': {
|
||||
'_measurement': 'interface',
|
||||
'_field': ['in_discards'],
|
||||
'operating_system': 'routeros',
|
||||
},
|
||||
'function': 'max',
|
||||
'derivative': True,
|
||||
'function': 'derivative',
|
||||
},
|
||||
},
|
||||
'min': 0,
|
||||
|
|
@ -20,17 +19,16 @@
|
|||
'displayMode': 'hidden',
|
||||
},
|
||||
},
|
||||
'discards_out': {
|
||||
'stacked': False,
|
||||
'out': {
|
||||
'stacked': True,
|
||||
'queries': {
|
||||
'discards_out': {
|
||||
'out': {
|
||||
'filters': {
|
||||
'_measurement': 'interface',
|
||||
'_field': ['out_discards'],
|
||||
'operating_system': 'routeros',
|
||||
},
|
||||
'function': 'max',
|
||||
'derivative': True,
|
||||
'function': 'derivative',
|
||||
},
|
||||
},
|
||||
'min': 0,
|
||||
|
|
|
|||
|
|
@ -1,15 +1,14 @@
|
|||
{
|
||||
'errors_in': {
|
||||
'stacked': False,
|
||||
'in': {
|
||||
'stacked': True,
|
||||
'queries': {
|
||||
'errors_in': {
|
||||
'in': {
|
||||
'filters': {
|
||||
'_measurement': 'interface',
|
||||
'_field': ['in_errors'],
|
||||
'operating_system': 'routeros',
|
||||
},
|
||||
'function': 'max',
|
||||
'derivative': True,
|
||||
'function': 'derivative',
|
||||
},
|
||||
},
|
||||
'min': 0,
|
||||
|
|
@ -20,17 +19,16 @@
|
|||
'displayMode': 'hidden',
|
||||
},
|
||||
},
|
||||
'errors_out': {
|
||||
'stacked': False,
|
||||
'out': {
|
||||
'stacked': True,
|
||||
'queries': {
|
||||
'errors_out': {
|
||||
'out': {
|
||||
'filters': {
|
||||
'_measurement': 'interface',
|
||||
'_field': ['out_errors'],
|
||||
'operating_system': 'routeros',
|
||||
},
|
||||
'function': 'max',
|
||||
'derivative': True,
|
||||
'function': 'derivative',
|
||||
},
|
||||
},
|
||||
'min': 0,
|
||||
|
|
|
|||
54
data/grafana/rows/routeros_packets.py
Normal file
54
data/grafana/rows/routeros_packets.py
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
'in': {
|
||||
'stacked': True,
|
||||
'queries': {
|
||||
'in': {
|
||||
'filters': {
|
||||
'_measurement': 'interface',
|
||||
'_field': [
|
||||
'in_ucast_pkts',
|
||||
'in_mcast_pkts',
|
||||
'in_bcast_pkts',
|
||||
],
|
||||
'ifType': [6],
|
||||
'operating_system': 'routeros',
|
||||
},
|
||||
'function': 'derivative',
|
||||
'over': 0,
|
||||
},
|
||||
},
|
||||
'min': 0,
|
||||
'unit': 'pps',
|
||||
'tooltip': 'multi',
|
||||
'display_name': '${__field.labels.ifName} - ${__field.labels.ifAlias}',
|
||||
'legend': {
|
||||
'displayMode': 'hidden',
|
||||
},
|
||||
},
|
||||
'out': {
|
||||
'stacked': True,
|
||||
'queries': {
|
||||
'out': {
|
||||
'filters': {
|
||||
'_measurement': 'interface',
|
||||
'_field': [
|
||||
'in_ucast_pkts',
|
||||
'in_mcast_pkts',
|
||||
'in_bcast_pkts',
|
||||
],
|
||||
'ifType': [6],
|
||||
'operating_system': 'routeros',
|
||||
},
|
||||
'function': 'derivative',
|
||||
'over': 0,
|
||||
},
|
||||
},
|
||||
'min': 0,
|
||||
'unit': 'pps',
|
||||
'tooltip': 'multi',
|
||||
'display_name': '${__field.labels.ifName} - ${__field.labels.ifAlias}',
|
||||
'legend': {
|
||||
'displayMode': 'hidden',
|
||||
},
|
||||
},
|
||||
}
|
||||
68
data/grafana/rows/routeros_poe.py
Normal file
68
data/grafana/rows/routeros_poe.py
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
'power': {
|
||||
'stacked': True,
|
||||
'queries': {
|
||||
'power': {
|
||||
'filters': {
|
||||
'_measurement': 'poe',
|
||||
'_field': ['power'],
|
||||
'operating_system': 'routeros',
|
||||
},
|
||||
'function': 'mean',
|
||||
'multiply': 0.1,
|
||||
'over': 0,
|
||||
},
|
||||
},
|
||||
'min': 0,
|
||||
'unit': 'watt',
|
||||
'tooltip': 'multi',
|
||||
'display_name': '${__field.labels.ifName} - ${__field.labels.ifAlias}',
|
||||
'legend': {
|
||||
'displayMode': 'hidden',
|
||||
},
|
||||
},
|
||||
'current': {
|
||||
'stacked': True,
|
||||
'queries': {
|
||||
'voltage': {
|
||||
'filters': {
|
||||
'_measurement': 'poe',
|
||||
'_field': ['current'],
|
||||
'operating_system': 'routeros',
|
||||
},
|
||||
'function': 'mean',
|
||||
'multiply': 0.1,
|
||||
'over': 0,
|
||||
},
|
||||
},
|
||||
'min': 0,
|
||||
'unit': 'ampere',
|
||||
'tooltip': 'multi',
|
||||
'display_name': '${__field.labels.ifName} - ${__field.labels.ifAlias}',
|
||||
'legend': {
|
||||
'displayMode': 'hidden',
|
||||
},
|
||||
},
|
||||
'voltage': {
|
||||
'stacked': False,
|
||||
'queries': {
|
||||
'voltage': {
|
||||
'filters': {
|
||||
'_measurement': 'poe',
|
||||
'_field': ['voltage'],
|
||||
'operating_system': 'routeros',
|
||||
},
|
||||
'function': 'mean',
|
||||
'multiply': 0.1,
|
||||
'over': 0,
|
||||
},
|
||||
},
|
||||
'min': 0,
|
||||
'unit': 'volt',
|
||||
'tooltip': 'multi',
|
||||
'display_name': '${__field.labels.ifName} - ${__field.labels.ifAlias}',
|
||||
'legend': {
|
||||
'displayMode': 'hidden',
|
||||
},
|
||||
},
|
||||
}
|
||||
46
data/grafana/rows/routeros_throughput.py
Normal file
46
data/grafana/rows/routeros_throughput.py
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
{
|
||||
'in': {
|
||||
'stacked': True,
|
||||
'queries': {
|
||||
'in': {
|
||||
'filters': {
|
||||
'_measurement': 'interface',
|
||||
'_field': ['in_octets'],
|
||||
'ifType': [6],
|
||||
'operating_system': 'routeros',
|
||||
},
|
||||
'function': 'derivative',
|
||||
'over': 0,
|
||||
},
|
||||
},
|
||||
'min': 0,
|
||||
'unit': 'bps',
|
||||
'tooltip': 'multi',
|
||||
'display_name': '${__field.labels.ifName} - ${__field.labels.ifAlias}',
|
||||
'legend': {
|
||||
'displayMode': 'hidden',
|
||||
},
|
||||
},
|
||||
'out': {
|
||||
'stacked': True,
|
||||
'queries': {
|
||||
'out': {
|
||||
'filters': {
|
||||
'_measurement': 'interface',
|
||||
'_field': ['out_octets'],
|
||||
'ifType': [6],
|
||||
'operating_system': 'routeros',
|
||||
},
|
||||
'function': 'derivative',
|
||||
'over': 0,
|
||||
},
|
||||
},
|
||||
'min': 0,
|
||||
'unit': 'bps',
|
||||
'tooltip': 'multi',
|
||||
'display_name': '${__field.labels.ifName} - ${__field.labels.ifAlias}',
|
||||
'legend': {
|
||||
'displayMode': 'hidden',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
@ -12,6 +12,9 @@
|
|||
'grafana_rows': {
|
||||
'routeros_discards',
|
||||
'routeros_errors',
|
||||
'routeros_throughput',
|
||||
'routeros_poe',
|
||||
'routeros_packets',
|
||||
},
|
||||
'routeros': {
|
||||
'gateway': '10.0.0.1',
|
||||
|
|
|
|||
Loading…
Reference in a new issue