Community-based GPL-licensed network monitoring system
Go to file
Tony Murray 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
.github docs: Update to remove the old method of signing the CLA (#6479) 2017-04-20 14:46:03 +01:00
contrib tidy up some file permissions and removed unused files (#5563) 2017-01-24 12:44:16 -06:00
doc feature: Wireless Sensors Overhaul (#6471) 2017-05-01 23:49:11 -05:00
html feature: Wireless Sensors Overhaul (#6471) 2017-05-01 23:49:11 -05:00
includes feature: Wireless Sensors Overhaul (#6471) 2017-05-01 23:49:11 -05:00
lib fix bootgrid tables (#6043) 2017-03-01 10:22:26 +00:00
LibreNMS feature: Wireless Sensors Overhaul (#6471) 2017-05-01 23:49:11 -05:00
licenses delete old stuff, put licenses into licenses 2011-09-29 15:58:18 +00:00
mibs feature: Wireless Sensors Overhaul (#6471) 2017-05-01 23:49:11 -05:00
misc feature: Wireless Sensors Overhaul (#6471) 2017-05-01 23:49:11 -05:00
scripts fix: Update Shebangs and daily.sh for FreeBSD compatibility (#6413) 2017-04-17 20:14:23 -05:00
sql-schema feature: Wireless Sensors Overhaul (#6471) 2017-05-01 23:49:11 -05:00
tests feature: Wireless Sensors Overhaul (#6471) 2017-05-01 23:49:11 -05:00
vendor Update libraries (#6384) 2017-04-13 10:47:59 +01:00
.codeclimate.yml Update .codeclimate.yml (#5044) 2016-11-22 10:01:04 +00:00
.editorconfig added editorconfig file for project 2016-01-04 13:16:13 +01:00
.gitignore webui: Add $config['title_image'] in doc and use it also for login screen (#5683) 2017-01-31 08:16:01 +00:00
.mention-bot Update .mention-bot (#5371) 2017-01-09 21:19:03 +00:00
.scrutinizer.yml refactor: use Composer to manage php dependencies (#5216) 2017-01-01 09:37:15 +00:00
.travis.yml feature: Unit test to validate the db schema (#6367) 2017-04-07 15:07:44 +01:00
addhost.php refactor: Centralize includes and initialization (#4991) 2016-11-21 20:12:59 +00:00
adduser.php refactor: Centralize includes and initialization (#4991) 2016-11-21 20:12:59 +00:00
alerts.php fix: Clear out stale alerts (#6268) 2017-03-25 21:02:21 +00:00
AUTHORS.md Equallogic add disk status (#6497) 2017-04-26 23:08:35 +01:00
billing-calculate.php refactor: Various Code Cleanup (#5777) 2017-02-05 22:37:08 +00:00
build-base.php feature: support non-standard unix socket (#5724) 2017-04-06 22:02:37 +01:00
build.sql Db collation standardisation (#5932) 2017-02-27 18:28:01 +00:00
CHANGELOG Remove remaining live references to observium.org 2013-10-29 21:06:32 +10:00
check-services.php feature: Add services-wrapper.py to enable support for distributed setups with service checks #4658 2017-01-12 08:29:29 +00:00
composer.json feature: Peeringdb integration to show the Exchanges and peers for your AS' (#6178) 2017-03-22 10:17:13 +00:00
config_to_json.php refactor: Centralize includes and initialization (#4991) 2016-11-21 20:12:59 +00:00
config.php.default tidy up some file permissions and removed unused files (#5563) 2017-01-24 12:44:16 -06:00
CONTRIBUTING.md Add contributing placeholder file 2015-05-16 14:28:09 +10:00
cronic fix: Updated bin/bash to use env in cronic script (#4752) 2016-10-13 22:23:53 +01:00
daily.php feature: Peeringdb integration to show the Exchanges and peers for your AS' (#6178) 2017-03-22 10:17:13 +00:00
daily.sh fix: Update Shebangs and daily.sh for FreeBSD compatibility (#6413) 2017-04-17 20:14:23 -05:00
delhost.php refactor: Centralize includes and initialization (#4991) 2016-11-21 20:12:59 +00:00
discovery-wrapper.py feature: support non-standard unix socket (#5724) 2017-04-06 22:02:37 +01:00
discovery.php fix: inconsistent device discovery (#6518) 2017-04-28 22:50:00 +01:00
dist-pollers.php refactor: Centralize includes and initialization (#4991) 2016-11-21 20:12:59 +00:00
irc.php refactor: Centralize includes and initialization (#4991) 2016-11-21 20:12:59 +00:00
librenms.cron More more docs (#4197) 2016-08-25 18:40:11 -05:00
librenms.nonroot.cron More more docs (#4197) 2016-08-25 18:40:11 -05:00
LICENSE.txt Update copyright instructions 2014-06-23 13:44:12 +10:00
Makefile Update typeahead to corejavascript fork 2016-01-05 17:35:16 -07:00
mkdocs.yml docs: Updated Support-New-OS doc to provide clearer information (#6492) 2017-04-25 12:35:42 -05:00
pbin.sh update pbin defaults (secure always on, no-expire and dropped hostname from name) (#6190) 2017-03-14 09:07:46 -05:00
phpunit.xml RRDtool dual process (remote creation/check) (#4104) 2016-08-22 16:32:05 +01:00
poll-billing.php refactor: schema updates (#6370) 2017-04-13 10:18:12 +01:00
poller-service.py feature: support non-standard unix socket (#5724) 2017-04-06 22:02:37 +01:00
poller-wrapper.py feature: support non-standard unix socket (#5724) 2017-04-06 22:02:37 +01:00
poller.php move version info into debug to save exec calls under normal use (#6407) 2017-04-22 08:10:15 -05:00
README.md removed references to librenms being a fork (#5562) 2017-01-26 19:29:23 +00:00
readmegen.yml added changelog for v1.25 (#6018) 2017-02-26 22:14:06 +00:00
renamehost.php refactor: Centralize includes and initialization (#4991) 2016-11-21 20:12:59 +00:00
services-wrapper.py feature: support non-standard unix socket (#5724) 2017-04-06 22:02:37 +01:00
snmp-scan.php feature: Added ability to output more info for snmp-scan.php (#5838) 2017-02-09 06:35:27 -06:00
snmp.conf.example snmp.conf is not needed so do not recommend to set anything (#6204) 2017-03-16 13:52:23 -05:00
snmpd.conf.example Fix example community string 2014-10-25 08:44:51 +10:00
snmptrap.php refactor: Centralize includes and initialization (#4991) 2016-11-21 20:12:59 +00:00
syslog.php refactor: Centralize includes and initialization (#4991) 2016-11-21 20:12:59 +00:00
validate.php updated rrdtool ver check to wrap quotes around (#6393) 2017-04-11 07:04:25 +01:00

Scrutinizer Status Scrutinizer Code Quality Travis Status

Introduction

LibreNMS is an autodiscovering PHP/MySQL/SNMP based network monitoring which includes support for a wide range of network hardware and operating systems including Cisco, Linux, FreeBSD, Juniper, Brocade, Foundry, HP and many more.

We intend LibreNMS to be a viable project and community that:

  • encourages contribution,
  • focuses on the needs of its users, and
  • offers a welcoming, friendly environment for everyone.

The Debian Social Contract will be the basis of our priority system, and mutual respect is the basis of our behaviour towards others. For more about the culture we're trying to build, please read the Freenode philosophy, including guidelines for running an IRC channel and being a community catalyst.

Documentation

Documentation can be found in the doc directory or docs.librenms.org, including instructions for installing and contributing.

Participating

You can participate in the project by:

VM image

You can try LibreNMS by downloading a VM image. Currently, a Ubuntu-based image is supplied and has been tested with VirtualBox.

Download one of the VirtualBox images we have available, documentation is provided which details login credentials and setup details.

License

Copyright (C) 2006-2012 Adam Armstrong adama@memetic.org

Copyright (C) 2013-2017 by individual LibreNMS contributors

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

LICENSE.txt contains a copy of the full GPLv3 licensing conditions.

The following additional license conditions apply to LibreNMS (a GPL exception):

As a special exception, you have permission to link or otherwise combine LibreNMS with the included copies of the following third-party software, and distribute modified versions, as long as you follow the requirements of the GNU GPL v3 in regard to all of the remaining software (comprising LibreNMS).

Please see Acknowledgements