* Add WTI-POWER-MIB for support WTI VMR, NPS, RPC and NBB Series Power Products - available from https://ftp.wti.com/download/files/WTI-POWER-MIB.txt
* Created wti-power os definition together with discovery files.
* Add test data for wti-power os, created from available VMR-8HD20 device.
* Fixed typo in num_oid
* Change os in definition, to match filename
* Update apc powernet mib
* add definitions for APC ePDUs
* add test data
* add descr
* fix os definitions
* add json data
* matcj test data
* fix test data
Co-authored-by: root@webu.coop <root@webu.coop>
Co-authored-by: ccarrez <ccarrez@ccarrez.webu.lan>
* Added HA state support
* Adding tests for Checkpoint 15600
* Removing trailing white-space in gaia.yaml
* Updating old gaia config files
* Updating the non-variant json of gaia
* Updating git repo directly from a librenms docker container
* Overwriting the original gaia snmprec file
* Once more, with database. Praying to the god of unit tests.
* Removed the new tests
* Trying to re-add 15600
* Re-trying with a fresh snmprec file
* Trying new snmp rec file for 15600
* Remove ospf data
* Update gaia.yaml
Added single quotes
* Update gaia.yaml
* Updating the test after the sensor name change
Co-authored-by: Patrik Jonsson <patrik.jonsson@gmail.com>
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Update Mikrotik MIBs to latest revision 202010080000Z
* Fix of Mikrotik SwOS definition - missing items removal. Added SwOS discovery file to add supported items.
* Add test data generated from CSS106-1G-4P-1S
* Fix of wrongly mixed old and new test data. Fresh export.
* Change raspberry_pi_sensors state
I think it is great that the codecs of a Raspberry are queried, but a non-existent codec license is not a critical sensor value. What do you think?
* Update linux_raspberrypi.json
* Update linux_raspberrypi.json
Co-authored-by: Tony Murray <murraytony@gmail.com>
* new device os Raisecom Router OS (ROAP)
tried to add that as existing raisecom os but ended in new os, because they use a
new MIB base for Router OS and newer devices.
* add sensors
* Added tv_signal sensor class (TV signal in dBmV (decibells to millivolt))
* Added OS motorola-cm (Motorolla DOCSIS Cable Modem)
* Added OS thomson-cm (Thomson DOCSIS Cable Modem)
* Update from PDU_mib_244 to PDU_mib_262
* Add a new sysObjectID for the OS detection of schleifenbauer devices
* Update snmpsim data, no changes in save-test-data.php output.
* Revert "Update snmpsim data, no changes in save-test-data.php output."
This reverts commit ac7c0d5610.
* snmpsim + test data for OS schleifenbauer variant dpm27e
* Alcatel-Lucent support part2
* fixing low temp for aos6, mem for aos6 and linkagg for both
* style for aos6.yaml
* style2 for aos6.yaml
* fix style
* fix style
* add test data
* Refactor test for GitHub Actions
* Checkout pull request HEAD commit instead of merge commit
* Fetch changed files from API instead of git
* HEAD commit
* Origin
* Fix env
* force full unit checks on gh actions change
* Fix DB conn
* Update test.yml
* Also set port in PDO connection
* Exit with correct exit code
* Update CiHelper.php
* Update test.yml
* Update CiHelper.php
* Update Proc.php
* Cleanups
Remove extra unit test run on php 7.4
Add names that will hopefully show in github.
Remove redundant DB env variables.
* Fix
Shorter names
and DB_TEST env is required
* Change command for information purposes
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
Co-authored-by: Tony Murray <murraytony@gmail.com>
Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
* Change mempools summary graph to show values
put swap on the negative axis
fix swap classification
* fix whitespace
* fix incorrect class
fix rrd rename logic
* Style
* missed one
* observe with the correct class
* Change mempools summary graph to show values
put swap on the negative axis
fix swap classification
* fix whitespace
* fix incorrect class
fix rrd rename logic
* Style
* missed one
* mempools to modern module
quick hacky hrstorage port
* port ucd-snmp-mib to Mempools
* Populate DB for ucd
Prep for yaml
* initial yaml attempt
* more complex conversions
fixes to YamlDiscovery, make leading $ optional and allow mib::oid format
* walk full tables and skip values
normalize percentages above 100
* handle precent only ones (specify total as 100)
* Move default polling out of YamlMempoolsDiscovery
* fixes
* Update test data hrstorage should be correct.
* perc_warn for hrstorage
* Host Resources, record buffer, cached, and shared
* Host Resources is always better, don't do both HR and UCD
* fix unix, include warning levels
* variable size
* consolidate skip_values
* define mempools schema
* number instead of integer
* more schema refactor
* one more skip_values reference
* throw error for invalid oid translation
aos6
* a* and Cisco
* updated test data
* update almost all hrstorage data files
* b*
* c* with test data
use standard cache for hrStorage
* use cache for storage module too
* hand bsnmp properly
* bdcom
* exclude total oid from yaml so it is not polled
May add a way to ignore this behavior and poll it, but I don't know if that is needed.
* automatically handle percent only values
* ciscowlc
* only poll used or free if we have used, free, and total.
* fix skipping
* the dlinkoning
fix find value when value "name" is numeric
* support numeric oids
* dnos/ftos attempt
* I guess we can't filter on total > 0
* edgecos
* e*
* f WIP
* f*
* gwd (aka g*)
* h* + procurve
* i*
* j*
* m*
* support 0% used memory (however unlikely)
* n*
* CISCO-PROCESS-MIB memory, share cache with processors module
* ignore mempools with invalid total
* p*
* quanta
* r*
fix raisecom mibs terribly broken
* s-z
* style fixes
* Move VRP back to PHP and make it actually work
* fix zynos
* update schema
* Update Cisco processor data for description bug fixes
* fix comware processors
* comware mempools with memory size
default precision to 1
* sophos-xg updated data
* hrstorage use ram size for buffers, cache, and shared
* Show memory available instead of free in device overview
* UCD, use same rrd format, store available instead of free in the db.
* Calculate availability for HOST-RESOURCES-MIB
* Convert UCD to standard polling
* rename old rrd files
* initial graph work
* graph WIP
* Graph looking decent
* Graph looking decent for hr
* remove old ucd_graph code
* handle availability mempool
more graph cleanup
* color adjustments
* remove accidental free calculation
* Update test data and fix corner cases
* fis pfsense
* update schema
* add default value for mempool_class
* fix whitespace
* update schema
* update schema correctly
* one more time
* fortigate_1500d-sensors missing oids
* Update docs.
* fix indent
* add implements MempoolsDiscovery explicitly to OS
* remove ucd_memory graph references
remove unused device_memory graph
* remove unused functions
* set devices with mempools to rediscover to prevent/minimize gaps
* use a subquery
* add overview graph
* port health mempools table
* Update device mempool
* only show overview if multiple
* Don't override user set warn percentages in discovery
* fix missed usage
* fix style
* Safety check to not rename rrd files incorrectly if migration has not been run.
* Fix overview percent bar and represent available and used on the bar
* missed an item to convert to mempool_class
* percent on the wrong side
* Add support new os SNR-ERD
mib files
* Add support new os SNR-ERD
discovery os
* Add support new os SNR-ERD
support sensors
* tests files
* tests json
* New device named bti800
Support new device for model bti sa-805
* Create bti800.yaml
* Create BTI8xx-MIB
* Create BTI8xx-SYSTEM-MIB
* Create BTI8xx-TC-MIB
* Create BTI8xx-INTERFACE-MIB
* Create BTI8xx-SFP-MIB
* Create bti800.inc.php
* Create bti800.inc.php
* Create bti800.inc.php
* Create bti800.snmprec
* Create bti800.json
* OS icon for BTI800
* Update bti800.yaml
Change mib folder name 'bti800' to 'bti'.
* Rename mibs/bti800/BTI8xx-MIB to mibs/bti/BTI8xx-MIB
Change directory named 'bti800' to 'bti'.
* Rename mibs/bti800/BTI8xx-INTERFACE-MIB to mibs/bti/BTI8xx-INTERFACE-MIB
Change directory named from 'bti800' to 'bti'
* Rename mibs/bti800/BTI8xx-SFP-MIB to mibs/bti/BTI8xx-SFP-MIB
Change directory named 'bti800' to 'bti'.
* Rename mibs/bti800/BTI8xx-SYSTEM-MIB to mibs/bti/BTI8xx-SYSTEM-MIB
Change directory named 'bti800' to 'bti'.
* Rename mibs/bti800/BTI8xx-TC-MIB to mibs/bti/BTI8xx-TC-MIB
Change directory named 'bti800' to 'bti'.
* Create bti800.yaml
Added system temperature and transceiver temperature for BTI800.
* Delete bti800.inc.php
System temperature and transceiver temperature code convert to yaml file locate at /includes/definitions/discovery/bti800.yaml
* Update bti800.inc.php
Add missing code at line 20.
* Update bti800.inc.php
* Update bti800.yaml
* Delete bti.svg
* Replace bti.svg to bti.png
* Update bti800.snmprec
* Update bti800.json
* Update bti800.json
* Update bti800.json
* Update bti800.yaml
* Update bti800.inc.php
Change call for each current Tx and Rx value by using pre_cache() function instead using snmp_get() function for each value to return.
* Rittal CMC III: Add device support for PU and PU Compact
* Rittal CMC III: Readd accidentally removed sysObjectID
* Rittal CMC III: Some small fixes
* Rittal CMC III: Use device serial number instead of the internal device id for state index naming
- version, hardware and serial is now read via yaml
- update test files
* Rittal CMC III: Check if the serial number is available
* Rittal CMC III: Update test data
* Rittal CMC III: Update unset
* Rittal CMC III: Remove space in yaml
* Adding Fortigate HA checks
* Fixed issues the linter had
* Moving sync checks to the poller since standalone units was marked as unsynchronized
* Whitespace lint corrections
* More whitespace linting fixes
* Removing haState since it only showed the state of one device in the cluster.
* Adding a third state fo sync where it will show a warning if a device that is part of a cluster does not have a peer
* Updating snmp test data for fortigate 1500d
* Changing numerical oids to names
* Restoring the original 1500d json file
* Adding cleaned test data
* Removing tags to see if that makes Travis happier
* Removing duplicate rows in SNMP data
* Take this Travis!
* Pretty please Travis?
* Fourth time's a charm?
* add OspfTos model to include ospfIfMetricEntry data (ospf interface cost)
* remove WIP comment
* add new model and db migration
* update OspfTos relationship to OspfPort and correct cleanup call
* add "Cost" to device\routing\ospf web UI interface
* updated db-schema test unit
* updated db_schema to resolve conflicts
* removed tos metrics from rrd ospf stats due to rrdcached errors
* reorder db_schema.yaml to match upstream
* readd ospf_tos to db_schema
* styleCI changes
* Capture OSPF test data
* add ospf unit tests for iosxr
* ospfAuthType
* update db_schema
* remove extra migrations
* add ospf tests for iosxe
* add ospf test to ios
* merge ospf_tos into ospf_ports
* update db_schema
* update ospf module unit tests for ios, iosxe, iosxr
* fix ospf_ports ospfIfMetricStatus column type
* update db_schema
* more efficient dropColumn in down() migration
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Faster initial database creation
Add db dumps to improve initial db migration
On my test system 13s -> 7s, a 46% reduction.
Should help out a lot on systems like RPi
* lnms schema:dump command
--snapshots saves db snapshots, otherwise it saves the yaml
* fix style
* fix timezones...
* not working with in-memory db yet
remove build.sql
* Shift HTTP kernel and middleware
* Shift service providers
* Shift console routes
* Shift to class based factories
* Namespace seeders
* Shift PSR-4 autoloading
* Default config files
In an effort to make upgrading the constantly changing config files
easier, Shift defaulted them. This allows you to review the commit
diff for once for customizations when you are done Shifting.
Moving forward, consider using ENV variables or create a separate
config file to allow the core config files to remain as default
as possible.
* Shift Laravel dependencies
* Shift return type of base TestCase methods
From the [PHPUnit 8 release notes][1], the `TestCase` methods below now declare a `void` return type:
- `setUpBeforeClass()`
- `setUp()`
- `assertPreConditions()`
- `assertPostConditions()`
- `tearDown()`
- `tearDownAfterClass()`
- `onNotSuccessfulTest()`
[1]: https://phpunit.de/announcements/phpunit-8.html
* Shift cleanup
* console routes
* composer update
* factories
* phpunit
* bootstrap pagination
* model factory
* wip
* Apply fixes from StyleCI (#12236)
* wip
* Apply fixes from StyleCI (#12238)
* wip
* wip
* wip
* wip
* Apply fixes from StyleCI (#12240)
* wip
* Apply fixes from StyleCI (#12242)
* composer update
* Bump to PHP 7.3 minimum
Co-authored-by: Laravel Shift <shift@laravelshift.com>
* Added new authalgo support for SNMPv3
* Update 2020_07_27_00522_alter_authalgo_column.php
Fixed case
* Update addhost.inc.php
Fixed case
* Update snmp.inc.php
Fixed case
* Update db_schema.yaml
Fixed case
* Fixed SHA-* order to ascending
* Update 2020_07_27_00522_alter_authalgo_column.php
Fixed space
* Update db_schema.yaml
Fixed line to be of type string
* Update config_definitions.json
Fixed sorting
* Fixed test file case sensitivity
* Fixed rollback function
* SourceDoctor code for checks
* Fixed indentation issues on Travis test
* Update to re-trigger testing stuck on CLA step
* Added crypto-algo updates
* Incorporated suggestions from Jellyfrog
* Added documentation entry
* Fixed travis spacing error
* Fixed validations
* Delete snmpv3_version_compare.patch
Sorry, this one was not supposed to be there.
* Added poller evaluation
* Added poller comparison
* Fixed merge-conflicts
* Fixed typo in test unit
* code refinements
only can check on webui that it supports the algorithms, hopefully, the eventlog is enough to notify users of distributed pollers.
* style fixes and remove openssl setting
* fix device access
* fix missing migration column
Co-authored-by: Tony Murray <murraytony@gmail.com>
* snmpwalk_cache_oid handle multiline strings
* remove useless function
* some output has no space after equals
* airos-af-ltu use hr processors
* don't try to append with empty strings
* fix changed test data due to fix
* revert smartax
* better regex
additional check
* split siteboss 530 and 550 into multiple OS
* add more sensors to siteboss550 and new Percent sensor
* fix contact closure event state values
* split os polling for siteboss to siteboss530 and siteboss550
* add test unit for siteboss550, rename test unit for siteboss to siteboss530
* refactor siteboss os polling to \Librenms\OS
* implement OSPolling to Sitebos550
* force save in pollOS() to keep custom sysName during polling
* updated unit test
* update device graphs
* remove pollOS and extra save()
* siteboss550 no longer extends OSPolling
* update siteboss550 test data
* update discoverOS() to match recent os discovery changes
* styleCI changes
* fix siteboss hardware discovery; add check to OS polling if os_group .inc file exists
* collapse siteboss to single OS, implement siteboss sensors in advanced discovery
* add siteboss unit tests
* removed unneeded OS disco defs
* styleCI changes
* more styleCI changes
* split siteboss os to siteboss530 and siteboss550
* split siteboss os to siteboss530 and siteboss550
* move php polling back into yaml
* keep original siteboss OS name
* resave snmp data for siteboss OS
* resave snmp data for siteboss550 OS
* initial support for DC-UPS-48 from algom
* add snmprec files for algcom-dc-ups
* rename MIB and create json test unit
* new MIB name, recapture test snmprec and json
* remove unnecessary OS matching
* Implement locks in the file cache
* Replace custom locks
* implement restore lock
Used when re-hydrating
* remove legacy use statements
* Add class descriptions
* Fix style
* Default to database cache driver
* missed cache_locks table
prevent chicken-egg issue
* style fixes
* Remove custom file lock implementation
* missed items from file cache
* Update schema definition
hmm, other schema noise must be from manual modification as this is generated from a freshly migrated db.
* require predis, it is pure python, so no harm in adding
* and set predis as the default client
* - make Eaton Gigabit Network Card (AKA M2) a separate OS
(this hardware shares the sysOID with an older product, but not much more than that.)
- add relevant and updated mib-files. This creates duplicates of the same mibfile in mibs/.
unsure if this can be avoided
* axed some old mibs again
* All os detection now uses Yaml
Move OS detection code into the Core module.
Defer all OS with snmp queries.
Add snmpwalk option.
Port ubnt and mobileiron to yaml.
* Silly ide refactor
* Ciena SAOS 8 device improvements
- improved interface polling for certain devices with broken ifXEntry and long ifEntry value caching
- added G.8032 virtual ring status sensors
- adjusted default alert threshold for a sensor because some devices provide a nonsensical value (more work to be done here)
* Style fixes
* missed whitespace
Co-authored-by: Tony Murray <murraytony@gmail.com>
* add freshtomato snmprec file
add freshtomato snmprec , generated from latest freshtomato release
* add freshtomato test data
add freshtomato test data, generated from latest freshtomato release
* add freshtomato os definition
add freshtomato os definition
* freshtomato discovery for version, hardware model
freshtomato discovery for version, hardware model
* update freshtomato.snmprec, extra oid
update freshtomato.snmprec, extra oid now showing since going to 1.68, from over night update.
LibreNMS can now show version and hardware (router model) correctly.
* update freshtomato.json, hardware is now populated
update freshtomato.json, hardware is now populated, since going to 1.68, definition discovery is working correctly it seems.
* Regenerate without lo ignored.
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Drop redundant sensors from eaton-mgeups. Prefer RFC1628-sensors. Keep stuff unique to the mge MIB.
Add snmprecs for two new variants.
* Rewrote these jsons files after the previous change. All tests passing.
* Mistake in ddmDiagnosisRXPower OID
Mistake in ddmDiagnosisRXPower OID (its same as ddmDiagnosisBias)
Right OID is .1.3.6.1.4.1.40418.7.100.30.1.1.17
* Update snr.json
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Added support for OS detection from NXOS and UCS
* Changed to SysObjectID instead of Hardware
* Move to YAML
* Rename test cases from nxos to ucos
* Update ucos_2.json
* Rename nxos.yaml to ucos.yaml
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Rewrite smokeping script to be an lnms command
* Add a default number of probes for smokeping
* Formatting fixes
* Refactor to simplify a couple of methods
* Fix a name collision when using more than 60 threads
* Simplify
* First pass at documentation
A few climate fixes too.
I'm a little dubious about the + LibreNMS fix - it could be included
in /etc/smokeping/config if it is really needed, but it sounds like
(looking at git blame) it's needed for if the script generates a broken
configuration file.
I'm thinking we should just not generate broken config.
* Improve testability and add some tests
* Load laravel to make translations available
* Second pass at documentation
* Fix brace
* Extend the device factory to include the type
Also adds a device group fake I created before I realised I didn't need it
* Mimic gen_smokeping.php a little more closely
* Update tests to properly verify old and new behaviour against each other
* Replace gen_smokeping with a wrapper
* Don't double whitespace
Render does this automatically.
Explicitly order by hostname too.
* Make faker less likely to generate duplicates
I tried adding a unique constraint here, but it didn't have the
intended effect.
Extending the hostname like this seems to work fine - I tried
generating 10 million hosts and got no duplicates, compared to
duplicates appearing with as few as 100 hosts without this
change.
A true fix would be to add an 'fqdn' fake upstream.
* Make the tests more robust
* Assorted bug fixes
* Style corrections
* Handle 'generic' devices
* Fix an issue that came up during rebase
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Update sensatronics-em1.yaml
sysObjectID wasn't specific enough.
* Create sensatronics-ittm.yaml
Add support for 4/16 channel units
* Create sensatronics-ittm.yaml
Add support for 4/16 channel units
* Change name to be specific to ITTM
* Create sensatronics-ittm.snmprec
* Create sensatronics-ittm.json
* UBNT AF LTU: Fix incorrect eth0 status during discovery
* UBNT AF LTU: Update test data
* UBNT AF LTU: Remove eth0 if afLTUethConnected is not set
* UBNT AF LTU: Use require instead of require_once
* Add basic support for GE Galaxy Pulsar Plus Controllers
* Add basic support for GE Galaxy Pulsar Plus Controllers
* Add basic support for GE Galaxy Pulsar Plus Controllers
* Modified Gepulsar.php
* IFOTEC new product integration
* change source code indentation
* change source code for code climate checking
* change source code for code climate checking
* deletion of an unnecessary line
* add ifotec.php and test units
* forgetting about the previous commit
* modifications of test units
* add a test units
* optimization and add test units
* change SMNP mode request
* source code cleanup and and file for test units
* update .snmprec file
* update json test file
* update json test file
* IFOTEC mib integration
* add IFOTEC mib files
* IFOTEC mib integration for sensors
* cancel $oid2 unset
* delete useless line
* Fixed Ubiquiti Airfiber LTU retrieval
* Fixed Rx/Tx modulation rate
* Fixed eth0 retrieval
* Fixed quality retrieval
* Fixed Tx/Rx rate
* Fixed distance retrieval
* Added Rx power chain0
* Added Rx power chain1
* Removed eth0 port status
* Removed duplicate Tx EIRP
* UBNT AF LTU: Remove the now useless eth0 port status sensor
eth0 is now logged by the port module, so we don't need a separate state sensor to log the status of the port.
This change was mentioned in the previous commit, but I forgot to include it...
* UBNT AF LTU: Updated test data
* UBNT AF LTU: Fix incorrect spaces
* UBNT AF LTU: Use getnext
* UBNT AF LTU: Add some type checks and fixes
* UBNT AF LTU: Passing sensor values to WirelessSensor calls
* UBNT AF LTU: Cast sensor value to int
* Revert changes made to the test data
* UBNT AF LTU: Add new test data
* UBNT AF LTU: Add discoverWirelessQuality function for quality discovery
* UBNT AF LTU: Use snmpwalk_cache_oid
* UBNT AF LTU: Remove blank line at start of control structure
* UBNT AF LTU: Fix RX Ideal Power Chain 1
* UBNT AF LTU: Fix distance sensor
* UBNT AF LTU: Update CPU usage OID
* UBNT AF LTU: Update test json
* UBNT AF LTU: Update test json 1.4.0
* Arista EOS: Added groups and better sensor names
* Changed few sensors naming to remove redundancy
* Test files
* Better naming v2
* More rewriting and grouping
* And more grouping/rewritting
* Update arista_eos_vrf.json
* Minor code format fix
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Nokia MW Rx support for the 7705 SAR platform
* Nokia MW Rx support for the 7705 SAR platform
* updated timos.snmprec for wireless
* restored tests/snmpsim/timos_*.snmprec
* Added timos test entries for wireless
* removing $graphs global
* remove unused things
* fix some additional graphs
* Fix graphs persisting too soon
* correct name for poller module performance graph
* only one type of graph is used here
* Added basic EndRun support
* Fixed spaces as indicated by Travis
* Changes applied as per request and suggestions
Incorporated @murrant's suggestions.
* Update Endrun.php
* Update endrun.json
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Initial Release, wireless sensor support for Openwrt
* Extend Openwrt support, add more sensors
* Add documentation for Openwrt Wireless Sensor support
* Moved location of Openwrt.md
* Update openwrt.json
Co-authored-by: Tony Murray <murraytony@gmail.com>
* newdevice: added supprot for Fortinet FortiVoice
* Renamed fortivoice yaml file
* Added test date for FortiVoice OS
* Matching Fortinet to be like FortiSwitch
* Corrected test data...
* Added check for incorrect ifConnectorPresent truth values, if invalid, save it as false
* Added space after comma line 629
* Update ports.inc.php
Updated per murrant and tested.
* Update ports.inc.php
* Update ports.inc.php
Changed to check if ifConnector is set and if the response is not true or false, set it to null.
* Update ports.inc.php
* Update ports.inc.php
Fixed the codeclimate space issue
* Update test data
* fix differing escapes
* fix ciena-sds eol
* Revert timos.json
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Added discovery for temp/dbm graphs for LEOS mibs.
* Cleaned up Typo on Index lines for LEOS MIBs
* Cleaned up Typo for LEOS System MIB
* Added CPU Util graphs for LEOS MIBs
* Added test data and a MIB
* Shortened Index fields
* Update ciena-sds.yaml
* Update ciena-sds.json
* Update ciena-sds.yaml
Co-authored-by: Tony Murray <murraytony@gmail.com>
* OS detection for Dell PowerVault MD arrays
I'm not 100% sure it was worth Dell implementing SNMP - the array
exposes 6 OID's outside of MIBII, and we poll both the useful ones.
At least we get an icon.
* Test data
* Remove polling and discovery module filters
* Add support for Aten PE8216 PDU
* Add support for Aten PE8216 PDU
* Add support for Aten PE8216 PDU
* Revert "Add support for Aten PE8216 PDU"
This reverts commit 5d2f195f28.
* Revert "Add support for Aten PE8216 PDU"
This reverts commit ebfd659775.
* Fixed integer issue with skip_values
* More integer changes
* Add json file
* Fix yaml file
* Setting modules like that reduces user control
Co-authored-by: Tony Murray <murraytony@gmail.com>
Better validation when config.php does not exist
Update docs and quote password
only populate legacy vars in config_to_json
drop .travis.yml config copy
remove credentials from config.php.default
Check for existance of .env instead of config.php in python scripts
legacy credential cleanup
tiny cleanups
consistent env for artisan server and artisan dusk
* vrp FDB table corrected on CE switches
* sleep 5 in snmpsim to run tests.
* 6 seconds wait when snmpsim.fork is called from bootstrap
* rollback in Snmpsim Class
* Update bootstrap.php
* Fix missing PoE port graphs for Cisco Catalyst 9K
* Reworked code: 2 assignments, added tests
* Simplify code
Checking the MIBs...
CISCO-POWER-ETHERNET-EXT-MIB: AUGMENTS { pethPsePortEntry }
POWER-ETHERNET-MIB: INDEX { pethPsePortGroupIndex , pethPsePortIndex }
This means cpeExtPsePortEntry is always indexed by exactly 2 values. No point in populating slot.subslot.port
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Added discovery and graphing for JunOS (SRX) RPM probes
* Proposed changes for a percent based sensor type
* Fixed missing MIB declaration in JunOS YAML discovery file
* Updated Health-information.md to reflect the new percentage value type
* Added separate test data for junos_rpm type
* Update sensors.php
* Update sensors.php
* Update functions.inc.php
* test re-run
* Update junos_rpm.json
* percentage -> loss
* add ifSpeed prev test data
* mis-merge
* update sensors
* and bgp...
Co-authored-by: PipoCanaja <38363551+PipoCanaja@users.noreply.github.com>
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Add new sysObjectID for Arbor ArbOS TMS appliances
Arbor ArbOS TMS appliances use a sysobjectID of SNMPv2-SMI::enterprises.9694.1.5. Currently the arbos.yaml file only has 9694.1.4 so Arbor TMS appliances are not getting detected correctly as ArbOS devices.
netnms01:/opt/librenms# snmpwalk -v2c -cdeleted arbortms01.dal
SNMPv2-MIB::sysDescr.0 = STRING: Peakflow TMS 8.4 Model: TMS-HD1000 Serial: XXXXXXXXXX
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.9694.1.5
* New sysobjectid for Arbor ArbOS TMS appliances
* New sysobjectid for Arbor ArbOS TMS appliances
* Update arbos.json
* Create arbos_tms.snmprec
* Update arbos.snmprec
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Update functions.inc.php
Skip changing the high limit threshold to low limit threshold value when high limit threshold doesn't exist for a sensor. If low limit threshold value was set by discovery process or manually, the same value would be also set for high limit threshold.
* Update cisco-entity-sensor.inc.php
Skip invalid sensor threshold values, which some Cisco ASR devices (probably other families too) return.
* Add snmprec data for Cisco ASR9010
* Create iosxr_asr9010.josr
* Create iosxr_asr9010.json
* Delete iosxr_asr9010.josr
* Update iosxr_asr9010.json
* Update iosxr_asr9010.json
Co-authored-by: Tony Murray <murraytony@gmail.com>
Co-authored-by: PipoCanaja <38363551+PipoCanaja@users.noreply.github.com>
* 3g-LTE WAN stats
* Get HW name on AR16x family
* serial for AR
tests
* enable snmpsim log
* Update bootstrap.php
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Detection for MobileIron appliances
* Test data
* Remove references for GANDI-MIB
Turns out these aren't actually needed for Linux-likes
* Remove module filters
* Added FortiMail support
* Added FortiMail support
* Update fortimail.inc.php
* optimized discovery
* Syntax change
* Added test data
Co-authored-by: Neil Lathwood <gh+n@laf.io>
* vrp-improve
* add bgp4 data, and get errors
* Fix WRONG Type error on bgpPeerRemoteAs + handle ErrorSubCode in a generic way
* fixing tests
* clean
* improve state backup to BGP4-MIB
* tests with corrected data
* tests
* restore original tests/data/vrp_5720.json
* Refactor pre-commit to class
* docs build
* dusk check
* ci mode for checks
* full checks
* other mysql
* make other lint checks actually work
fix pylint finding
* ci is a long opt
* fix undefined index
* dusk fully working
* ask for forgiveness, not permission
* fix whitespace
* skip dusk sometimes
* Handle 3com and other os with digits
* flags instead of if else spaghetti
* convert to command
* cleanup
* missed check
* fixes
* case
* self-check :D
* argument now
* fix bugs from refactors
* another fix
* adjust file change parsing
* refactor execut a bit
* fallback to global quiet when unknown type.
* allow quiet override for specific commands
* output cleanup
* check flow
* start of tests
* file categorizer tests and fixes
* fixes and cleanup
* skipable not implemented...
* more tests, fix bugs
* more tests and cleanup
* wrong command
* fix canCheck and set env properly
* full env fix
* don't allow dusk on user's run as it will erase their db.
* fix os option
* fix whitespace
* don't need to start server
* ci doesn't like that
* WIP Sqlite
Down methods don't work either, avoid them with refresh for now.
WIP persistent support
WIP db_schema
WIP db_schema 2
Update new migrations...
revert dump_db_schema changes for now, too much difference.
fix migrations on mysql
fix up some more items, this should be our target schema
lots of index renames and a two misc changes
index rename WIP
index rename WIP
another round
fix up new schema changes
try case insensitive fix
Trying tests WIP
fix down methods
DBSetupTest working (uses mysql)
Test sqlite migrations work
* Properly validate sqlite output
* revert glue changes, should be separate PR
* remove dusk workaround
* remove unused variables
* import
* sqlite capitalization
* Revert some refresh tests
* testing_mysql back to testing
* Intitial push working tests
* Adding unit tests
* created interface state unit tests
* started ospf nbr unit tests
* finished nbr change unit tests
* precommit checks pass
* removed uneccsarry relationship
* Handle cases where the data type is hex encoded, but the data is
not actually hex encoded.
* Test data claims 4x, but is not hex encoded
* Encode the private string
* Replace 4x|<private> with 3C707269766174653E
* Re-run save test data.
Seems some of these files might have been hand edited at some point
as fields seem out of order
* Have a trap test use a mock instead of a db query
* Ping only device doesn't display
if os was set to something, ping os wasn't loaded and we try to get overview graphs from it.
* Fix snmp_disable device page load error
When other os is set.
* Revamp os setting loading
the only safe way to access is Config::getOsSetting()
* Remove getOsSetting fallback behavior
Most instances don't use it and it can have unexpected results Config::getOsSetting('blah', 'group') == 'librenms'
* refactor and remove unneeded load_os/loadOs calls now since getOsSetting automatically loads it.
* restore unix overview graphs, they are different
small cleanups
* fix
* Extend processor polling to Dell Powerconnect N1100 and N1500 series
* SNMP test data for Dell Powerconnect N1124T-ON
* SNMP test data for Dell Powerconnect N1148T-ON
* SNMP test data for Dell Powerconnect N1524P
* Update Airos.php to match with Airos 8.x.x
Oid changed from AirMaxQuality (not used anymore), to Airtime
* Update Airos.php
* update airos.php to use wirelessUtilization
Using OID for UBNT-AirMMAX-MIB::ubntAirMaxAirtime.1 for wireless sensor utilization.
* Removed Airtime from quality
* Tests
* Update airos.json
* airos.snmprec reverted to previous state, and uploaded airos_airos8.snmprec
* Added airos8 snmprec
* Create airos_airos8.json
* Update airos.json
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Remove unused routes
Prevents route:cache from working also
* Run artisan optimize after composer install
Helps cleaning up issues with upgrades, and also makes laravel a bit
faster
* Update composer.json
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Implement OS specific information discovery
That way it doesn't have to be fetched during polling
Also improve discovery process, os is only detected once, in the core module.
EXA is the test os, a couple improvements there.
* Use local variable, then unset it so we don't pollute.
* fix style issues
* test and other fixes
* attribute update fixes
* Update exa data, need new source data
* null missing "os" values
* fix ftos odd character
* fix ftos odd character
* only null for new style or we will reset to null every discovery
* Move device observer to own class
* Handle location, relocate event logging
* update exa e7-2 data
* update ird test data, apparently unicode is now working.
* update Linux ntc, now uses correct icon
* Only load all os on the web, also, we can't load existing the the database isn't connected.
* only for devices that have a location
* revert ftos test data apparently
* revert ird
* Test WIP
* WIP
* port getComponents to Eloquent
* port more
* simpler creation
* change to explicit arrays
* add missed file
* restore commented code
* fix inserting null value for component prefs
* Fix some bugs in setCompenentPrefs
Can't create tests without fixing bugs first :D
* another test
* another test
* Modernize setComponentPrefs
* Test for event log entries
* Fix delete event
* fix invalid values for component toggles
* status log too
* Use Setters to work around bad data, $casts doesn't do what we want.
* New OS: QTECH
https://www.qtech.ru/en/catalog/
* QTECH: Add hardware, version and serial support
* QTECH: Fix platform and software version detection
* QTECH: Add test for QSW-3450
Fixes issues observed in LibreNMS (timeouts, missing data)
Manual snmpwalk vs. snmpbulkwalk confirmed no bulk support
Missing toner, network, etc. information now seen in LibreNMS!
* MPLS updates and bugfixing
* Tests
* tests
* code climate, tests
* tests
* tests
* remove nokiaIfName(), fetch ifName from the database instead
* restore from messed rebase
* tests
* btw, fix travis about the missing docs
* tests
* tests
* clean the messed up test data an generate new for timos
* rebase
* SIAE add additional sensors and data
Improved labels
Modulation
Rate
Serial Number
Hardware name
* Add total rates
* was supposed to be divisor
* Short array syntax
* Support FreeNAS/TrueNAS 11.3
Seems the latest release changes the SysObjectID from FreeBSD to
their own enterprise number.
I've left the old FreeBSD enterprise number in place, so both
older and newer releases will be detected.
* Test data
It's also possible to do zpool IO from the MIB, but diskIO on
LibreNMS makes a lot of assumptions about it coming from the UCD
MIB.
This changeset adds detection for FreeNAS and TrueNAS - despite
having their own enterprise number, the snmpd uses the FreeBSD
one.
The naming is a bit all over the place, because this reflects
reality - IXSystems produce FreeNAS and TrueNAS, the product lines
have merged to eliminate FreeNAS, but TrueNAS still calls itself
FreeNAS everywhere except the GUI.
* opengear MemPools
Discovery and Polling of opengear mempools - opengear Detail Memory Usage is already collected however that can not be used to trigger rules.
* add test
opengear mempools tests
* remove newline
* Added sensors for outlets on Schleifenbauer devices. Also use the outlet name when configured.
* Updated tests for Schleifenbauer
* Fixed on test for Schleifenbauer
* Optimized polling by retriving only outlets from the device with the network connection, not all devices on the data-bus.
* Fixed code styling
* Use shorthand comparisons for names
* Fix for conflicting $entPhysicalIndex
* Add OS detection for Greenbone appliances
They don't expose anything fancy over SNMP, but this makes them
display interface names correctly. Under the hood they're unix-y.
Greenbone logo is from the AGPLv3 gsa, which is GPL compatible:
https://github.com/greenbone/gsa/blob/master/gsa/public/img/greenbone.svg
The mib is included for completeness, but it doesn't expose any
graphable values.
* Fix the vendor's logo
* BGP Polling: Add error code polling
* Rework describe_bgp_error_code and fix bgp error fields migration
* Add real test data for IOS-XR and Arista EOS
* OS detection and sensors for Dell Compellent
... or Dell storage as it is now known. Under the hood it's
referred to as Compellent, so I've named it as that to avoid
confusion.
It is not part of the Dell group or using the Dell MIB folder -
Dell have doubled up on some OID definitions, which means the MIB
here and a couple of the existing ones conflict.
The change adds OS detection and a frankly ludicrous amount of
sensors. I have access to a relatively low end device, so at the
moment everything under *ctlr* is my best guess based on the other
table layouts.
* Set sensor state_name to avoid collisions
* Regenerate test data
* Sev and Rel terminology varies between devices
* Most temp sensors don't have low limits, so adding
* update test data
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Fix routing engine discovery on standalone JunOS devices
In #9426, the sensor discover code was replaced with YAML.
Unfortunately it treats the FRU table as standalone OIDs, and did not
implement the filtering that was present in the original code.
This change causes LibreNMS to fully walk the FRU table, which allows us
to silence alerting on devices with an 'unknown' status. Without this
change, standalone devices have a spurious routing engine with state 1,
which triggers false harware failure alerts.
As we're changing the name of the sensors, this causes a loss of sensor
history.
This has been brought up on community a couple of times:
https://community.librenms.org/t/juniper-qfx-routing-engine-state-alert/6152https://community.librenms.org/t/spurious-failed-routing-engine-from-some-junos-devices/6208
* Update test data
* Update test data
* Update test data
* Update test data
* This syntax works, but fails linting
* Create addhostCliTest.php
Added test for addhost.php cli tool
* Added test for addhost function
Added tests and fixed code in order for the function to be able to run with default parameter
* Create addhostTest.php
added tests for addhost function
* Update addhostCliTest.php
Changed from testing addhost.php to Artisan command 'device:add'
* remove delhost exec
* remove delhost
* Remove isn't needed, transactions are used.
* Remove unneeded, transactions are used.
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Add Advantech logo.
Taken from https://commons.wikimedia.org/wiki/File:Advantech_logo.svg
with minor edits (removed width and height).
* Add Advantech MIB files.
* Add Advantech definitions.
* Add suppor for version and hardware polling.
* Add advantech snmp recording.
* Add sensors for SFP ports
Each SFP will have temperature, voltage, tx bias, Tx/Rx power.
Also update snmp recording to include new data.
* Rename ADVANTECH-EKI-PRONEER-MIB_1_01.mib to ADVANTECH-EKI-PRONEER-MIB
* Rename advantech-common-mib.mib to ADVANTECH-COMMON-MIB
* Update advantech.yaml
* Update advantech.svg
* Create advantech.json
Co-authored-by: PipoCanaja <38363551+PipoCanaja@users.noreply.github.com>
* Added support for ICT Modular Power System and ICT Sine Wave Inverter
* Added SNMP test data for ICT Modular Power System and ICT Sine Wave Inverter
* Fixed styling errors and refactored state sensor for ICT Sine Wave Inverter
* Fixed newly created styling issues from refactoring ICT Sine Wave Inverter files.
* Fixed further styling errors from previous changed to appease Travis CI
* Removed unnecessary math from ICT Sine Wave Inverter voltage sensor
* Cleaned up unnecessary lines in ict-mps/ict-swi sensors. Moved from snmp_get to snmp_get_multi in ict-mps/ict-swi os pollers.
* Added test data for ICT MPS and SWI
* Fixed issue with load sensor not discovering
* Update snmpget to snmp_get
Co-Authored-By: Jellyfrog <Jellyfrog@users.noreply.github.com>
* Updated test data post-fixing sensor detection issue on ICT Sine Wave Inverters
* Moved ict-swi and ict-mps from legacy to yaml sensors
* Removed legacy code for ict-mps and ict-swi sensors
* Last commit mistakenly removed OS polling from ict-mps and ict-swi
* Fixed formatting for OS polling and updated test data for ict-mps and ict-swi
Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
* ipv6 support for BGP routes in VRP devices
* reverse bgpPeers array to allow VRF aware BGP
* codeclimate
* codeclimate
* codeclimate, finally
* Split VRP out of bgp-peers for readabilty
* Split VRP out of bgp-peers for readabilty
* tests
* CodeClimate
* improve function description
* improve function description
* v6data
* rebase
* space
* ipv6 support for BGP routes in VRP devices
* reverse bgpPeers array to allow VRF aware BGP
* codeclimate
* codeclimate
* codeclimate, finally
* Split VRP out of bgp-peers for readabilty
* Split VRP out of bgp-peers for readabilty
* tests
* CodeClimate
* improve function description
* improve function description
* v6data
* rebase
* space
* fixed corner case
* ascom support
* tests
* typo
* Correct missing 'mpls' in misc/os_schema.json
* remove mpls for now
* tests
* Update ascom.svg
* Don't disable already disabled modules
As I usually state, not much gain in disabling these here. Would be better to optimize the modules if you think they take too long on devices that don't have support.
* refactor polling code
Co-authored-by: Tony Murray <murraytony@gmail.com>