271 Commits

Author SHA1 Message Date
11147d3bbf Major Processors rewrite (#8066)
* 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
2018-02-05 07:39:13 -06:00
b2762d9fa7 refactor: Prevent function collisions with Laravel (#8166)
Make function call compatible
drop insensitive starts_with and ends_with for now as they aren't needed.
2018-01-29 21:58:21 +00:00
88b4e31912 refactor: Refactored bgp-peers (#7972)
* 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
2018-01-18 20:54:38 +00:00
c80f9726c8 feature: Added new EER and Water Flow Rate sensors (#8104)
* Add new EER sensor

* remove bad RRD option

* add waterflow sensor

* add test data result

* added test json data
2018-01-18 20:50:19 +00:00
42e5819130 refactor: Updated discovery/poller to use numeric sysObjectID (#7922)
* 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.
2018-01-06 23:00:47 -06:00
4fc946bd21 Move ignore_storage call to discover_storage (#7973)
* Move ignore_storage call to discover_storage

* Remove long if statement
2018-01-04 22:24:06 -06:00
e473b03697 Add Huawei VRP sensors to yaml and fix bug in functions.inc.php (#7918)
* Add Huawei sensors to yaml and fix bug in functions.inc.php

* Add Huawei sensors to yaml and fix bug in functions.inc.php
2017-12-16 22:26:43 +00:00
84fdfdf542 Junos dwdm interface sensor support (#7714)
* 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
2017-12-12 20:27:10 -06:00
5357dd9515 feature: Added support for entity values in sensors (#7805)
* Added info on using OIDs in skip_values for sensors

* added more docs + entity support

* remove whitespace
2017-12-02 22:56:57 +00:00
f1fa61758b feature: Print out operations stats per poller/discovery module (#7839)
* Print out operations stats per poller/discovery module

* Add line return so we can see polled time better.
2017-12-02 22:55:53 +00:00
3720f0e776 feature: Implement dynamic temperature scale detection and value conversion for siteboss (#7734)
* 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
2017-11-28 20:30:24 -06:00
6b4241381f fix: Fixed UPS time remaining in Mikrotik RouterOs (#7803)
* Fix UPS time remaining in Mikrotik RouterOs

* Fix UPS time remaining in Mikrotik RouterOs

* Remove space
2017-11-27 17:13:09 +00:00
0dee809607 fix: Discovery os changes weren't properly reflected if os changed (#7779) 2017-11-22 21:48:28 +00:00
6371e47fea fix: Fixed precache data (#7782)
Missed one pre-cache data layout
fixes: #7777
2017-11-22 21:42:19 +00:00
ccbe3ea2e3 fix: Use correct entity columns for sensors (#7775)
* fix: Use correct entity columns for sensors

* updated schema

* Update custom rules too
2017-11-21 22:41:22 -06:00
b42c7de486 refactor: Better default temperature sensor limits (#7754)
* 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.
2017-11-17 14:07:50 +00:00
64aed60f09 newdevice: Add OS detection and temperature sensor support for Asentria SiteBoss (#7655)
* 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
2017-11-14 08:35:32 -06:00
3dba5cd39d newdevice: Support Avtech RoomAlert 32E/W and RoomAlert 11E (#7614)
* 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
2017-11-04 21:25:13 +00:00
e74b1c3e51 Fix: discovery.php -h all stops working after ping only device (#7593)
* Temporary array per device in discovery.

* Return at the beginning of discover_device() if snmp_disable.
2017-10-31 08:26:25 -05:00
7e05fff615 fix: lldp find_port_id finds not the most correct port (#7564)
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
2017-10-29 13:37:39 -05:00
f8d7ccfe0d feature: Support for up/down detection of ping only devices.
* 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.
2017-10-27 22:59:25 -05:00
e751206f74 newdevice: Added more detection for IgniteNet FusionSwitch (#7384)
* newdevice: Added more detection for IgniteNet FusionSwitch

* fixed current graphs descr

* small updates

* small updates recommended by murrant
2017-10-25 08:10:02 -05:00
f01cf38a3a fix: lldp discovery change local port resolution (#7443)
* 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.
2017-10-24 08:21:32 +01:00
2f2234da70 fix: cdp matching incorrect ports (#7491)
Need either remote device_id or mac_address to find a port, otherwise, we might match an incorrect port.
2017-10-15 19:49:28 +01:00
f92449e637 fix: issues with recent discovery refactor (#7437)
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
2017-10-06 08:53:16 -05:00
c0b267b49c refactor: Discovery protocols re-write (#7380)
* 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
2017-10-04 08:16:23 +01:00
592e8aca4c newdevice: Added sensor detection for APC In Row RD devices (#7385)
* newdevice: Added sensor detection for APC In Row RD devices

* Update apc.yaml

* Update apc.yaml

* Update cooling.inc.php

* Update pressure.inc.php
2017-09-29 21:13:27 +01:00
b4d804f2ac fix: rfc1628 runtime - allow os quirks (#7340)
* fix: rfc1628 runtime - allow os quirks
Also, properly divide values at discovery
Remove accidental debug output
2017-09-14 21:55:07 +01:00
f158a56774 fix incorrect getOsSetting arguments (#7339)
Missed calls when the function definition changed.
2017-09-14 00:43:14 -05:00
b3567041dd newdevice: Added support for SmartOptics M-Series (#7314)
* newdevice: Added support for SmartOptics M-Series

* added os polling file
2017-09-13 21:12:56 -05:00
98786c0ea7 feature: Allow ignore_mount, ignore_mount_string, ignore_mount_regex per OS (#7304)
* feature: Allow ignore_mount, ignore_mount_string, ignore_mount_regex at OS level

* Change the storage settings to override global instead of merge.
Add documentation
2017-09-13 19:43:21 +01:00
b18c41b1a9 refactor: Use the Config class includes/discovery (#7299)
* refactor: use the Config class includes/discovery

* fix issue with $config variable not accessible in include-dir.inc.php

* improved whitespace

* Tidy up discovery_by_ip
2017-09-11 21:26:41 +01:00
7b262a6851 refactor: Improve yaml state discovery (#7221)
* feature: Improve yaml state discovery
Handle state values that are returned as strings instead of int
Synchronize state values for existing state translations so we can change them without creating a new translation and losing historical data
More extensive/verbose yaml discovery phpunit tests
dbBulkInsert, use the first entry instead of requiring the first entry to be at index 0

* Update sensor state documentation
re-order values for better readability
remove os check
Use snmpwalk_group since it is more flexible

* Add some more debug output in dynamic discovery
2017-09-03 19:58:39 +01:00
21deb96d52 fix: Fixed Avtech sensor discovery (#7244)
$valid is no longer a global as it once was
2017-08-29 19:37:24 +01:00
061add5eb1 fix: Re-added changes for #6959 removed by accident in #7128 (#7240) 2017-08-28 13:44:24 -05:00
806f5cce74 newdevice: Added additional sensor support for Cisco ONS (#7096)
* newdevice: Added additional sensor support for Cisco ONS

* updated discovery yaml + added mibs
2017-08-13 20:21:55 +01:00
1d777693e1 feature: New IP parsing classes. Removes usage of Pear Net_IPv4 and Net_IPv6. (#7106)
* Refactor remove use of pear Net_IPv4 and Net_IPv6

Caution, I added tests to test the functionality of the new functions, but I'm not 100% certain the replaced usages match 100%.  Please test.

Left usage in generate-iplist.php because I'm not sure the use of that script, so I didn't want to implement additional functionality to support it.

Add support for ipv6 fo ipInNetwork() function

Add phpdocs to functions
Remove accidental inclusion

Use binary operations instead of string for networKFromIp()
Tidy up binary operations in ipInNetwork()

tidy parsing cidr network

Change to a class based implementation.

Update phpdocs.
Fully catch exceptions for hex parsing.

Fix mistake.

support older phpunit versions

Fix php shifting to negative with php 5

* Fix graph authorization. Uncaught exception and checking an ipv4 against an ipv6 network == fail.

* Also remove colons from hex strings.

* Fix typo in bgp polling
Two passes of removing invalid characters from hex strings. (That way we don't mangle valid IPs)
2017-08-08 14:14:58 -05:00
d8140467ae newdevice: Added support for Emerson energy systems (#7128)
* newdevice: Added support for Emerson energy systems

* added missing test

* Update ees.yaml
2017-08-08 07:58:57 +01:00
707b6c6954 feature: Added support to cisco sensors to link them to ports + macro/docs for alerting (#6959)
* feature: Added support to cisco sensors to link them to ports + macro/docs for alerting

* renamed sql
2017-08-04 19:37:50 +01:00
123a90feab feature: Log event if device polling takes too long (#7065)
Move $device_time closer to end of poll_device(), and simplify
remove some unused variables
simplify $device_time in discover_device() too
2017-07-21 23:01:59 +01:00
da7550f55f device: Added additional sensors support for HP ILO4 (#7053)
* device: Improved HP ILO4 support

Added HP ILO4 temperature (HDD, motherboard), power, state (powersupply, HDD, Fans, memory slots) sensors support.
Tested with HP ProLiant ML350p Gen8-Gen9

* actual MIB file!
2017-07-19 22:06:59 +01:00
83cb39a7fd fix: Netbotz state sensors using wrong value (#7027)
* fix: Netbotz state sensors using wrong value

* actual fix
2017-07-13 19:02:26 -05:00
c874fc5b1e fix: Standardise UPS divisors (#6942)
Set default divisors for all devices and remove per-os overrides for them.
We should only use per-os overrides for non-standard behavior.

High possibility for breakage here if devices not listed here have non-standard behavior.
2017-07-13 18:09:56 +01:00
d30e5660f9 feature: Added ability specify options for sensors yaml discovery (#6985)
* feature: Added ability specify options for sensors yaml discovery

* travis fix for new line + skip_values_* -> skip_value_*
2017-07-10 16:27:46 -05:00
14ed767edb fix: a couple of issues with the yaml state sensor discovery (#6912) 2017-06-29 21:12:51 +01:00
a4b905e3f6 fix: Fixed netman voltage and load divisor values (#6905)
* fix: Fixed netman voltage and load divisor values

* Update to perform more checks
2017-06-29 07:23:39 -05:00
929d7ece56 fix: Fixed checks for $entPhysicalIndex/$hrDeviceIndex being numeric (#6907) 2017-06-28 16:03:35 -05:00
5e32474d26 feature: Added support for sensors to be discovered from yaml (#6859)
* feature: Added support for sensors to be discovered from yaml

* added discovery definitions

* Updated docs, more code updates + tests

* removed the oid_name use

* pre-set variable from scrut output

* small updates as per comments in pr

* Allow index in descr

* Added ability to skip values

* Check for numeric values

* small update of oid name
2017-06-26 23:27:57 +01:00
d48be5f507 newdevice: Added detection for Cisco EPC devices (#6690)
* newdevice: Added detection for Cisco EPC devices

* updated test file

* added dbm support

* added snr support
2017-05-23 10:28:44 -05:00
895801d855 newdevice: Added more health information for APC units (#6619)
* fix: Fixed apc state support emsOutput

* newdevice: Added more health information for APC devices

* update schema file

* schema file renamed
2017-05-17 22:41:53 +01:00