54 Commits

Author SHA1 Message Date
542fdfc97e fix: Small error when checking ios for wireless rssi (#7300) 2017-09-07 19:45:50 +01:00
66f9411adc newdevice: Added support for Mimosa A5 (#7287)
* device: add support for Mimosa A5
Frequency and Tx/Rx Power

Unfortunately, we would have to walk the client table to get any client stats such as count.

* remove sysdescr after checking stats

* Forgot the mib new files
2017-09-07 09:29:03 +01:00
6914666004 newdevice: Added support for DragonWave Horizon (#7264)
* Add Dragonwave Horizon Support

* Add snmprec and fix style issues

* Update logo and discovery oid

* Update horizon.yaml
2017-08-30 23:13:31 +01:00
2370c08cbd newdevice: Added RSSI Support for Cisco IOS wireless devices (#7147) 2017-08-12 21:54:50 +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
ddc65e1bef feature: Config helper to simplify config access (#7066)
Saves from having to check isset() and all that junk.
Uses dot separated config paths like the database.

Usage:
  Config::get('install_dir')
  Config::get('memcached.enable', false)
  Config::getDeviceSetting($device, 'retries', 'snmp', 5)
  Config::getOsSetting($device, 'nobulk')
  Config::set('poller_modules', array())
2017-07-21 23:05:07 +01:00
181b0fb7d5 refactor: Use the new locks for schema updates (#6931)
* Use the new locks for schema updates

* removed schema lock from discovery

* Add the ability to wait for a lock.
Add unit tests

* Add MysqlLock
Use that for the schema updates
Wait up to 30s for other schema updates to complete.

* Switch the schema lock back to a file lock for now.
Make FileLock support indefinite locking without polling.
Add a warning to MysqlLock for scenarios where it won't work.

* Delete MysqlLock.php

* Removed MySQL lock tests
2017-07-17 19:35:08 +01:00
e8282a4b6b fix: Allow discovery of IAP radios on Aruba Virtual Controller
* Update Arubaos.php

Allow discovery of IAP radios on Aruba Virtual Controller -

* Fix up changes
2017-07-14 21:30:57 +01:00
527a989b4c newdevice: Added wireless sensors for SAF Tehnika (#6975)
Add new sensor type MSE (Mean Squared Error) which is similar to SNR
2017-07-07 16:05:55 +01:00
5020f47838 newdevice: ExtremeWireless initial wireless sensor support (#6819)
* First pass at implementing ExtremeWireless support
Includes global AP and user count, and per-AP user count

* Coding style fixes

* Tabs will be the death of me

* Add license count, fix coding nits

* PHP 5.3 support hopefully

* Graph APs configured with a max of licenses installed
2017-07-03 15:34:34 -05:00
701fbbc29b feature: Add a new locking framework that uses flock. (#6858)
Change locks to use flock, as pid checking is not
sufficient when PID Namespaces are involved.
2017-07-02 23:44:36 -05:00
3dd6628101 alerts: Updated Irc transport to use templates (#6758)
* Use templates also for irc-alerts

* Remove old code

* Make messages to admins (nicks) use the templates as well

* Added a "strip_tags" to remove html-tags from the irc-messages
2017-06-08 19:26:24 +01:00
4b15713f69 fix: a few issues with colors (take two) (#6787) 2017-06-06 06:42:49 -05:00
127c4b84bd feature: Added Irc ctcp support to IRCBot (#6766)
* Handle basic CTCP-support

* Add an option to toggle ctcp on and off in the config

* Fix whitespace-issue

* Fix null/NULL

* Updating docs, default config and fixing a few whitespace-issues

* Fixing the last whitespace-issues.  Now with "pre-commit.php" as a standard...
2017-06-05 22:45:18 +01:00
c8e3738fbb feature: Added support for nick conflicts + reload losing install_dir path (#6775)
* Generating random nick on conflict, and trying to regain our original nick when it gets available

* Also fixes a bug where $config['install_dir'] gets lost on .reload

* ...And adding a few QUIT-messages for brewity
2017-06-03 12:39:20 +01:00
43e135ee03 feature: Added Irc host authentication for irc-bot (#6757)
* Allow irc-users to be authenticated by hostmask i config.php

* Fix some whitespace and a small typo

* Refactored the code a bit. Checking if user is already authd before matching on hostmask

* Updating docs

* Add missing " to docs
2017-06-02 21:27:29 +01:00
d4bd4b8862 feature: Added some more coloring and make it easier to colorize messages for irc bot (#6759)
* Add some more coloring and make it easier to colorize messages

* Refactor "_color"-function

* Fix missing )

* Use _color() also in alerts

* Fix some standard-errors
2017-06-02 20:07:09 +01:00
7984696281 fix: ircbot - reformatted strikethrough for recovered alerts (#6756) 2017-05-31 09:05:06 -05:00
1fdb049a76 feature: Add Wireless Support For Cisco IOS-XE (#6724)
fix #3238
2017-05-24 22:49:04 +01:00
4d0c75343e fix: Two-Factor Authentication (#6672)
* fix: Two-Factor Auth
Moved library to a class to take advantage of namespacing and auto loading.
Update the two factor code to use the AuthenticationException for error messages.
Fix remember me to work with 2fa.

* missing change
2017-05-18 22:08:10 +01:00
683a10e723 fix: Improve authentication load time and security (#6615)
* fix: minimize session open time
page/graphs speedup part 2

Write close the session as soon as we no longer need to write to it. Prevents the session from blocking other requests.
Do not run through full authentication functions if the session is already authenticated.
Removes password from the session as well as some items to prevent session fixation from #4608.

WARNING: This will cause issues for ad/ldap users who do not have a bind user configured!

* Do no erase username when using cookie auth.
Properly close the session in ajax_setresolution.php

* write close the session as soon as possible in ajax_setresolution.php

* Remove session regeneration. It is not compatible with the current code and would require more changes.

* Totally refactor authentication.  Extract code to functions for re-use and improved readability

* Use exceptions for authentication and error logging
Tested: mysql, ad_auth with and without bind user

* fix a couple scrutinizer issues

* fix reauthenticate in radius
2017-05-15 22:18:23 -05:00
418d2c8fef fix: RouterOS: don't detect ccq sensors when they aren't returning data (#6573)
If clients == 0, ccq is probably 0 too, but if there is a client and ccq is 0.  The device is probably using nv2
2017-05-04 08:04:13 +01:00
5ca07e11aa newdevice: Added connected AP count for Cisco WLCs (#6572)
* newdevice: Add connected AP count for Cisco WLCs
Adds ap-count wireless sensor type
fixes: #4295

* better detection
Update the overview graph to the new one
2017-05-04 08:03:10 +01:00
35414a73c7 newdevice: Aruba Instant AP wireless sensor support (Freq, NoiseFloor, Power, Util) (#6564)
A few other fixes elsewhere
2017-05-03 22:53:36 +01:00
c59ae3c537 Improve discovery output. Only output type names if we actually attempt to discover data for that type. (#6551) 2017-05-02 14:12:04 +01:00
ceae5139bf Tidy up unifi wireless sensors (#6546) 2017-05-02 07:55:29 +01:00
4c0412b14d feature: Wireless Sensors Overhaul (#6471)
* feature: Wireless Sensors
Includes client counts for ios and unifi
Graphing could use some improvement.
Alerting and threshold ui not implemented

WIP: starting OO based wireless sensors.

Class based functionality working
remove old functional files
add schema file

discovery needs to be enabled, not polling

fix up schema

fix Unifi discovery not returning an array

Add some debug when discovering a sensor.
Fix style.

Add missing semicolin

Add a null object (Generic) for OS.
Fill out some phpdocs

Re-organized code
Each sensor type now has it's own discovery and polling interface
Custom polling tested with Unifi CCQ

Left to do:
Implement UI (Graphs and Custom thresholds)
Alerting
Testing

Fix event message text

Remove runDiscovery and runPolling from OS, they are unused and don't belong there.

Cleanups/docs

Missed this file.

Remove the requirement to fetch the current value to check validity.
Do that automatically if current is not specified
A few cleanups here and there

First pass at graphing.
device_ and wireless_ graphs added.

Add RouterOS support

Singleton OS instance isn't required right now.
Remove that to allow some memory to be freed.

Add wireless to the device list metrics.
Make all metrics clickable

Tweak graphs a bit

Implement limit configuration page.
Use sensors page as common code instead of duplicating.
Clean up some javascript interactions:  Allow enter on values to save. Cancel if update is not needed. Enable the clear custom button after setting a custom value.
Add some wireless alert rules to the library.

Add documentation.

Add unifi client counts by ssid in addition to radio.
Optimize Sensor polling a bit.

Add HP MSM clients support (for full controller)
Fix function accessibility

Formalize the discovery and poller interfaces.

Add Xirrus clients and noise floor
move module interfaces to a more appropriate place.
push caching code up to os, unsure about this do to the limitations

No point in selectively enabling wireless discovery.  We only discover if the device supports something.

Add RSSI, Power, and Rate.
Add these sensors for Ubnt Airos.
Clean up some copyrights.

Reduce the amount of files need to add new types.
Leave graph files for consistency and to allow customization.

Remove the old wifi clients graph completely.
ciscowlc should have improved counts (total and per-ssid)

Schema didn't get added.

Impelement the rest of the AirOS sensors
Reformat and re-organize the Airos.php class.

Add several UBNT AirFiber sensors

A few fixes add links to the section headers

Add HP MSM mibs.

* Schema file got dropped in rebase.

* Add wireless menu to view sensors across all devices.
Icons in the menu need help :/

* Add HeliOS, Mimosa, and Siklu support
Sensors added SNR + Noise

* Add power and utilization to Unifi

* Update polling to prefetch all sensor data in a few snmp requests as possible

* Add Extendair: tx+rx power, aggregate rate, frequency

* Add a check for duplicate sensors in discovery.  Just print an error for now.

* Add Bit Error Ratio (named error-ratio to allow for bit error rate to be added if needed)
Fix an incorrect link in the wireless sensors table

* Add error rate and change all bps and Hz to use si units

* Fixes to limits and frequency display

* Fix overview graph frequency display
A few decimal place tweaks

* Don't allow switching sensor and wireless-sensor graphs, it doesn't work.
Change individual distance graphs to use si units

* Go through the OS and make sure I got all the sensors I can (probably missed some still)
Because pollWirelessChannelAsFrequency() is generic and a little complex, so pull it up to OS.
Message to help developers adding supports that don't return an array from discover functions.

* Fix some issues

* Remove noise and signal for now at least
A couple more fixes
Add a notification

* Oopsie

* Bonus AirFiber sensors
2017-05-01 23:49:11 -05:00
b1a414e785 feature: support non-standard unix socket (#5724)
* Add support for custom MySQL unix-socket

* NULL must be lowercase!

* Naive edit of html/install.php

* fixup

* Refactor dbConnect
Use it everywhere

* $config needs to be global
Don't need to set $database_link

* small cleanups
2017-04-06 22:02:37 +01:00
acd11955d2 use components for fail2ban jails list (#6221)
* add get_fail2ban_jails functions

* now do component stuff for fail2ban for tracking jails

* now use get_fail2ban_jails for getting a list of jails

* readd the accidentally deleted update app bit

* white space cleanup

* Update fail2ban component code

* remove unneeded variable
2017-03-29 22:54:02 -05:00
00a062c675 Add error checking for DS name length (#6093)
* Add error checking for DS name length

* Update RrdDefinition.php

* Move greater than 19 length test to unit test

* Remove unused variables

* Remove duplicate unit test, and update test for empty name

* Typo

* Remove extra assignment

* ...

* Remove unused items

* Update RrdDefinitionTest.php

* Update RrdDefinition.php

* Delete InvalidRrdNameException.php
2017-03-09 17:16:35 -06:00
fad5aca1b7 feature: Allow customisation of rrd step/heartbeat when creating new rrd files (#5947)
* feature: Allow customisation of rrd step/heartbeat when creating new rrd files

* revert defaults

* added docs + webui config option

* Move RrdDefinition to an Object to make them easier to create and remove the possibility of typos.

* Fix style/lint issues and missing use statements

* 3 more missing use statements

* updated doc + moved schema file
2017-02-23 22:45:50 +00:00
1e2ab73239 tidy up some more eventlog things (#5885)
* tidy up some more eventlog things

* update sql file
2017-02-14 12:06:01 +00:00
5bfd23e7eb webui: New eventlog severity classification (#5830)
* New event log severity model

* Revert "New event log severity model"

This reverts commit 0783527af8ca492a562cc9a60e3887c24599000d.

* New event log severity model

* Fixed spaces vs tabs

* Learning the format requirements

* Learning the format requirements

* Moved the colours in to the stylesheet

* change SQL file to stop conflicting

* refactor log_event so severity isn't last, but reference is.

* keep having to move the file due to new PR conflicts

* Revert "keep having to move the file due to new PR conflicts"

This reverts commit f3030e7218f3403664616fde655e4d35c134516a.

* extended support to dashboard and eventlog page

* formatting
2017-02-12 22:41:05 +00:00
5dd030f438 refactor: Added config option for database port (#5517) 2017-01-27 23:16:04 +00:00
de45d8d6b4 newdevice: Added loadbalancer information from F5 LTM (#5205) 2017-01-19 08:19:11 +00:00
e20a242785 refactor: use Composer to manage php dependencies (#5216) 2017-01-01 09:37:15 +00:00
17f5cfef90 Revert "F5 LTM" (#5199) 2016-12-20 09:30:49 +00:00
efa0747564 newdevice: Added additional support for F5 BigIP LTM objects 2016-12-19 19:50:44 +00:00
c3140218b3 fix: Fix irc bot user level (#4833) 2016-10-20 17:53:49 +00:00
da0d04a5b6 Double check before throwing an exception. (#4790)
Since we are running two processes, we could leak one if we throw an exception and execution stops.
2016-10-15 18:21:46 +01:00
edbb6ae0e3 refactor: Centralize MIB include directory specification (#4603)
* refactor: Centralize MIB include directory specification
The default is now:
```
$config['mib_dir'].'/mibdirname:'.$config['mib_dir']
```
This means we exclude OS mibs and only use ours  (we could prepend `+` if we want to include os mibs.
All snmp calls should only include the name of the subdirectory under the mibs directory.

* Remove d_echo from Proc
Fix snmpsim tests.
2016-09-28 14:19:28 +01:00
744a2280a2 fix: Broken graphs 2016-09-23 23:41:23 +01:00
00b9896eda fix: LibreNMS/Proc improvements
Should fix sending rrdtool the quit command without a newline at the end. (not sure if this is an issue)
2016-09-23 15:01:43 -05:00
c87de0532e webui: Relocate Alerts menu
webui: Relocate Alerts menu
2016-09-15 21:26:45 +01:00
36f6338ad6 fix: Clean up errors in the webui (#4438) 2016-09-15 08:46:26 +01:00
9e85f24b00 fix: Make irc bot to use authentication module for user info (#4372) 2016-09-12 11:24:22 -05:00
122aae85bf webui: Relocate Alerts menu
Plugins menu is moved to the Overview menu (this is basically just weathermap anyway)
2016-09-11 23:41:41 -05:00
50a02a0fc5 refactor: IRC bot .version response (#4355)
* IRCbot more verbose .version response

* Using local_sha instead of git call

* Corrected substr starting position
2016-09-07 07:33:24 +01:00
7afbb6455f feature: IRCBot re-connection back-off (#4322) 2016-09-03 08:54:37 -05:00
abc6a5b799 PSR-2 Final cleanup (#4247)
refactor: Final PSR2 cleanup
2016-08-28 23:32:55 +01:00