* 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
* 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>
* 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
* Changed USV bypass state from alert to warning
* add /opt/librenms/tests/data/dell-ups_tower1000w.json
* add deltaups.json
* orvaldi-ups
* add generex-ups.json
* include two more generex-ups variants
* add eaton-mgeups_5px.json
* add tree more
* add istars.json
* restart hanging CI
* Migrate ironware sensor discovery from php to yaml.
* More sensors, add grouping.
* dynamic_discovery_get_value() becomes getValueFromData()
* Target a specific index with skip_values.
* Improve Brocade BGP session discovery/polling
This commit allows for the correct discovery of BGP sessions
with 32-bit ASNs, IPv6 neighbors using the BGP4V2-MIB which is
based on draft-ietf-idr-bgp4-mibv2-11 and also polls for IPv4
unicast received routes through the FOUNDRY-SN-BGP4-GROUP-MIB.
Copied most of the code from PR#8877 by @Mikeburke14, cleaned
up the code a little bit to match the normal LibreNMS style,
and fixed bgpPeers_cbgp discovery as well as polling for the
ipv4.unicast neighbors.
Note that older Brocade IronWare firmware versions are known
to have multiple defects relating to the BGP4V2-MIB which
might result in certain missing non-established neighbors.
Related vendor defect numbers:
- DEFECT000633962
-- Symptom: The OID bgp4V2PeerAdminStatus does not return the
correct value
-- Reported: NI 05.7.00
-- Resolved: NI 05.8.00g
- DEFECT000583319
-- Symptom: SNMP polling on bgp4V2PeerTable (OID brcdIp.3.5.1.1.2)
does not display all the BGP entries
-- Reported: NI 05.6.00
-- Resolved: NI 05.8.00e
- DEFECT000550309
-- Symptom: SNMP polling on bgp4V2PeerTable (OID brcdIp.3.5.1.1.2)
does not display the full information
-- Reported: NI 05.7.00
-- Resolved: NI 05.8.00c
* Add ironware CER & ICX platform test data.
* Re-add ironware.json compatible with current master branch.
* Add bad_ifoperstatus for filtering interfaces having a status for example notPresent
* Add bad_ifoperstatus for filtering interfaces having a status for example notPresent
* Add bad_ifoperstatus for filtering interfaces having a status for example notPresent
* Fix Siklu Voltage
* Update tests
* Another test fix attempt
* Decimals..
* Ok, enough.
* Restore currently used index value and correctly push num_oid
* Update siklu.json
Co-authored-by: PipoCanaja <38363551+PipoCanaja@users.noreply.github.com>
* fix SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'port_id' cannot be null
* If $entry['port_id'] truly is null (on insert) then Illuminate throws a fatal error and all subsequent processing stops.
* Cisco ISO (and others) may have null ids. We still want them inserted as new
* strings work with DB::table->insert().
Avoid writing "0" as port id when the data came back incomplete from the snmp poll, and when the existing data in the DB already contains a port. Keep the existing port id instead.
* Add FDB support for ArubaOS; modify some SNMP calls to allow community string indexing
* Apply coding styles, changed arubaos.inc.php comment headers
* Coding style
* Modify per items discussed at pull 10940
* ArubaOS test data
* ArubaOS header doc
Co-authored-by: PipoCanaja <38363551+PipoCanaja@users.noreply.github.com>
* Initial stab at switch input state sensor
* Fix indentions
* Fix indentions
* Index updates
* More useless changes.
* And it finally works.
* Open should be a WARNING state.
* Update email
* Add line
* One empty line, not three.
* This is getting ridic.
* Add test data
* Clean broken VRF lite code
* Change DB table for route discovery
* Add VRF simple support
* add port_id to db and discovery
* static-fy the translation arrays
* sort and search cleaning
* Sorting refactor and validation
* formatItem shortened
* Handle ifIndex==0 meaning no next hop defined (MPLS)
* Sync all create/updates
* purge in daily
* remove old route table
* get rid of inetCidrRouteNextHop_device_id
* fix wonky column orders
* add route snmprec
* fix sorting by interface
* Move to new config
* rename to route the new table
* Properly display ipv6 compressed addresses
* Translation before merge ./lnms translation:generate
* Update manifest
* Device Cache
also some additional device related models
* attribs from cache
* replace common attribute functions
* remove legacy cache usage
tidy up some collection manipulation
remove some unused or single use functions
* cleanup some items
* always return a device, to prevent bugs
* clear device cache when testing after each test
* fix double assignment
* Clean up function to take advantage of null object
* - update yzyxel mibs
- update definitions für ies series
- slot state and alarm support via yaml
* more sensors
* add new device Zyxel IES4206
* restore original ies files
* revert function stuff
* update to latest official mib
* rebase
* Added model, processor, fan and power supply for Alcatel Omnistack Switches
* Removed Index from description of Fan and power supply
* Merged PR #10655
* Added Temperature Sensor for AOS7+ Alcatel Enterprise Switches
* Added AOS7 mempools
* Added Tests
* Update aos.yaml
* Update alerts levels in state sensors
* Add test data
* added support for PDU/PDU2 MIB data (current, power) and added external sensor fpr humidity and temperature on PDU MIB
* added test data of 1 PDU-MIB device and 1 PDU2-MIB device
* Create raritan-pdu.json
* forgot to do save-data on last commit
* add ability to discover percent warning on mempools discovery
* remove wierd charachters from json
* remove database defaults, add defaults for Linux and Vmware
* update db schema
* update test data
* adapt hrstorage mempools
* rebase
* Add ECS4110 cpu usage
* Add cpu usage oid for ECS4110
* TESTED
* Fix EdgeCore ifOperStatus does not follow the Cisco convention
* Since EdgeCore use "lowerLayerDown" in ifOperStatus when port is unplugged
* On the other way, Cisco use briefly "down".
* So change "lowerLayerDown" to "down" to workaround the bug that will make port always show as up/up
* Refactor Edgecos cpu usage oid
* Codeclimate is unhappy about it maybe the refactor will make it happy.
* Add EgdeCore ECS4110 MIB
Just got MIB from EdgeCore
* Refactor Egdecos Mempool
* a bit refactor of Mempool discover and polling
* add support for ECS4110 via MIB
* Modify ECS-4110 MIB
* MODULE-IDENTITY change from ECS4110-52P-MIB to ECS4110-MIB
* strip off syntax error part(time range)
* Add EdgeCore ECS-4110 OS polling
* polling OS and Hardware via MIBs
* Fix typo
* Sorry that I am dazzled
* Fix Syntax Check
* Codeclimate is a bit aggressive
* Update edgecos.inc.php
* Update edgecos.inc.php
* Revert "Fix EdgeCore ifOperStatus does not follow the Cisco convention"
This reverts commit 27971b34a8.
* Add snmprec file for unit testing.
* Create edgecos_ecs4110-28t.json
* do not discover dbm sensors on shutdown ports
* rename confusing name from $sensor_type to $sensor_class
* Revert "do not discover dbm sensors on shutdown ports"
This reverts commit 46963f746a.
* Fixed foreach loop throwing errors when no vlans present, community id post 9528
* Added extra else / debug statement for validation
The modified changes allow for clear information regarding the discovery of devices where no port<->L2 Access/Trunk association is seen.
* Fixed Junos port/vlan relationships for els and non-els based software
* fixed tabs
* Add test data
* Updated test data
* Update module_tables.yaml
* Update junos_qfx5100.json
* Update junos_qfx5100.json
* Update junos_qfx5100.json
* Update opengear MIBs to latest version.
* Replace PHP signal discovery with YAML.
* Update Opengear YAML with new sensors.
* Add test data for Opengear.
* Add the test data json for Opengear.
* Named to numbered index to avoid data loss.
* Added support for snmp monitored PDU from fs.com
* Added support for snmp monitored PDU from fs.com
* Fix sysObjectID 1.3.6.1.4.1.30966
* Create fs-net-pdu.json
* Added support for DGD and BER that are avalible on newer infinera-groove FW
* updated tests for new groove sensors
* Update infinera-groove.inc.php
* Update infinera-groove.inc.php
* Force test to run again
* Default to null for group yaml discovery.
* Update test data for a154bda yaml group null fix.
* Changes to guessed limit functions for sensors.
Original behaviour
===================
The file `includes/discovery/functions.inc.php` contains
`sensor_limit_low()` and `sensor_limit()` which both attempt to
guess a sane value for sensors when no explicitly defined
low_limit or high_limit can be found during discovery.
Both switch control structures used in those two functions
have empty case statements which means that if one of those matches,
it's going to fall through and run the code for each subsequent
case until a `break` is reached.
For example, when we call `function sensor_low_limit(dbm, -13.036)`
it will return the value `-12.3842` instead of `null`. That is
because there will be a match at `case 'dbm':` which falls through
all the way to `case 'cooling':`, where it performs
`$limit = -13.036 * 0.95` before hitting a `break`.
Changed behaviour
===================
Removed `power_consumed` and `count` guessed low_limit and
high_limit, I personally added those sensor classes in PR #9471
when I didn't understand that a switch control structure has
fall-through behaviour so I can guarantee that guessing limits for
those is a mistake on my behalf. It should not be there, only
power_factor can have guessed limits. Apologies for the issue,
I'm still a beginning programmer!
Furthermore, I removed guessed high_limit values for `current`
and `power` because these are supposed to draw higher values as
more devices or components are installed on for example a PDU or
a chassis.
Finally, I removed guessed low_limit and high_limit for `dbm`
sensors, there is a much too large variance in power budget on
commercially available optical transceivers for there to be a
sensible window where you can guess these values.
* Documentation on adding sensor classes.
* Update test data - sensor limit changes @ 30212d2
* Aruba IAP: Fix Radio State Sensor
Fix state sensor for radio status from warning when disabled to unknown state.
* Update aruba-instant.json
* Update aruba-instant_105.json
* WIP - Add MPLS Support
This introduce the generic MPLS support
- New database tables for MPLS LSPs
- actually discovery and polling on NOKIA SR OS (Timetra) devices
- new routing->MPLS HTML pages
- ToDo MPLS LSP paths table and views
Suggestions and improvements are welcome
* add db schema
* some fixes
* add path table, discovery and polling
* add path views
* add test data
* Convert MPLS module to new style
Implement a SyncsModels trait to simplify code a lot
* abs() for negative value from snmp (bug?), test data
* fix db schema
* Fix up test data, remove uneeded data in json
* fix whitespace
* Dynamic entPhysicalIndex values for YamlDiscovery
* Use degree symbol when displaying temperature values
* Adjust SNMP options for new snmp_get_multi()
The OS polling module for mrv-od was using snmpget commands with
-Ovqs, rather than -OQUs, which meant that the equal sign was
stripped in the snmpget output. But that equal sign is now used
as the explode() delimiter so it broke the construction of the
returned array for the snmp_get_multi() function.
Additionally, I removed the NBS-CMMC-MIB:: prefix which is no
longer returned by snmp_get_multi() as part of the OID. Now,
the mrv-od.inc.php OS polling module is retrieving data from
positions in the array with actual content.
* Convert mrv-od to yaml, improve sensors discovery
Converted sensors discovery for mrv-od to yaml, retaining all
functionality for pre-cache, dbm, and temperature. Replaced specific
SFF-8472 Digital Diagnostics state sensors with generic ones, given that
we are now reading out detailed values through new dbm, current, voltage
sensors.
Reasoning: the generic Digital Diagnostics state sensors report state
diagsOk, or else the worst severity level measured among all of the
Digital Diagnostics values for that optical data point. You'd really
only want to set a generic "alarm" so the box can report that it
thinks something is wrong, whereafter a human can look at the graphs
and/or the CLI to draw their conclusions about the alarm. Otherwise,
things would quickly become too spammy as you are essentially duplicating
every sensor across both regular measurements and state measurements.
Further changes:
- Increase maximum number of detected PSUs from 4 to 8 per the MIB.
- State sensor to detect (in)sufficient power budget for all modules.
- Use skip_values to hide state sensors with the notSupported value.
- Use skip_values to hide sensors which are unsupported per the MIB,
signified by the device returning special values -1 or -2147483648.
- Add dBm, temperature "over" graphs to the mrv-od device header bar.
* Add mrv-od entity-physical support
MRV does not use the ENTITY-MIB data format, so we had to reconstruct
the inventory from their proprietary format using the following tables
from their NBS-CMMC-MIB:
- nbsCmmcChassisTable
- nbsCmmcSlotTable
- nbsCmmcPortTable
Additionally, since sensors didn't have their own ifindex in the
NBS-CMMC-MIB, I went ahead and appended the last OID digit to
the "containing" ifindex create a unique number. The same was
done for the sensors in the yaml-discovery.
* Test data for mrv-od, fix 2* pre-commit.php issues
* Fix entPhysicalIndex returning 0 instead of null
Some unit test breakage was caused by 62167ebcb which changed
the code to return 0 instead of null when {{ $index }} was
set as the entPhysicalIndex in the YamlDiscovery. So now we
detect if it returns some value which may be interpreted as
false, and if so we set null rather than 0.
* Fix for RouterOS LLDP discovery
Only the first nine neighbors were correct on RouterOS - missing hexdec() led to the remaining neighbors being linked to the wrong ports. Ex. port 10 in hex was incorrectly linked to port 10 decimal when it should be 16 in decimal
* Added test data for MikroTik RouterOS CRS317 switch
* Fix Cisco MAC acounting discovery, polling and HTML templates.
* Remove empty code.
* Provide test data for cisco-mac-accounting module.
* Added module test dependency.
* New OS: Aruba Instant
* New OS: Aruba Instant
* recreate test data
* remove aruba_instant test data
* remove empty file includes/definitions/discovery/aruba-instant.yaml
* fix state sensor discovery
* remove minor changes to includes/polling/functions.inc.phpwq
* move mac helper functions to Rewrite class
* simplify snmpwalk_group usage, general code cleanup
* fixes
* fixes
* fixes
* fixes
* fixes
* fixes
* recreate test data for 105 variant
* Add Client sensors for 8.4.0.0+
* begin stream-lining discovery and polling. separating discovery functions
* update test data
* update test data
* update test data
* improve mempool discovery/polling, clean up os polling, improve state discovery, improve os definition, misc fixes to wireless sensors module
* attempt to implement custom AP and client discovery and polling
* code fixes
* re-add ap count top graph
* more fixes
* more fixes
* more fixes
* more fixes
* remove some debugging, update test data
* code cleanup
* code cleanup
* address some scrutinizer warnings
* Fix Avtech discovery
pre-cache stored the data incorrectly
* Fix RA-4E external sensors
sen1 had incorrect oids (duplicate of sen2)
Description oid from data doesn't match the mib, perhaps outdated MIB?
* add test data
* Updated 4E MIB
* additional sensors for timos
change to yaml discovery for sensors
remove obsolete tmnxChassisPowerSupplyTable
* inconsistent data in snmpsim
* fix snmpsim data
* fix snmpsim data
* fix snmpsim data
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [X] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
After you are done testing, you can remove the changes with `./scripts/github-remove`. If there are schema changes, you can ask on discord how to revert.
* Added support for IONODES video encoders
* fixed expected number instead of string value error when running tests
* removed extra colon
* added mibs_dir for ionodes
* removed IF-MIB from ionodes.yaml
https://community.librenms.org/t/modify-discovery-protocols-inc-php-to-fix-neighbours-problem-on-extreme-networks-exos-switch/7797
The bug is caused by SNMP polling switch-1 with ifIndex to DB (associate
ifIndex when adding switch), the port “1” is “1001”. Another switch-2
discover the switch-1 port “1” by LLDP is “1” (after LiberNMS get this
information). Two values are not equal (“1001” != “1”). If I change to
use ifName associate when adding device, because ifName is “1:1”, so it
can not equal to LLDP too (“1:1” != “1”).
* Added support for HikVision-DS Cameras
clean up
removed pointless file, cleaned up code
fixed failing unit tests, a bit of cleanup
WIP - will rebase
split hikvision into hikvision-nvr an hikvision-cam
* removed unneeded comment and rec file
* New Device: ATS - Automatic Transfer Switch
* Small fixes
* Fixed test data
* More fixes, again
* Moved temp to php to retrieve limits from device
* Fixed perms again...
* Final test file. Or I hope so...
* device: Added support for APC AP9810 zone contacts
* fix: disconnected sensors been detected. And iemConfigProbesTable certainly does get used and it reference
* fix: load is VA, not to be confused with watts. This could be different per device though...
Apparent Power unit = VA
Real Power unit = Watts
And Keeping codeclimate happy
* feature: updated APC MIB
* feature: added test data for APC Smart UPS SMX750i and AP9810 with contact switches
* The SNMP value ciscoEnvMonTemperatureThreshold is now stored as high limit (and no more as high warning limit)
* Updating misc/notifications.rss to make the user aware of the behavioral change
* Addition of missing </description> in the misc/notifications.rss
* Automatic sensor limits are now optional. Set ['discovery']['sensors']['autolimit'] = false to disable.
* Changing new config variable name from discovery.sensors.autolimit to sensors.guess_limits
* Updated documentation: ['sensors']['guess_limits'] value added
* adding paper tray status and error states
* adding paper tray test data
* Create jetdirect_papertray.json
* Store printer supply type
* Update json data
* fix style
* Dantel WebMon Support
Webmon tep discovery changes
Fix Code Climate Issues
* WebMon - Move MIB to folder and create json reference
* Minor changes to Webmon polling
* Add data scrubbing state to Synology RAID status
Adds a new state translation to Synology DSM RAID status sensor, so it displays "DataScrubbing" while the operation is running. Previously it would just show "# 13".
* Update Synology RAID MIB
Downloaded from
https://global.download.synology.com/download/Document/MIBGuide/Synology_MIB_File.zip
* refactor: advanced sensor states
mark create_state_index($state_name) as E_USER_DEPRECATED?
* fix: minor corrections
* fix: mib has partialSync(9) and incompatibleVersion(8)
* fix: corrected netagent2upsstate - Sleeping(5)
* fix: NetAgent2 upsThreePhaseUPSStatusInverterOperating correction
* refactor: array() be gone
* Refactoring includes/discovery/sensors/state/extendair.inc.php with arrays
And tidying up array formatting in other files
* fix: minor typo
* standardising array item names
removed redundant "if ($state_index_id !== null) {"
* workaround: procurve & serverscheck
a sensor is causing create_state_index($state) to return null.
The updated code doesn't allow for this and thus a hybrid is being used.
* standardised naming of state info. Caused a typo $state_name instead of $status_name
$state_name is the standard
* converted compas to square arrays
* Converted APC states using preg_match to new create_state_index() call
* Update boss.inc.php
* newdevice: Added support for Alpha Comp@s
http://www.alphainnovations.eu/compas
* fix: Updated state values
state values persist in database, even after deletion of devices.
Not a 100% how to purge them.
create_state_index($state_name, $states) doesn't update the database, if the states have changed
* refactor: comp@s OS state sensor now updated to latest format
* Migration script and data feeding
* Adding the columns in the GUI
* build schema
* update FDB test data
* Use of timestamps()
* ignore created_at and updated_at in tests, and regenerate test impacted
* daily.sh does the cleaning
* space cleaning codeclimate
* Use carbon instead of str-val
* handle when $fdb_entry->updated_at and created at are null
* handle when $fdb_entry->updated_at and created at are null (force travis rerun)
* Doc update
* Doc update
* Fixes for SZ detection
* Ruckuswireless devices
* remove registered mibs
* Code Climate Fixes
* updated test data for zd1100 & zd1200
* Updated database test data
* trying to fix smartzone test data
* updating zd test data
* more code climate fixes
* Update ruckuswireless-unleashed.yaml
* hide total clients if 1 ssid
* fixing smartzone ap status
* smartzone ap count fixes
* fixes because of git
* fix zd ap counts
* Update ruckuswireless-sz.json
* Update ZD1200 test Data
* Update ruckuswireless-sz.snmprec
* Update Database test data
* Update zd1200 database data
* Update ruckuswireless_zd1100.snmprec
* Update ruckuswireless_zd1100.json
* Update ruckuswireless_zd1100.json
* Update ruckuswireless_zd1100.json
* Code Climate Fixes
* Code Climate Fixes
* Update Ruckuswireless.php
* Code Format Fixes
* add mibs,first commit
* adds support for Nokia ISAM Plattform
* remove some comments
* change os polling to multi oid
* Restore file headers
* Fix discovery by sysObjectID
* first deactivate checks against IHUB (timos), It not necessary so long we can not provide more thatn one snmp community per device
* move snmp state and temperature from pre-cache
* Update os_schema.json
PR #9546 has resulted in Platform being detected as
"Juniper Virtual Chassis Switch" when a set of devices
is stacked. Hence, no more possibility to see whether
it is for example an EX2300 or EX3400 virtual-chassis.
This commit falls back to using rewrite_junos_hardware()
if the "Juniper Virtual Chassis Switch" string is detected
in boxDescr, resulting in usable hardware data.
Caveat - it's possible to build a virtual-chassis of
multiple switch models, but only for higher end hardware:
https://www.juniper.net/documentation/en_US/junos/topics/concept/virtual-chassis-ex4200-overview.html#jd0e75
Example SNMP output:
mschmidt@nlrtm1-librenms1:~$ snmpwalk -v2c -cremoved -m JUNIPER-MIB -M /opt/librenms/mibs hostname jnxBoxDescr
JUNIPER-MIB::jnxBoxDescr.0 = STRING: Juniper Virtual Chassis Switch
Also reported previously via the community forums:
https://community.librenms.org/t/pr-9546-results-in-junos-platform-detection-quirks-in-combination-with-virtual-chassis/6537
* update some mibs
* extend snmpwalk_cache_twopart_oid function
* add raisecom dbm and temperature sensors
* add test data
* add some more sensors
* Update raisecom.inc.php
* Update raisecom.inc.php
* Updated DataDomain MIB, Added DataDomain Storage poller and discovery
* Fixed issues pre-commit issues
* Removed extra blank lines
* Make polling less redudant
* Remove blank line
* Remove device os detection since it's not needed. Add test data for DataDomain
* For better compatibility, we will check if the $index is null prior to adding the storage
* Fix: is undefined...
* Update datadomain.inc.php
* Update datadomain.inc.php
* Fix Sentry3 voltage sensor discovery
Previous fix broke voltage sensor discovery with superfluous .1 in the SNMP OID. I have fixed my install with this patch but other testing should probably be done.
* Update sentry3.json
* Adding Sonicwall SMA 400 support
* Added metric clients for use in SSL VPN client alerting
* Support for specifying multiple sensors for clients metric
* RAM info supported
* CPU info supported
* Added test data
* Dashes in graph aren't really useful
* Updated test data with script from upstream (#10)
* Fix style errors (#11)
* Now 8 spaces on line 56
* port clients sensor to count
Some sensor cleanups (move all icon definitions to one spot)
* update port data
* add sensor test data. Make a guess at userLicense output since it is missing.
* cleanup missed items
* typo
* Updating test data
* Fixed missing CPU info
* Recreated test data
* Recreate test data after rebase
* Test data without ignore statements in config
* Fix some comment and documentation typos.
* Fix various entphysical page display issues.
- Resolve flickering during loading (missing liClosed for nested items).
- Clicking a sensor actually takes you to the matching graph now.
* Add a few nicecase() calls to clean up html page display.
* Create discover_entity_physical() function
- Add discover_entity_physical() function into includes/discovery/functions.inc.php
- This allows for an easy implementation of OS-specific entity-physical discovery.
- Update includes/discovery/entity-physical/entity-physical.inc.php to use the new function.
* Add power_consumed and power_factor sensors.
* Two new icons, make more entPhysical data visible.
* Pre-commit fix: blank line found at end of control structure.
* Add Schleifenbauer OS support.
* Now really fix the comment typo.
* Fix parsing mistakes.
* Add a generic count sensor.
* Make the Schleifenbauer discovery use count instead of state sensors.
* Don't place count sensor at the top, add sane limits for Schleifenbauer
* Finetuning the rrd_options, changing Schleifenbauer sensor names.
* Update schleifenbauer.svg
* optimize logo too
* add test data
* fix sensor value display (spaces break it)
* update entPhysicalIndex
* fix_if_discover
* Update ports.inc.php
* Fixed overwriting IfDescr and IfAlias overwriting
* removed whitespace
* added ifname, ifalias and ifdescr copy if it is emtpy or null
* removed ifAlias from update to prevent overwrite
* removed ifName and ifDescr from update to prevent overwrite
* added is_port_valid before doing copy actions between ifDescr,ifAlias&ifName also added back ifDescr&ifName update
* Update ports.inc.php
* Update functions.php
* Update ports.inc.php
* Update exa_e7-2.json
* Update fortigate.json
* Merge ethernetprobe2 into akcp and improve akcp
Use higher resolution temperature values if available
Properly hand F/C temperature scales (LibreNMS always uses C)
Add current, voltage, airflow (no test data)
Move humidity to yaml
* Update akcp.snmprec
* Update akcp-serverprobe8.json
* Add group
* Update test data
remove old MIB
* add group to sensor initial discovery and use dynamic_discovery_get_value template syntax on them
* spaces
* switching to YamlDiscovery::replaceValues
* testdata from ibmc
* testdata from nxos
* testdata from omnitron-iconverter
* testdata from vrp
* adapt discovery_schema to accept variables
* remove pattern
* Update discovery_schema.json
Improves visual identification for sensors
- [x] Docs
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
After you are done testing, you can remove the changes with `./scripts/github-remove`. If there are schema changes, you can ask on discord how to revert.
Discovers 2 of 6 found in the test data then updates it to not match.
Setting the wrong oid.
Tracking two specific macs on a single AP that don't match the label.
If they roam it won't change until next discovery.
If this is wanted, it should be written in the wireless section.
* Fix Zynos temp warn limit
And others, but this seems to be the only one that uses
remove some odd limit restriction in the poller
* More consistent rounding for sensor limits
* round all numeric limits to 10 digits
* update test data
* Remove complex calculation as negative limit values are already swapped as needed.
* ZyXEL XGS4600-32F
- Added mib for diagnostics
- CPU/Mem
- Temp/Fan/Voltage
- Updated zyxel group mempools
- Updated test data
- snmprec
- json
- Altered ZyWall
- To exclude XGS switches
* Defined ZYXEL-HW-MONITOR-MIB at the top of file
* Removed .MIB
* update some mibs
* add virtual router ports
* coding style
* refactor
* some refactoring
* some typos
* add snmprec
* Fix capturing VRF entries with no ports
* updated test data
* manually fix test data
Not going to try to fix the data capture for backslashes at this time.
* Revert "manually fix test data"
This reverts commit 2c98450706.
* timos data for net-snmp 5.7.3 ?????
* Updated dlink support with additional health,mempools and processors
* Update dlink.inc.php
* Update dlink.inc.php
* Added test data
* add tests/data/dlink_dgs-1510-28.json
* actual data for the new items
hopefully doesn't break anything
Mostly issues with snmp oids and options containing spaces. Try to remove all of those.
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
After you are done testing, you can remove the changes with `./scripts/github-remove`. If there are schema changes, you can ask on discord how to revert.
* Adding ifType to base_oids
* Improve discovery (update ifType) and polling (save ifType)
* Updated test data
* Updated json test data
* vlan isn't filtered by default :P
* With default ignored ports
* Update newer test data
* Update to Added support for HeliOS 10Ghz failover to 5Ghz state sensor
Converted /includes/discovery/sensors/state/helios.inc.php to yaml
Test units included
CLA has been signed
* Added support for CeraOS TX Mute Status state sensor, NTP Client Lock Status state sensor.
Updated CeraOS temperature sensor, now called from includes/definitions/discovery/ceraos.yaml - removed includes/discovery/sensors/temperature/ceraos.inc.php
Corrected issue with CeraOS temperature reverting to zero after polling (added a trailing . to the num_oid)
Amended includes/definitions/discovery/helios.yaml with changes as advised by Neil Lathwood and Tony Murray
* Added unit test data and corrected ceraos.yaml validation error
* Added support for Ceraos Wireless Sensors (php)
Cross Polar Interference
Wireless Frequency
Added Ceraos state sensors (yaml)
NTP Client Lock Status
Tx Mute Status
Radio Operational Status
Remote Radio Operational Status
IDU Temperature
Power Amplifier Temperature
* Fix up tests, etc
* remove helios changes, fix style
* Use of dynamic_discovery_get_value in can_skip_sensor in order to use all available oids in skip_values
* Use LibreNMS\Device\YamlDiscovery code instead of keeping duplicated function can_skip_sensor
* Fix Travis errors
* Added support for SAF CFM L4 wireless device
* Added copyright statement according to LibreNMS documentation
* Added snmp test data and excluded some discover modules from os definition
* Style issue fixed
* More descriptive function
* MIB file rename
* Rename MIB file and change other files accordingly
* Added test data
* Removed debug statement
* Last checks
* Style changes
* Style changes
* Style changes
* Style changes
* Code restructure to make it more readable
* Fixed error in foreach
* Style issues
* Formatting of states within Yaml changed to make it more readable
* Omit default arguments
* Better code and modules only in CFM-M4P-MUX
* Chaged cfml4 to cfm
* Update Sensor.php
* Update Sensor.php
* Better handling of scientific numbers
* Better handling of scientific numbers
* New test data
* Correction on handling trailing zeros
* Different way of cleaning the numbers based on Tony's input
Changed the Temperature High threshold for a HPE Comware Switch to the values provided by snmp.
This means the actual threshold configured in the switch is used over any predefined/auto calculated thresholds by LibreNMS.
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
After you are done testing, you can remove the changes with `./scripts/github-remove`. If there are schema changes, you can ask on discord how to revert.
Require it explicitly. Makes it easier to understand and matches the style of other values
Questionable YAML changes (either broken before or now broken):
secureplatform: haStatCode
ptp600: receiveModulationMode
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
After you are done testing, you can remove the changes with `./scripts/github-remove`. If there are schema changes, you can ask on discord how to revert.
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [X] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
After you are done testing, you can remove the changes with `./scripts/github-remove`. If there are schema changes, you can ask on discord how to revert.
Tested on MX and EX series, works fine.
Skip slots that are empty and pull all sensors in jnxFruTable, data from old code is preserved.
* New os Eltek WebPower - files + test files
* OS eltek-webpower - minor fix to mib query.
* OS eltek-webpower - sensor and state data improvements.
* OS Eltek Webpower - Created battery symmetry test and battery bank delta voltage support.
* OS Eltek Webpower - symmetry code fix.
* OS Eltek Webpower - symmetry code fix.
* OS Eltek Webpower - symmetry code fix.
* new os eltek - rectifier state fix
* Updated json test data
* Update eltek-webpower.json
* Update eltek-webpower.yaml
* Update eltek-webpower.yaml
* Adjustment in #9301: Eaton Galaxy HW seems to be the exception here with divisor 10 for voltage
* fix for APC Galaxy UPS (and not Eaton anymore)
* remove Galaxy test data from eaton-mgeups files
* tests: APC Galaxy 7000 test data
* update os polling for ray
I changed hardware detection, because in old format i got a hostname instead of hardware. I added features tab also.
* Added wireless rate sensors
I added sensors for Netbitrate and Maxbirate
* deleted old ray.png
* added better resolution logo for ray
* Update Ray.php
* Delete ray.png
* Add files via upload
* Delete ray.svg
* added ray.svg logo
* update ray.snmprec
* Update Ray.php
* Updated json test data
* added state support for RAy Radios
* Update ray.snmprec
* netagent2 - 3Phase UPS support
* Revert "netagent2 - 3Phase UPS support"
This reverts commit 7900bc5bc0.
* OS netagent feature update - 3 phase support
* OS netagent2 update - 3phase support code cleanup
* OS netagent2 update - 3phase support code cleanup 2
* Netagent2 - Add status unknown to smoke and water states.
* NetAgent2 - changed detection method like murrant suggested.
* netagent2 - XPPC-MIB - 3 phase states support
* Added json test data
* MGE: Improve support for Galaxy devices
* MGE: Improve support for Galaxy devices
* MGE: Improve support for Galaxy devices
* rfc1628 adaptations for Eaton MGE Galaxy 7000
* eaton-mge: test data on a Galaxy 7000
* rfc1628 adaptations for Eaton MGE Galaxy 7000
* rfc1628 adaptations for Eaton MGE Galaxy 7000
* eaton-mgeups: test data on a Galaxy 7000
* Add upsmgUtilityFailure and upsmgUtilityRestored trap support for eaton-mgeups
* dev: eaton-mgeups: OID in the dynamic definition for discovery
* dev: eaton-mgeups: cleaning
* add contributor
* add contributor
* Updated DataDomain MIB, Added DataDomain Storage poller and discovery
* Fixed issues pre-commit issues
* Removed extra blank lines
* Make polling less redudant
* Remove blank line
* Remove device os detection since it's not needed. Add test data for DataDomain
* Added json test file
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
NOTE: Those devices come all with same `sysName` so `$config['allow_duplicate_sysName'] = true;` is needed to have more than 1 working.
* fixing sentry3 temperature sensor issues: read all sensors not just first two, fix reading limit and current values, fixing snmp get options
* fixing sentry4 temperature sensor issues: read all sensors not just first two, fix reading limit and current values, fixing snmp get options
* fixing code style issues
* addressing review items from murrant, removing individual snmp_gets, fixing fahrenheit to celcius code back
* addressing review items, putting back the celcius fahrenheit conversion logic back
* using snmpwalk_cache_oid instead of reinventing in sentry3 code
* using pre-cache for sentry4 temp sensors, addressing review items
* checking all sentry3 humidity sensors instead of first two, bulk reading instead of individual gets
* addressing style issues
* pre-caching sentry4 humidity warning table removing duplicate temp sensor event config table
* adding two more sentry snmprec files after temperature and humidity sensor updates
* making sensor index values for sentry3/4 unique
* adding sentry3 and 4 test data files after temperature and humidity sensors update
* Feature: Collect VRP Entity details in the Huawei MIB
* Feature: Collect VRP Entity details in the Huawei MIB - Add Test Data
* Renaming of the test file vrp_5720_vrf.snmprec
* Added json test files
* Update vrp_5720_vrf.snmprec
* Update vrp_5720_vrf.snmprec
* Update vrp_5720_vrf.json
* Updated processor and mempool discovery to limit descr field
* Updated test
* Updated tests again
* Updated json test data
* Update vrp_ce12804-entity.json
* Update vrp_ce12804-entity.json
* Update vrp_5720_vrf.json
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [X] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
In SmartAX MA5683T/MA5603T Starting index for Per Card power starts in '0' instead '1'. '0' was also the index for Total Chassis Power.
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [X] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
Most were fine as they hardcoded the in into the query.
Change them all to use PDO properly.
Did not fix IRCBot, they are are all hardcoded.
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
An exception in one module should not interrupt the process for other modules.
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
* Improved SmartAX OS support. Added CPU&Temperature for each card and hardware detection
* Minor fixes
* Uploaded test data
* Moved to snmpwalk_array_num()
* Fixed Temperature
* Added sensor power
* Fixed Style issues and proper hardware detection
* Fixed last style issue
* Last update. Added version and serial. Added traffic and processors mini graphs
Fix for issue #8950
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [ ] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
* Added Arris C3 to cmts.yaml
* Added Arris C3 hardware
* ARRIS CMTS->Move from cmts to arris_c4 yaml
* Fixed some Arris_c4 definitions
* Added Arris C3 CMTS
* Fixed some typos
* Arris C3 test files
* Arris C4 test files
* Deleted not anymore valid files
* Renamed from underscore
* Fixed some typos
* Correct test files
* Removed old snmprec files
* Correct test files v2
* Deleted more old files
* Return to cmts for valid_sensor() for Arris C4/C4c
* Re-done test files
* Re-do test files after rebase
Added discovery for state of serverscheck flooding sensors.
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [X] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
fix#8755
I have not added test data as it would require filterting quite some LLDP/IP's etc information.
Use Log facility when Laravel is booted.
Update init.php so we can easily boot Laravel for CLI scripts. (and just Eloquent, but that may go away)
Move all debug setup into set_debug() function and use that across all scripts.
Log Laravel database queries.
Send debug output to librenms log file when enabling debug in the webui.
Allow for colorized Log CLI output. (currently will leave % tags in log file output)
** Needs testing and perhaps tweaking still.
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
Mostly useful for debugging
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
Currently has a file handle leak (and will eventually run out of handles) related to the self update process.
Either need to fix that or rip out self-update and leave that up to cron or something.
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [X ] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
This is a fix for #8746, which added support of SFP module discovery on Procurve devices. I noticed a lot of false positive alerts for current bias when we launched this in production, so looked once more through MIB/code.
MIB data:
hpicfXcvrBias - Tx bias current in microamps
hpicfXcvrBiasHiAlarm - Transceiver bias high alarm threshold limit in microamps
hpicfXcvrBiasLoAlarm - Transceiver bias low alarm threshold limit in microamps
Sensor discovery sample:
hpicfXcvrBias.49 = 23254
hpicfXcvrBiasHiAlarm.49 = 100000
hpicfXcvrBiasLoAlarm.49 = 0
hpicfXcvrBiasHiWarn.49 = 90000
hpicfXcvrBiasLoWarn.49 = 100
So yes, my mistake was to use 10^-7 instead of 10^-6 divisor for these fields. Fix is in this pull request. Sorry for the inconveniences caused.
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [ ] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
Current implementation for Force10 series doesn't support the switch-blade M-Series model. This PR adds support for mempools and temperature. In my test environment (still 1.31) I have processors utilization support as well, but I have to test that in the new way processors are handled since 1.37
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
* Add vrf for non mpls cisco devices, add mib and test data
* Fix custom_where in vrf module
* Better VRF module test data collection
* Update ios_6500.json
* don't include ifVrf in ports
* update all ports add dependencies to pre-commit.php
* new json files
* Adding VRP support for FDB table using HUAWEI-L2MAM-MIB
* Test data + review corrections
* Test data correction
* Remove double text
* PHP EOL at the right spot
* Rename vrp_5720.fdb.snmprec to vrp_5720.snmprec
* Update vrp_5720.snmprec
* Create vrp_5720.json
* Update vrp_5720.json
* Update vrp_5720.json
* Fix fdb query, test data, and mibs
* fix OIDs for temperature sensor and add test data
* Add current values to discover sensor and test data
* Redo test data
* Split up power/current/voltage sensors to individual files and remove json data
* Whitespace fix
* Fix temperature sensors - spelling mistakes
* Code changes to voltage/power/current sensors
* Go to yaml, add mibs and json
* Add netspire os support
* Update netspire.yaml
* Change from numerical oid to regular oid and readd poller/discovery modules
* Remove mib_dir and change os polling
* Add support for Allied Telesis AlliedWare Plus products
- Uses mibs from 5.4.7-2.1 for AlliedWare Plus products
- Updates Legacy AlliedWare mibs
- Added Allied Telesis svg
* Remove unnecessary "trim" from snmpget
* Add new line to end of file
* Minor fixes for commit
* awplus: initial ntp commit
This isn't completely working, however initial patch of it partially working
* awplus: Add NTP support
- Fixed polling issues for awplus. Now offset and delay graphs work.
- html/includes/graphs/device/ntp_*.inc.php
-- Removed extra "\" from MAX count which showed up in Graph legend
- html/includes/graphs/device/ntp_delay.inc.php
-- Present legend in either seconds, or milliseconds (depending on vendor)
- html/includes/graphs/device/ntp_dispersion.inc.php
-- Present legend in either seconds, or milliseconds (depending on vendor)
- html/includes/graphs/device/ntp_offset.inc.php
-- Removed rrd minimum (-l 0). This is because offset can be below 0.
--- It's better for the graph to auto scale than set a fixed minimum to display here.
- html/includes/graphs/device/ntp_stratum.inc.php
-- Changed graph to go from 0 to max of 16. NTP Stratum can only be 0 to 16.
* awplus: Add NTP test data
* updated awplus ntp poller
* device: awplus convert NTP poller into seconds
* device: fix NTP graph formatting
* device: Improve NTP formatting
* device: unset awplus NTP variable
* fix formatting
* device: awplus change NTP from numerical OIDs to named
* device: update awplus ntp json tests
* device: fix cisco and awplus ntp database creation
* device: update awplus json
* Fix Q-BRIDGE-MIB VLANs
Properly handle dot1qVlanTimeMark index (by ignoring it instead of assuming it is 0)
Adds test data for at least one device that uses Q-BRIDGE-MIB.
Fixes: #8516
* fix whitespace
* remove unused variable
* Update boss.inc.php
Another easter egg for the rebranding of voss and boss. Lost the memory usage. Modifying allowed the voss and boss to graph memory again.
* Update voss.inc.php
Another easter egg for the rebranding of voss and boss. Lost the memory usage. Modifying allowed the voss and boss to graph memory again.
* Rename voss.inc.php to avaya-vsp.inc.php
* Rename boss.inc.php to avaya-ers.inc.php
* Update voss.inc.php
* Update boss.inc.php
* changed limit values in routeros.yaml to allow for the divisor value of 10
* changed the code so divisor/multiplier is only used for oids
* updated json test file
* Update avaya-ers.yaml
Extreme bought avaya network assests so rebranding and moving some files.
* Add files via upload
Extreme bought avaya networking assets and so rebranding to Extreme and adding logos with OS for easier reading when on devices pages
* Update avaya-vsp.yaml
removing .1.3.6.1.4.1.45.3.79.1 This is a VSP 7024xl from avaya. This is techincally not VOSS but BOSS operating system. It should be in BOSS and avaya-ers.yaml
* Add files via upload
* Update and rename avaya-vsp.inc.php to extreme-voss.inc.php
* Update and rename avaya-vsp.inc.php to extreme-voss.inc.php
* Update and rename avaya-vsp.inc.php to extreme-voss.inc.php
* Update extreme-voss.inc.php
* Rename avaya-vsp.inc.php to extreme-voss.inc.php
* Rename avaya-vsp.inc.php to extreme-voss.inc.php
* Rename avaya-vsp.yaml to extreme-voss.yaml
* Update and rename avaya-vsp.yaml to extreme-voss.yaml
* Update avaya-ers.yaml
* Rename avaya-ers.yaml to extreme-boss.yaml
* Rename avaya-ers.inc.php to extreme-boss.inc.php
* Update and rename avaya-ers.inc.php to extreme-boss.inc.php
* Update and rename avaya-ers.inc.php to extreme-boss.inc.php
* Update and rename avaya-ers.inc.php to extreme-boss.inc.php
* Update and rename avaya-ers.inc.php to extreme-boss.inc.php
* Update and rename avaya-ers.inc.php to extreme-boss.inc.php
* Update extreme-boss.yaml
* Update extreme-voss.yaml
* Update and rename extreme-boss.yaml to boss.yaml
* Update extreme-voss.yaml
* Rename extreme-voss.yaml to voss.yaml
* Rename extreme-boss.inc.php to boss.inc.php
* Rename extreme-voss.inc.php to voss.inc.php
* Rename extreme-boss.inc.php to boss.inc.php
* Rename extreme-voss.inc.php to voss.inc.php
* Update and rename extreme-voss.inc.php to voss.inc.php
* Rename extreme-voss.yaml to voss.yaml
* Rename extreme-voss.inc.php to voss.inc.php
* Update and rename extreme-voss.inc.php to voss.inc.php
* Update and rename extreme-boss.inc.php to boss.inc.php
* Update and rename extreme-boss.inc.php to boss.inc.php
* Update and rename extreme-boss.inc.php to boss.inc.php
* Rename extreme-boss.inc.php to boss.inc.php
* Update voss.inc.php
* Update boss.inc.php
* Update boss.inc.php
* Update voss.inc.php
* Update voss.inc.php
* Update voss.inc.php
* Update voss.inc.php
* Update voss.inc.php
* Update voss.inc.php
* Update boss.inc.php
* Update boss.inc.php
* Update voss.inc.php
* Update boss.inc.php
* Update voss.inc.php
* Update voss.inc.php
* Rename avaya-vsp_8404c.snmprec to voss_8404c.snmprec
* Rename avaya-vsp_8404.snmprec to voss_8404.snmprec
* Rename avaya-vsp_8284xsq.snmprec to voss_8284xsq.snmprec
* Rename avaya-vsp_7254xtq.snmprec to voss_7254xtq.snmprec
* Rename avaya-vsp_7254xsq.snmprec to voss_7254xsq.snmprec
* Rename avaya-vsp_7024xls.snmprec to boss_7024xls.snmprec
* Rename avaya-vsp_4850gts.snmprec to voss_4850gts.snmprec
* Rename avaya-vsp_4850gts-pwr.snmprec to voss_4850gts-pwr.snmprec
* Rename avaya-vsp_4450gsx-pwr.snmprec to voss_4450gsx-pwr.snmprec
* Rename avaya-ers.snmprec to boss.snmprec
* Rename avaya-ers_1.snmprec to boss_1.snmprec
* Update and rename avaya-ers.json to boss.json
* Update and rename avaya-vsp_8404.json to voss_8404.json
* Update and rename avaya-vsp_8404c.json to voss_8404c.json
* Update and rename AvayaErs.php to Boss.php
* Update Boss.php
* Restore processor_type to avaya-ers in test data
* Update voss_8404c.json
* Update extremeboss.svg
* Update extremevoss.svg
* fix: Apply divisor / multiplier to high/low limits in sensors
* Updated test data for airos
* updated sensors test data
* Updated test data
* Updated test files
* updated dell-rpdu tests
* Updated to do division / multiply after check for value
* Moved temperature sensor to yaml
* Enabled sensors , it's working now
* Enable mempools and disable unused wireless discovery.
* Tests for fiberhome OS, variants can be merged on future
* Add Listmile mibs
Created custom lastmile mib
* Add Lastmile CTM support
* Update test description and remove wireless sensor
* Requested changes
Renamed OS
* json test data
* Updated test data
* updated discovery method
* added LF at EOF
* changed discovery data gather to an array loop
* updated per murrant's suggestions
* updated to only poll attribues if objects exist
* AeroHive 001
* AeroHive 002
* AeroHive 003
* Removed duplicate HiveOS for OS
* Added AP550 detection
* changed to Hiveos-Wireless
* changed back to HiveosWireless. Hiveoss-Wireless doesn't work
* changed back to HiveosWireless. Hiveoss-Wireless doesn't work
* Added Processor Usage.
* Added Mempool.
* working on review requests 001
* working on review requests 002
* stuck on radio stats
* WirelessSensor.php added channel 165
* Added AP250 snmprec
* Frequency work in progress.
* Frequency trying another way.
* Frequency trying another way 002
* Fixed AH-SMI-MIB? Added array try 003
* Frequency array is working thanks to Murrant.
* Frequency array description working.
* Added TX Power
* changed interface naming method
* Review changes 001
* Review changes 002
* Review changes 003
* Added json test data.
* Fixed test data 001.
* fix: Fixed and improved toner discovery
* Update konica data
xerox tries to insert too long of descriptions. Lets remove the part and serial number, they are ugly to look at in the ui.
* Changed to concat 32bit high.low counters
* Changed to concat 32bit high.low counters
* Correction. Needed to bit shift.
Correction. Needed to bit shift << 32 on high and add low.
* Correction. Needed to bit shift.
Correction. Needed to bit shift << 32 on high and add low.
* Added storage removed processor and memory
No point in processor and memory until nimble supports it. Added stroage to overhead.
* Fixing HP Proliant state sensors
* Numeric state data (-e)
Update to new state style
This currently cannot be tested. We don't discover sensors until the second discovery, because we poll 'hardware' instead of discover it.
* Fix whitespace
* Add contact,relay,outlet discovery; update yaml,snmprec,json
* Fix formatting
* Another attempt at fixing sensors
* Update state mappings and fix json sensor ordering
* Capture values numerically.
Remove extra if/else statement
Make test data more interesting.
* Fix whitespace.
* Update sensors test data for order_by
Default behaviour is to set low limit to (current temperature - 10 deg) and high limit to (current temperature + 20 deg) upon discovery. Changing that to abs values +5 and +35 deg respectively to be in realistic boundaries.
* Add Errors, NoiseFloor, RSSI, SNR and Utilization Wireless Sensors for ewc
* Enable processor/mempool support for ewc using existing enterasys implementation
* Add test data
* Added snmp mibs from vendor (https://www.hillstonenet.com)
* Added memoery discovery and pool
* Added serial and os version discovery.
* Added cpu discovery.
* Added temperature and power sensors
* Added test data.
* Fix yaml format.
* Pass mib name as parameter.
* Pass mib name as parameter.
* Use numeric OID
* User snmp_get_multi_oid
* Use snmp_get_multi_oid
* Remove default extension from vendor.
* Update test data.
* Renamed some mibs + changed oid in disco proc
* Updated json test data
* Update processor discovery to yaml
* Update awplus to new processor discovery
Have no test data, so this needs testing.
* Updated YamlTest to include data as optional param for processors
* Extract DiscoveryItem and move some things to better places.
Extract model class
Fix up model construction. I have problem with construction...
Makeshift model working. Switch constructor to factory. discover() and create()
Support legacy discovery.
Remove uneeded custom pollers
Remove netonix custom detection as we try ucd on all os now.
Add a few yaml procs. Fix a couple things.
More processor discovery conversions
Move Calix e7 to standard hrProcessorLoad, but it doesn't fully implement the HR-MIB, move things around to make it work.
Add a few yaml procs. Fix a couple things. Correct some stupid mib stuff.
Move more, drop php 5.3
Add netscaler which uses string indexes. Port fiberhome to yaml and use skip_values
More conversions. BroadcomProcessorUsage Trait
Serveriron and Ironware share some mibs. Create a common abstract os for them.
Add yaml support for mib specification in each data entry
Make legacy discover_processor() set 0 for hrDeviceIndex
Untangle Dell switch OS processors
Use use shared OS for groups if they don't have a specific group.
fix silly mib mistake
Make index optional
Move HR and UCD to Traits and out of Processor.
* forgot to update the fortiswitch index
* Make sgos and avaya-ers match the old index.
* fix comware test data
* fix merge errors
* fix dsm and remove pointless empty modules
* file not found exception is in the wrong place.
* Updated processor development docs
* initial
* commited correct version of f5-ltm-inc.php
* cleaned up comments
* cleaned up formating for travis
* split GTM discovery from LTM discovery module
* removed blank line at EOF
* updated per comments
* refactor: Move more state sensors to yaml
* Fix errors..
* Update comware.yaml
* Update ddnos.yaml
* Update dell-ups.yaml
* Update mimosa.yaml
* Update waas.yaml
* added some test data for comware and dell-ups
* added mimosa test data
* re-saved comware test data
* set arp-table sort order.
remove unneeded modules from mimosa
* remove arp-table it doesn't work yet
* remove deleted sensors and mempools (which have no snmp data)
* Added Dlink MIBS, memory polling and temperature polling for some devices
* Added Dlink MIBS, memory polling and temp polling for some devices
* Update dlink.yaml
Changed values as per laf's request.
* Update dlink.inc.php
Updated date
* Update dlink.inc.php
Deleted line as per laf's request.
* bgp-peers update
Use IP parsing library more effectively.
Fix update issue
Include comware bgp-peers test data
deeper refactoring
Allow JunOS fallback to BGP4-MIB, some models only use that.
Add junos bgp4 data
Actually update all bpg data in the poller
* fix arista data. refactor some to prevent missing data from mucking things up
* refactor to use $oid_map for BGP4-MIB too
* A few comments to break up teh file a bit
* Junos bgp data an a quick revert for now.
* small cleanup
* fix ios bgp polling, add test data
* check the correct variable
* move routeros fanspeed to yaml
* moved more routeros sensors to yaml
* reverted signal migration to yaml
* added routeros test data
* re-saved test data for routeros
* Added cpu and mempolls EdgeCore switch
* Added cpu and mempolls EdgeCore switch
* Added cpu and mempolls EdgeCore switch
* Added cpu and mempolls EdgeCore switch
* Added cpu and mempolls EdgeCore switch
* Added cpu and mempolls EdgeCore switch
* Update edgecos.inc.php
* Add files via upload
* Create test.txt
* Add files via upload
* Delete test.txt
* Add files via upload
* refactor: Updated discovery to use a core module for sysDescr/sysObjectID use
* final update hopefully
* revert changes
* more changes + docs
* migrated poller to use numerical sysObjectID
* more updates for sysObjectID
* update any alert rules which might have enterprises. in
* moved schema file
* small updates
* updated getHostOS()
* scrut fixes
* updated sysObjectId -> sysObjectID
* updated sysObjectId -> sysObjectID
* updated remainder of sysObjectId -> sysObjectID
* another sysObjectId -> sysObjectID
* fixed secureplatform test data
* Fix tests: $device is not pulled from the database before polling
Also, update the db in the core discovery module.
* Added CheckPoint SecurePlatform support
* Changed some issues
* Changed some issues
* Update splat.yaml
* Changed os name to secureplatform intead of splat
* Changed os name to secureplatform
* Changed some issues
* Processor Tests!
* Capture data from live devices easily.
* fix up some stuff, remove powerconnect things as they seem to be just broken.
* formatting, fix missing assignment
add netonix processor data
* fix multi-line, always add sysDescr and sysObjectID
ios cpm test file
* revert composer change and fix whitespace issues
* add help text
* missed help text
* tighter debug output
* handle empty strings properly and mibs with numbers
* use keys for sorting as intended
* fix type with empty data
* oops :)
* whitespace fix
* try installing fping
* Fix TestCase collision + cleanup
* mark TestCase as abstract
don't run two instances of snmpsim
* better database dumps, improved capture
* style fixes
* fix quotes add a few more tables
* add --prefer-new, properly merge data
* Support separate discovery and poller data. But don't waste space if they aren't needed.
* refactor to use class
collects all code in one place for reusability
* reorganize
* Print out when not saving.
* Support for running multiple (or all) modules at once.
* tidy
* Change unit test to a generic name and test all modules we have data for.
* Add documentation and a few more tidies
* whitespace fixes
* Fix tests, add a couple more modules, more docs
* More docs updates
* Fix scrutinizer issues
* add bgp-peers
* Junos dwdm interface sensor support …
four new sensors
Chromatic Dispersion ps/nm
Delay s (seconds)
Q_factor (dB)
preFEC_BER (ratio)
reuse of
SNR, dbm, temperature, current
* new dwdm sensors more generic, ber and quality_factor
* new sensors updated
* renamed html graphs new sensors
* fixed ber polling
* Change to base SI Hz and s.
* update sensor divisors to bigint
* rename sql-schema/216.sql to 218.sql
* YAML junos dwmd sensor definitions, except BER
* bigint divisor fixed
* deafult 1 divisior
* small fixes including schema change for another PR
* schema fix
* Replace custom queries with dbDeleteOrphans().
Generalize dbDeleteOrphans() a bit more. Allow for multiple tables and custom key pairs.
* fix whitespace
* Inital cambium refactor
* Refactored tests
* Remove CMM from pmp group
* Add sensors / Give CMM individual OS
* Fix linting
* More Sensors / states and Revised Headers
* Added old graphs / more sensors
* Add modulation rate to sensor
* Fix Hardware detection bug
* Further hardware detection refinments
* Modify pmp hardware detection
* New Wireless Metric - SSR
* SSR Sensor Graph
* Migrate SSR to metric
* Added last metric file
* Add master check to isAp method
* Fix variables in epmp
* CMM Discovery and state addition
* Add another test for cmm
* Don't do uneeded snmp queries
sensors discovery 26 -> 16
wrapped some poller modules in db checks. The same could be done for some others, but more work is needed.
* travis fix
* Entity state sensors??
* feature: Entity State polling
Display entity state on the Inventory page.
Allows for alerting based on states.
* fix empty last changed, timezones, alarm parsing, and db updates
* do not display unavailable alarms (80)
add tooltip with state value
* remove debug
* Entity state sensors??
* feature: Entity State polling
Display entity state on the Inventory page.
Allows for alerting based on states.
* fix empty last changed, timezones, alarm parsing, and db updates
* do not display unavailable alarms (80)
add tooltip with state value
* remove debug
* Use a discovery module and only fetch the rest of the data if entStateLastChanged is updated.
* A little more efficient sql use in the case nothing has changed.
* disabled by default, add to docs.
* moved schema file to 220.sql
* feature: save application metrics to db for alerting
However, alerting will not work because ResolveGlues() is broken.
Can add workaround after state_translations alerting is merged
Does not update all applications yet, not sure if that should be done here or in another PR.
Introduces two handy functions dbDeleteOrphans() and array_by_column(). Will replace those in other locations after this is merged or separate them out if this is not merged.
* remove accidental inclusions
* Add db schema
* added comments describing changes needed to be implemented
* Added patch by laf to update the underlying function, modified OID value in yaml to poll string instead of integer
* Second patch to discovery function peer laf/murrant
* fix: use typical Mikrotik operating range for default temperature sensor limits.
* fix: Use static offsets for default temperature limits. Previous scaling did not work well for small or negative values.
* Initial commit. OS definition/polling, temp sensor discovery/polling, MIBs, logo, snmprec test
* replaced logo with 32x32, shortened sysObjectID in definitions, modifided sensor discovery
* fix syntax error caught by inspection
* requested chases to siteboss temp discovery file, removal of siteboss temp polling file
* converted temp sensor to yaml and added better support to skip values
* updated to use pre_cache with index
* newdevice: support Avtech RoomAlert 32E/W
Move avtech discovery to yaml, took a bit of trickery
* More flexibility when checking pre-cached data
A little cleanup
* Add support for RoomAlert 32E/W external and wish temp sensors
Add RoomAlert 11E support (just temp sensors)
Updated ROOMALERT32E-MIB
* fix: devices detected as ibmtl
Guess at the sysObjectID, please report if you have devices that should be ibmtl and are no longer detected.
Add output of os in discovery.
* Always load all os for discovery. Should be cached most of the time.
* feature: Allow snmpget in os discovery yaml
Re-submit after release
* Remove extra trim in discovery and in snmp_get.
also trim() always returns a string, so is_string() check is a waste of cpu cycles.
* Changed the NetIron checking logic from sysObjectID to sysDescr
* updated method of checking sysDescr in ironware mempool files
* Update ironware-dyn.inc.php
Order statements to give some results precedence over others.
Union the results but limit 1 so we can stop when we get the first result.
Checking if variables doesn't work very well without the device_id
* Added support for ping only devices.
* Renamed sql-schema/206 to 207.
* Discovery tried to detect the OS when it shouldn't.
* Updated db_schema.yaml
* Added ping icon.
* Don't show unused graphs and tabs when SNMP is disabled.
* Allow the user to specify OS of ping only devices.
* Removing custom OS now changes it to 'ping'.
* Removed unnecessary use of mres().
* UI select box for SNMP enable/disable.
* Hide device_ping_perf if ping is disable on device.
* Fixed SNMP settings update status messages.
* Added functionality to add ping only devices via the web ui.
* Added ping only option to addhost.php
* Added ping only support to snmp-scan.py
* Moved sql 208 to 211
* Fixed scrutinizer issues.
* Fixed broken ossearch.
* Added ping only support to the API.
* Updated API doc.
* Added (optional) to OS and hardware description. Hid Port Settings, Applications, Modules, Storage, Processors, Memory and Components from the edit menu
* Style fix.
* Updated ping icon.
* clean() instead of mres(). More escaping. Better help in snmp-scan.py and addhost.php
* Fixed scrutinizer issue.
* Always try SNMP in snmp-scan.py, new option for it in addhost.php. Slice instead of chunk in ajax_ossuggest.php. Other minor style changes.
* Updated sql modifications to insert the new column in the same place as in db_schema.yaml.
* feature: Allow snmpget in os discovery yaml
Convert all remaining os except airos.
Affected OS: asuswrt-merlin, ddnons, dsm, extrahop, huaweiups, ibmtl, pcoweb, pktj, qnap, remoteeye4, sentry3, sentry4, tomato
There should be not change in detection.
* Fix, asuswrt-merlin and tomato with snmpsim. May not have been an issue with actual devices because of -Oa leading " was a bit odd.
* missed file
* Fix Moxa cpu polling problem, also add support for EDS-G508E, and power graphs
* Dynamic discovery support for EDS-G508E-T and IKS-6726A-2GTXSFP-T
* fixes as requested
* Added another snmp_cache_multi_oid and fixed a typo
* Revert back to old file name
* fix: lldp discovery change local port resolution
dot1dBasePortIfIndex seems to skip some ports in certain configurations on Cisco devices.
Add quirk for Calix devices that return different port labels than they actually are.
* bdcom uses NMS-LLDP-MIB too.
* use dot1dBasePort to look up ifIndex if we can.
* Added IronWare iface dBm sensor and related OID pr~e-cache
* fixed syntax violations
* added return_num() function and modified ironware dbm sensor to use it
* Update functions.php
* Update ironware.inc.php
* eaton-ats: add definition, voltage, frequency and state
* eaton-ats: missing snmprec file
* fix some syntax error
* fix some syntax error, again
* exclude eaton-ats from eaton-mgeups definition
* change eaton-ats definition
* move state and output voltage to yaml syntax
* Update eaton-mgeups.yaml
fix find_port_id() deleting all variables when device_id was given
improve find_port_id() to find ports where only a number is given
fix orphan deletion count
fix insert and update of links with strings where int are required
* refactor: discovery protocols re-write
extract more code to make it easier to read
use snmpwalk_group
walk lldpRemTable instead of lldpRemoteSystemsData
Optimize discover_device to reduce dns lookups of bad dns names
Make discovery_by_ip behavior consistent between cdp and lldp
move can_skip_discovery to discovery functions
Tested lldp, cdp, and ospf.
* always discover links even if the remote device isn't in system
Fix discover_link always updating
* fix style
* fix update, not fetching id
* increase platform length. Most devices use sysDescr here, which is max length 255
* remove orphaned links
* update db_schema.yaml
* refactor: rfc1628 tidy up
reduce the amount of snmp calls
* Did not finish re-writing rfc1628 load
* fix type in bypass power oid
* remove testing changes