inexio / thola Goto Github PK
View Code? Open in Web Editor NEWTool for monitoring network devices (mainly using SNMP) - monitoring check plugin
Home Page: https://thola.io
License: BSD 2-Clause "Simplified" License
Tool for monitoring network devices (mainly using SNMP) - monitoring check plugin
Home Page: https://thola.io
License: BSD 2-Clause "Simplified" License
Hello there,
I am looking to implement support for APC USVs/PDUs. Some of the devices still rely on SNMP v1. Hence, how can I set thola to use SNMP v1, if it is supported?
Many thanks.
Hi,
thank you for this project. Is SNMP v3 support provided? If so, how is it configured? I have not found anything about this in the documentation yet.
Hello ,
there is a littls bug in the release v0.3.2.
the binarys thola and thola-client are equal in the tarball of linux_64-bit.
Looks very. interesting, but where to configure auth information. (e.g. for. SNMP v1, V2 and V3 credentials)?
I am trying to query SNMPv3 switches with the current version v0.3.2, unfortunately I get the following error after recompiling and starting:
./thola identify 10.201.22.13 --snmp-version 3 --snmp-v3-level authNoPriv --snmp-v3-user XXXX --snmp-v3-auth-key XXXXXX --snmp-v3-auth-proto MD5 --loglevel=trace
11:37AM TRC initialized built-in database request_id=c3cr8p2hbmbbmsu7n7v0
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xa106e0]
goroutine 78 [running]:
github.com/inexio/thola/internal/network.NewSNMPv3Client(0xe716f8, 0xc0001ae2c0, 0x7ffdd5bec6ff, 0xc, 0xa1, 0x2, 0x0, 0xc00029d040, 0x0, 0xc00029d630, ...)
/root/thola/internal/network/snmp_client.go:211 +0xc0
github.com/inexio/thola/internal/network.createNewSNMPClientConcurrent(0xe716f8, 0xc0001ae2c0, 0xc00009b020, 0xc00009b080)
/root/thola/internal/network/snmp_client.go:166 +0x29c
created by github.com/inexio/thola/internal/network.NewSNMPClientByConnectionData
/root/thola/internal/network/snmp_client.go:108 +0x50e
can you add a network topology option based on IP scan, where devices should display based on toplogycal manner
Hello everyone,
Im very interested in using thola to replace our currently used bunch of plugins. So far the development of your plugin looks realy promising.
I tried to create a hardware-health monitoring for the HP ARUBA 5406R zl2. I have extended the procurve.yaml.
name: procurve
config:
components:
cpu: true
memory: true
hardware_health: true
match:
logical_operator: "OR"
conditions:
- type: SysObjectID
match_mode: startsWith
values:
- ".1.3.6.1.4.1.11.2.3.7.11"
identify:
properties:
vendor:
- detection: constant
value: "HP ProCurve"
model:
- detection: SysDescription
operators:
- type: modify
modify_method: regexSubmatch
regex: '^HP ([^,]+),'
format: "$1"
serial_number:
- detection: snmpget
oid: .1.3.6.1.2.1.47.1.1.1.1.11.1001
os_version:
- detection: SysDescription
operators:
- type: modify
modify_method: regexSubmatch
regex: 'revision ([^,]+),'
format: "$1"
components:
cpu:
load:
- detection: snmpget
oid: .1.3.6.1.4.1.11.2.14.11.5.1.9.6.1.0
memory:
usage:
- detection: snmpget
oid: .1.3.6.1.4.1.11.2.14.11.5.1.1.2.1.1.1.7.1
operators:
- type: modify
modify_method: divide
value:
detection: snmpget
oid: 1.3.6.1.4.1.11.2.14.11.5.1.1.2.1.1.1.5.1
operators:
- type: modify
modify_method: divide
value:
detection: constant
value: 100
hardware_health:
environment_monitor_state:
- detection: snmpget
oid: .1.3.6.1.4.1.11.2.36.1.1.5.1.1.3.1
fans:
detection: snmpwalk
values:
description:
oid: 1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.2
state:
oid: 1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.4
power_supply:
detection: snmpwalk
values:
description:
oid: .1.3.6.1.4.1.11.2.14.11.5.1.55.1.1.1.9
state:
oid: .1.3.6.1.4.1.11.2.14.11.5.1.55.1.1.1.2
In doing so I encountered several problems. When checking the switch I get an error message:
CRITICAL: environment monitor state is critical
error while adding performance data point (error: failed to add performance data point: a performance data point with this metric does already exist)
Here is the read:
HardwareHealthComponent:
EnvironmentMonitorState: 3
Fans: [6]
Description: 0
State: 5
Description: 0
State: 5
Description: 0
State: 5
Description: 0
State: 5
Description: 1
State: 5
Description: 2
State: 2
PowerSupply: [2]
Description: J9828A
State: 5
State: 1
In the source code I saw that for the enviroment monitor state a fixed value is expected.
As a workaround for this I added the following code:
operators:
- type: switch
switch_mode: regex
cases:
- case: "2|3"
operators:
- type: modify
modify_method: overwrite
value: "2"
- case: ".*"
operators:
- type: modify
modify_method: overwrite
value: "0"
Changing the yaml to:
name: procurve
config:
components:
cpu: true
memory: true
hardware_health: true
match:
logical_operator: "OR"
conditions:
- type: SysObjectID
match_mode: startsWith
values:
- ".1.3.6.1.4.1.11.2.3.7.11"
identify:
properties:
vendor:
- detection: constant
value: "HP ProCurve"
model:
- detection: SysDescription
operators:
- type: modify
modify_method: regexSubmatch
regex: '^HP ([^,]+),'
format: "$1"
serial_number:
- detection: snmpget
oid: .1.3.6.1.2.1.47.1.1.1.1.11.1001
os_version:
- detection: SysDescription
operators:
- type: modify
modify_method: regexSubmatch
regex: 'revision ([^,]+),'
format: "$1"
components:
cpu:
load:
- detection: snmpget
oid: .1.3.6.1.4.1.11.2.14.11.5.1.9.6.1.0
memory:
usage:
- detection: snmpget
oid: .1.3.6.1.4.1.11.2.14.11.5.1.1.2.1.1.1.7.1
operators:
- type: modify
modify_method: divide
value:
detection: snmpget
oid: 1.3.6.1.4.1.11.2.14.11.5.1.1.2.1.1.1.5.1
operators:
- type: modify
modify_method: divide
value:
detection: constant
value: 100
hardware_health:
environment_monitor_state:
- detection: snmpget
oid: .1.3.6.1.4.1.11.2.36.1.1.5.1.1.3.1
operators:
- type: switch
switch_mode: regex
cases:
- case: "2|3"
operators:
- type: modify
modify_method: overwrite
value: "2"
- case: ".*"
operators:
- type: modify
modify_method: overwrite
value: "0"
fans:
detection: snmpwalk
values:
description:
oid: 1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.2
state:
oid: 1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.4
power_supply:
detection: snmpwalk
values:
description:
oid: .1.3.6.1.4.1.11.2.14.11.5.1.55.1.1.1.9
state:
oid: .1.3.6.1.4.1.11.2.14.11.5.1.55.1.1.1.2
But now part of the error remains with:
error while adding performance data point (error: failed to add performance data point: a performance data point with this metric does already exist)
If I understand the source code correctly, it makes a data point for each value depending on the description. For the description I am currently reading out the fan type. Unfortunately, these are not unique.
There is an OID with a list with all descriptions for all components: 1.3.6.1.2.1.47.1.1.1.7
The problem is when I try to use this OID, it assigns the wrong descriptions.
My questions are:
state 2 only works for oracle-acme sbcs, this needs to be generalized once check hardware health is made for all device classes
. When are you planing to extend the hardware-health check to allow other devices?Here is a anonymized snmprec:
1.3.6.1.2.1.1.1.0|4x|4850204a3938353041205377697463682035343036527a6c322c207265766973696f6e204b422e31362e31302e303031302c20524f4d204b422e31362e30312e3030303620282f77732f73776275696c646d2f72656c5f616a616e74615f71616f66662f636f64652f6275696c642f626f6d2873776275696c646d5f72656c5f616a616e74615f71616f66665f72656c5f616a616e74612929
1.3.6.1.2.1.1.2.0|6|1.3.6.1.4.1.11.2.3.7.11.160
1.3.6.1.2.1.1.3.0|67|7803216
1.3.6.1.2.1.1.4.0|4x|41434d45
1.3.6.1.2.1.1.5.0|4x|536572766572
1.3.6.1.2.1.1.6.0|4x|656d707479
1.3.6.1.2.1.1.7.0|2|74
1.3.6.1.2.1.47.1.1.1.1.7.1|4|Chassis
1.3.6.1.2.1.47.1.1.1.1.7.2|4|Backplane
1.3.6.1.2.1.47.1.1.1.1.7.3|4x|46616e2054726179
1.3.6.1.2.1.47.1.1.1.1.7.4|4x|54656d70657261747572652073656e736f722070736575646f636f6e7461696e6572
1.3.6.1.2.1.47.1.1.1.1.7.5|4x|506f77657220737570706c79206261792070736575646f636f6e7461696e6572
1.3.6.1.2.1.47.1.1.1.1.7.6|4x|4d616e6167656d656e74206d6f64756c652070736575646f636f6e7461696e6572
1.3.6.1.2.1.47.1.1.1.1.7.9|4x|496e74657266616365206d6f64756c652070736575646f636f6e7461696e6572
1.3.6.1.2.1.47.1.1.1.1.7.11|4x|46616e2031
1.3.6.1.2.1.47.1.1.1.1.7.12|4x|46616e2032
1.3.6.1.2.1.47.1.1.1.1.7.13|4x|46616e2033
1.3.6.1.2.1.47.1.1.1.1.7.14|4x|46616e2034
1.3.6.1.2.1.47.1.1.1.1.7.15|4x|46616e2035
1.3.6.1.2.1.47.1.1.1.1.7.16|4x|46616e2036
1.3.6.1.2.1.47.1.1.1.1.7.25|4x|436861737369732054656d7065726174757265
1.3.6.1.2.1.47.1.1.1.1.7.26|4x|506f77657220537570706c79204261792031
1.3.6.1.2.1.47.1.1.1.1.7.27|4x|506f77657220537570706c79204261792032
1.3.6.1.2.1.47.1.1.1.1.7.30|4x|506f77657220537570706c792031
1.3.6.1.2.1.47.1.1.1.1.7.34|4x|537769746368204d616e6167656d656e74204d6f64756c6520536c6f74
1.3.6.1.2.1.47.1.1.1.1.7.35|4x|537769746368204d616e6167656d656e74204d6f64756c6520536c6f74
1.3.6.1.2.1.47.1.1.1.1.7.39|4x|536c6f742041
1.3.6.1.2.1.47.1.1.1.1.7.40|4x|536c6f742042
1.3.6.1.2.1.47.1.1.1.1.7.41|4x|536c6f742043
1.3.6.1.2.1.47.1.1.1.1.7.42|4x|536c6f742044
1.3.6.1.2.1.47.1.1.1.1.7.43|4x|536c6f742045
1.3.6.1.2.1.47.1.1.1.1.7.44|4x|536c6f742046
1.3.6.1.2.1.47.1.1.1.1.7.69|4x|537769746368204d616e6167656d656e74204d6f64756c65
1.3.6.1.2.1.47.1.1.1.1.7.74|4|A
1.3.6.1.2.1.47.1.1.1.1.7.75|4|B
1.3.6.1.2.1.47.1.1.1.1.7.76|4|C
1.3.6.1.2.1.47.1.1.1.1.7.77|4|D
1.3.6.1.2.1.47.1.1.1.1.7.78|4|E
1.3.6.1.2.1.47.1.1.1.1.7.79|4|F
1.3.6.1.2.1.47.1.1.1.1.7.104|4x|506f7274204131
1.3.6.1.2.1.47.1.1.1.1.7.105|4x|506f7274204132
1.3.6.1.2.1.47.1.1.1.1.7.106|4x|506f7274204133
1.3.6.1.2.1.47.1.1.1.1.7.107|4x|506f7274204134
1.3.6.1.2.1.47.1.1.1.1.7.108|4x|506f7274204135
1.3.6.1.2.1.47.1.1.1.1.7.109|4x|506f7274204136
1.3.6.1.2.1.47.1.1.1.1.7.110|4x|506f7274204137
1.3.6.1.2.1.47.1.1.1.1.7.111|4x|506f7274204138
1.3.6.1.2.1.47.1.1.1.1.7.112|4x|506f7274204139
1.3.6.1.2.1.47.1.1.1.1.7.113|4x|506f727420413130
1.3.6.1.2.1.47.1.1.1.1.7.114|4x|506f727420413131
1.3.6.1.2.1.47.1.1.1.1.7.115|4x|506f727420413132
1.3.6.1.2.1.47.1.1.1.1.7.116|4x|506f727420413133
1.3.6.1.2.1.47.1.1.1.1.7.117|4x|506f727420413134
1.3.6.1.2.1.47.1.1.1.1.7.118|4x|506f727420413135
1.3.6.1.2.1.47.1.1.1.1.7.119|4x|506f727420413136
1.3.6.1.2.1.47.1.1.1.1.7.120|4x|506f727420413137
1.3.6.1.2.1.47.1.1.1.1.7.121|4x|506f727420413138
1.3.6.1.2.1.47.1.1.1.1.7.122|4x|506f727420413139
1.3.6.1.2.1.47.1.1.1.1.7.123|4x|506f727420413230
1.3.6.1.2.1.47.1.1.1.1.7.124|4x|506f727420413231
1.3.6.1.2.1.47.1.1.1.1.7.125|4x|506f727420413232
1.3.6.1.2.1.47.1.1.1.1.7.136|4x|506f7274204231
1.3.6.1.2.1.47.1.1.1.1.7.137|4x|506f7274204232
1.3.6.1.2.1.47.1.1.1.1.7.138|4x|506f7274204233
1.3.6.1.2.1.47.1.1.1.1.7.139|4x|506f7274204234
1.3.6.1.2.1.47.1.1.1.1.7.140|4x|506f7274204235
1.3.6.1.2.1.47.1.1.1.1.7.141|4x|506f7274204236
1.3.6.1.2.1.47.1.1.1.1.7.142|4x|506f7274204237
1.3.6.1.2.1.47.1.1.1.1.7.143|4x|506f7274204238
1.3.6.1.2.1.47.1.1.1.1.7.144|4x|506f7274204239
1.3.6.1.2.1.47.1.1.1.1.7.145|4x|506f727420423130
1.3.6.1.2.1.47.1.1.1.1.7.146|4x|506f727420423131
1.3.6.1.2.1.47.1.1.1.1.7.147|4x|506f727420423132
1.3.6.1.2.1.47.1.1.1.1.7.148|4x|506f727420423133
1.3.6.1.2.1.47.1.1.1.1.7.149|4x|506f727420423134
1.3.6.1.2.1.47.1.1.1.1.7.150|4x|506f727420423135
1.3.6.1.2.1.47.1.1.1.1.7.151|4x|506f727420423136
1.3.6.1.2.1.47.1.1.1.1.7.152|4x|506f727420423137
1.3.6.1.2.1.47.1.1.1.1.7.153|4x|506f727420423138
1.3.6.1.2.1.47.1.1.1.1.7.154|4x|506f727420423139
1.3.6.1.2.1.47.1.1.1.1.7.155|4x|506f727420423230
1.3.6.1.2.1.47.1.1.1.1.7.156|4x|506f727420423231
1.3.6.1.2.1.47.1.1.1.1.7.157|4x|506f727420423232
1.3.6.1.2.1.47.1.1.1.1.7.168|4x|506f7274204331
1.3.6.1.2.1.47.1.1.1.1.7.169|4x|506f7274204332
1.3.6.1.2.1.47.1.1.1.1.7.170|4x|506f7274204333
1.3.6.1.2.1.47.1.1.1.1.7.171|4x|506f7274204334
1.3.6.1.2.1.47.1.1.1.1.7.172|4x|506f7274204335
1.3.6.1.2.1.47.1.1.1.1.7.173|4x|506f7274204336
1.3.6.1.2.1.47.1.1.1.1.7.174|4x|506f7274204337
1.3.6.1.2.1.47.1.1.1.1.7.175|4x|506f7274204338
1.3.6.1.2.1.47.1.1.1.1.7.176|4x|506f7274204339
1.3.6.1.2.1.47.1.1.1.1.7.177|4x|506f727420433130
1.3.6.1.2.1.47.1.1.1.1.7.178|4x|506f727420433131
1.3.6.1.2.1.47.1.1.1.1.7.179|4x|506f727420433132
1.3.6.1.2.1.47.1.1.1.1.7.180|4x|506f727420433133
1.3.6.1.2.1.47.1.1.1.1.7.181|4x|506f727420433134
1.3.6.1.2.1.47.1.1.1.1.7.182|4x|506f727420433135
1.3.6.1.2.1.47.1.1.1.1.7.183|4x|506f727420433136
1.3.6.1.2.1.47.1.1.1.1.7.184|4x|506f727420433137
1.3.6.1.2.1.47.1.1.1.1.7.185|4x|506f727420433138
1.3.6.1.2.1.47.1.1.1.1.7.186|4x|506f727420433139
1.3.6.1.2.1.47.1.1.1.1.7.187|4x|506f727420433230
1.3.6.1.2.1.47.1.1.1.1.7.188|4x|506f727420433231
1.3.6.1.2.1.47.1.1.1.1.7.189|4x|506f727420433232
1.3.6.1.2.1.47.1.1.1.1.7.190|4x|506f727420433233
1.3.6.1.2.1.47.1.1.1.1.7.191|4x|506f727420433234
1.3.6.1.2.1.47.1.1.1.1.7.200|4x|506f7274204431
1.3.6.1.2.1.47.1.1.1.1.7.201|4x|506f7274204432
1.3.6.1.2.1.47.1.1.1.1.7.202|4x|506f7274204433
1.3.6.1.2.1.47.1.1.1.1.7.203|4x|506f7274204434
1.3.6.1.2.1.47.1.1.1.1.7.204|4x|506f7274204435
1.3.6.1.2.1.47.1.1.1.1.7.205|4x|506f7274204436
1.3.6.1.2.1.47.1.1.1.1.7.206|4x|506f7274204437
1.3.6.1.2.1.47.1.1.1.1.7.207|4x|506f7274204438
1.3.6.1.2.1.47.1.1.1.1.7.208|4x|506f7274204439
1.3.6.1.2.1.47.1.1.1.1.7.209|4x|506f727420443130
1.3.6.1.2.1.47.1.1.1.1.7.210|4x|506f727420443131
1.3.6.1.2.1.47.1.1.1.1.7.211|4x|506f727420443132
1.3.6.1.2.1.47.1.1.1.1.7.212|4x|506f727420443133
1.3.6.1.2.1.47.1.1.1.1.7.213|4x|506f727420443134
1.3.6.1.2.1.47.1.1.1.1.7.214|4x|506f727420443135
1.3.6.1.2.1.47.1.1.1.1.7.215|4x|506f727420443136
1.3.6.1.2.1.47.1.1.1.1.7.216|4x|506f727420443137
1.3.6.1.2.1.47.1.1.1.1.7.217|4x|506f727420443138
1.3.6.1.2.1.47.1.1.1.1.7.218|4x|506f727420443139
1.3.6.1.2.1.47.1.1.1.1.7.219|4x|506f727420443230
1.3.6.1.2.1.47.1.1.1.1.7.220|4x|506f727420443231
1.3.6.1.2.1.47.1.1.1.1.7.221|4x|506f727420443232
1.3.6.1.2.1.47.1.1.1.1.7.222|4x|506f727420443233
1.3.6.1.2.1.47.1.1.1.1.7.223|4x|506f727420443234
1.3.6.1.2.1.47.1.1.1.1.7.232|4x|506f7274204531
1.3.6.1.2.1.47.1.1.1.1.7.233|4x|506f7274204532
1.3.6.1.2.1.47.1.1.1.1.7.234|4x|506f7274204533
1.3.6.1.2.1.47.1.1.1.1.7.235|4x|506f7274204534
1.3.6.1.2.1.47.1.1.1.1.7.236|4x|506f7274204535
1.3.6.1.2.1.47.1.1.1.1.7.237|4x|506f7274204536
1.3.6.1.2.1.47.1.1.1.1.7.238|4x|506f7274204537
1.3.6.1.2.1.47.1.1.1.1.7.239|4x|506f7274204538
1.3.6.1.2.1.47.1.1.1.1.7.264|4x|506f7274204631
1.3.6.1.2.1.47.1.1.1.1.7.265|4x|506f7274204632
1.3.6.1.2.1.47.1.1.1.1.7.266|4x|506f7274204633
1.3.6.1.2.1.47.1.1.1.1.7.267|4x|506f7274204634
1.3.6.1.2.1.47.1.1.1.1.7.268|4x|506f7274204635
1.3.6.1.2.1.47.1.1.1.1.7.269|4x|506f7274204636
1.3.6.1.2.1.47.1.1.1.1.7.270|4x|506f7274204637
1.3.6.1.2.1.47.1.1.1.1.7.271|4x|506f7274204638
1.3.6.1.4.1.11.2.14.11.5.1.1.2.1.1.1.5.1|2|687427584
1.3.6.1.4.1.11.2.14.11.5.1.1.2.1.1.1.7.1|2|189125984
1.3.6.1.4.1.11.2.14.11.5.1.9.6.1.0|2|69
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.2.1|2|0
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.2.2|2|0
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.2.3|2|0
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.2.4|2|0
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.2.5|2|1
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.2.6|2|2
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.3.1|2|0
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.3.2|2|0
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.3.3|2|0
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.3.4|2|0
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.3.5|2|4
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.3.6|2|4
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.4.1|2|5
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.4.2|2|5
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.4.3|2|5
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.4.4|2|5
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.4.5|2|5
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.4.6|2|2
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.5.1|2|0
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.5.2|2|0
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.5.3|2|0
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.5.4|2|0
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.5.5|2|0
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.5.6|2|0
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.6.1|65|0
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.6.2|65|0
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.6.3|65|0
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.6.4|65|0
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.6.5|65|0
1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.6.6|65|0
1.3.6.1.4.1.11.2.14.11.5.1.55.1.1.1.2.1|2|5
1.3.6.1.4.1.11.2.14.11.5.1.55.1.1.1.2.2|2|1
1.3.6.1.4.1.11.2.14.11.5.1.55.1.1.1.3.1|65|0
1.3.6.1.4.1.11.2.14.11.5.1.55.1.1.1.3.2|65|0
1.3.6.1.4.1.11.2.14.11.5.1.55.1.1.1.4.1|2|29
1.3.6.1.4.1.11.2.14.11.5.1.55.1.1.1.4.2|2|0
1.3.6.1.4.1.11.2.14.11.5.1.55.1.1.1.5.1|4x|414320313230562f32343056
1.3.6.1.4.1.11.2.14.11.5.1.55.1.1.1.5.2|4x|2d2d202d2d2d2d2d2d2d2d2d
1.3.6.1.4.1.11.2.14.11.5.1.55.1.1.1.6.1|2|190
1.3.6.1.4.1.11.2.14.11.5.1.55.1.1.1.6.2|2|0
1.3.6.1.4.1.11.2.14.11.5.1.55.1.1.1.7.1|2|700
1.3.6.1.4.1.11.2.14.11.5.1.55.1.1.1.7.2|2|0
1.3.6.1.4.1.11.2.14.11.5.1.55.1.1.1.8.1|65|82308
1.3.6.1.4.1.11.2.14.11.5.1.55.1.1.1.8.2|65|0
1.3.6.1.4.1.11.2.14.11.5.1.55.1.1.1.9.1|4|J9828A
1.3.6.1.4.1.11.2.14.11.5.1.55.1.1.1.9.2|4|
1.3.6.1.4.1.11.2.36.1.1.5.1.1.3.1|2|3
And a interpretation of the variables from a MIB:
hpHttpMgDeviceHealth OBJECT-TYPE
SYNTAX INTEGER {
unknown (1),
unused (2),
ok (3), -- available for meaningful work
warning (4), -- something needs attention
critical (5), -- something has failed
nonrecoverable (6)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Overall health of the device. The goal of this object
is to be the single poll point to check the status of the
device."
::= { hpHttpMgDeviceEntry 3 }
HpicfDcFanState ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION "An enumerated value which provides an indication of the
fan state."
SYNTAX INTEGER {
failed(0),
removed(1),
off(2),
underspeed(3),
overspeed(4),
ok(5),
maxstate(6)
}
HpicfDcPsState ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION "An enumerated value which provides the state of the
switch power supply entity."
SYNTAX INTEGER {
psNotPresent(1),
psNotPlugged(2),
psPowered(3),
psFailed(4),
psPermFailure(5),
psMax(6),
psAuxFailure(7),
psNotPowered(8),
psAuxNotPowered(9)
}
Best regards,
Sebastian Grallert
Hey all! I'm trying to get the interface metrics on my Cisco ASA and it keeps throwing this error:
UNKNOWN: error while adding performance data (error: failed to add performance data point: given performance data point is not valid: metric contains invalid character)
I don't know if it helps, but read interfaces doesn't have the same problem.
Thanks!
I would like to read the reading of temperature sensors with Thola. Many devices support specific OIDs for temperature sensors.
Alas the correspondig component ist missing in Thola.
Actually Im getting this error of Connection using Thola to identify a device.
[root@vm-centos8 thola]# ./thola identify vm-centos8
Error: cannot create any connection to the device
I followed the official guide and also I have Golang 1.16 already installed in my system.
go version go1.16.6 linux/amd64
My OS version is CentOS 8:
NAME="CentOS Linux"
VERSION="8"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"
Hello there ๐
I found thola and it looks like a interesting and promising project. Unfortunately the last release was two years ago and the thola.io website is offline.
Is this project still under active development?
As an Example let's say you have an output for TenGigabitEthernet1/1 , TenGigabitEthernet1/2 and TenGigabitEthernet1/11
thola check interface-metrics 127.0.0.1 --snmp-community public --ifDescr-filter 'TenGigabitEthernet1/1' --ifDescr-filter 'TenGigabitEthernet1/10'
And you only want to show the Result of TenGigabitEthernet1/11 and TenGigabitEthernet1/2 then TenGigabitEthernet1/11 will be omitted by the regex of --ifDescr-filter 'TenGigabitEthernet1/1'
and will not be in the final Result ..
If you have questions you can get in contact with me for further details and explanations.
Hi! i am trying to write my own class. Is it possible to change the loglevel to read the received value? In tshark I see the snmp response, but thola can't do anything with it. Currently I use loglevel=trace
It would be great if it would be possible to build a 32 bit version of thola to run it on some older devices.
Currently the build fails with v0.2.3:
env GOARCH=386 /usr/local/go/bin/go build
# github.com/dgraph-io/badger/v2
../../go/pkg/mod/github.com/dgraph-io/badger/[email protected]/value.go:50:5: constant 4294967295 overflows int
Is it possible to add an uptime check for SNMP devices?
THX for releasing this tool!
We have a tool, that "speaks" SNMP-protocol on a different port to not interfere with standard SNMP-daemon on the same machine. It would be great to query and monitor this tool via thola.
Please add a flag for non-standard SNMP port (<> 161).
Currently, perfdata strings do not contain the warning and critical value - e.g. on CPU or Memory Usage checks:
./thola --ip 1.2.3.4 --snmp-community public check memory-usage --critical 50
CRITICAL: memory usage is 55% | 'memory_usage'=55%;;;;
To meet the monitoring plugins development guidelines, perfdata strings should be formatted like below:
label=value[uom];[warn];[crit];[min];[max]
Hi there,
great work so far. From the docs i can't make out how to integrate for instance an HP J9728A 2920-48G switch model.
I assume that no definition exists for this model, but i'm not sure about that either. When trying to identify the switch i just get:
thola identify IP
Device:
Class: generic
Where can i define the folder where the YAML files are situated? And if HP Procurves are not supported yet, what ist the best way to add them and to extend thola?
I try to build thola.
After git clone https://github.com/inexio/thola.git
and cd thola
i got an error:
> go build
build github.com/inexio/thola: cannot find module for path embed
Hi,
I tried to enhance a small part of thola and to run the tests afterwards where this error message greeted me.
ok github.com/inexio/thola/internal/parser 0.003s
? github.com/inexio/thola/internal/request [no test files]
? github.com/inexio/thola/internal/tholaerr [no test files]
? github.com/inexio/thola/internal/utility [no test files]
? github.com/inexio/thola/internal/value [no test files]
=== RUN TestIntegration
[1/3] Building up test environment...
integration_test.go:124:
Error Trace: integration_test.go:124
Error: Received unexpected error:
timeout exceeded
Test: TestIntegration
Messages: an error occurred while waiting for the test devices being ready
--- FAIL: TestIntegration (195.11s)
FAIL
FAIL github.com/inexio/thola/test 195.110s
? github.com/inexio/thola/test/create_testdata [no test files]
FAIL
Am I doing something wrong?
Hey! First thing first, thanks for thola
!
% ./thola --version
v0.3.5
I would like to set my SNMPv3 parameters in the config.yaml
file, I tried:
device:
snmp-communities:
- mycommunity
snmp-versions:
- 2c
- 3
snmp-v3-auth-key: <redacted>
snmp-v3-auth-proto: MD5
snmp-v3-level: "authPriv"
snmp-v3-priv-key: <redacted>
snmp-v3-priv-proto: DES
snmp-v3-user: <redacted>
but it didn't work: Error: invalid request: no SNMP v3 level provided
.
As I'm not very familiar with Golang code, I didn't succeed to spot where the config parsing happen...
Is what I'm trying to do possible? Thanks!
Hi,
I'm currently write a new device class, I don't know why --snmp-v3-context is mandatory. Is it possible to have this parameter as an option?
I removed this option inside your code for a test and now thola is able to talk with these devices over SNMPv3.
Thanks a lot for you work!
Maybe i'm incapable but i really tried to use the
thola check interface-metrics 127.0.0.1 --snmp-community public --ifDescr-filter 'interface TenGigabitEthernet5/16'
or
thola check interface-metrics 127.0.0.1 --snmp-community public --ifName-filter 'Te5/16'
But i still receive all the other interfaces from the output as hard as i try to filter down to one interface .. maybe i use it wrong is it possible to extend the filter usage with more examples ?
thx in advance
Thola looks very promising to replace an ancient PHP tool running in our infrastructure. To fully replace it, we would need VLAN information in the "read interfaces" cmd-call (and maybe some other information as well).
Are there plans/code/ideas on how to implement / add VLAN information? I have not found any VLAN reference in the code besides the IfType, so im guessing it has not been considered at all just yet?
Im might try adding that for Juniper, unless there is already something planned / implemented?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.