Community-based GPL-licensed network monitoring system
Go to file
Orsiris de Jong bfa200f3f7
Full Python code fusion / refactor and hardening 2nd edition (#13188)
* New service/discovery/poller wrapper

* Convert old wrapper scripts to bootstrap loaders for wrapper.py

* Move wrapper.py to LibreNMS module directory

* Reformat files

* File reformatting

* bootstrap files reformatting

* Fusion service and wrapper database connections and get_config_data functions

* Moved subprocess calls to command_runner

* LibreNMS library and __init__ fusion

* Reformat files

* Normalize logging use

* Reformatting code

* Fix missing argument for error log

* Fix refactor typo in DBConfig class

* Add default timeout for config.php data fetching

* distributed discovery should finish with a timestamp instead of an epoch

* Fix docstring inside dict prevents service key to work

* Fix poller insert statement

* Fix service wrapper typo

* Update docstring since we changed function behavior

* Normalize SQL statements

* Convert optparse to argparse

* Revert discovery thread number

* Handle debug logging

* Fix file option typo

* Reformat code

* Add credits to source package

* Rename logs depending on the wrapper type

* Cap max logfile size to 10MB

* Reformat code

* Add exception for Redis < 5.0

* Make sure we always log something from service

* Fix bogus description

* Add an error message on missing config file

* Improve error message when .env file cannot be loaded

* Improve wrapper logging

* Fix cron run may fail when environment path is not set

* Add missing -wrapper suffix for logs

* Conform to prior naming scheme

* Linter fix

* Add inline copy of command_runner

* Another linter fix

* Raise exception after logging

* Updated inline command_runner

* Add command_runner to requirements

* I guess I love linter fixes ;)

* Don't spawn more threads than devices

* Fix typo in log call

* Add exit codes to log on error, add command line to debug log

* Add thread name to error message

* Log errors in end message for easier debugging

* Typo fix

* In love of linting
2021-09-27 14:24:25 -05:00
.github Lint: Disallow usage of deprecated functions (#13267) 2021-09-23 21:27:14 +02:00
app cleanup device type override code (#13256) 2021-09-27 14:24:32 +02:00
bootstrap Update to Composer 2 (#12263) 2020-11-09 00:28:07 -06:00
cache fix: page/graph load speed: part 1 (#6611) 2017-05-10 08:57:10 +01:00
config HP Fault Traps (#13254) 2021-09-21 16:20:49 -05:00
contrib Remove some unused files (#12307) 2020-11-07 22:00:47 -06:00
database Feature config seeder (#13259) 2021-09-27 12:17:15 -05:00
doc Missing config seeder docs (#13279) 2021-09-27 12:49:52 -05:00
html Improve tailwind dark theme colors (#13262) 2021-09-23 15:38:41 +02:00
includes cleanup device type override code (#13256) 2021-09-27 14:24:32 +02:00
LibreNMS Full Python code fusion / refactor and hardening 2nd edition (#13188) 2021-09-27 14:24:25 -05:00
licenses Swich links to https (#12511) 2021-02-09 00:29:04 +01:00
logs Restore gitignore file contents (#9784) 2019-02-06 06:57:44 -06:00
mibs Teldat: Wireless and GSM Basic Monitoring (#13255) 2021-09-23 11:55:14 -05:00
misc Fix html.device.links validation (#13269) 2021-09-23 21:28:54 +02:00
resources Feature config seeder (#13259) 2021-09-27 12:17:15 -05:00
routes API Call to assign/remove a Portgroup to Ports (#13245) 2021-09-21 08:41:01 -05:00
rrd Restore gitignore file contents (#9784) 2019-02-06 06:57:44 -06:00
scripts Apply fixes from StyleCI (#13224) 2021-09-10 20:09:53 +02:00
sql-schema Improve Markdown syntax in Document (#12949) 2021-06-16 21:16:21 +02:00
storage Update to Laravel 5.7 (PHP 7.3 support) (#9800) 2019-02-12 17:45:04 -06:00
tests Add Ericsson IPOS router support (#12625) 2021-09-24 16:17:07 -05:00
.codeclimate.yml More codeclimate tuning (#9197) 2018-09-13 12:18:58 -05:00
.editorconfig Update to Laravel 5.7 (PHP 7.3 support) (#9800) 2019-02-12 17:45:04 -06:00
.env.example create .env if non-existing 2020-06-27 07:47:08 -05:00
.env.travis fix test env 2020-06-27 08:23:58 -05:00
.gitignore Remove Travis support (#12416) 2021-01-04 21:17:55 -06:00
.php-cs-fixer.php php-cs 3 prep (#13039) 2021-07-13 16:36:02 -05:00
.scrutinizer.yml refactor: use Composer to manage php dependencies (#5216) 2017-01-01 09:37:15 +00:00
.styleci.yml Add StyleCI config (#12126) 2020-09-21 16:02:55 +02:00
addhost.php Remove legacy function calls (#12651) 2021-03-29 00:25:30 +02:00
adduser.php Apply fixes from StyleCI (#12117) 2020-09-21 14:54:51 +02:00
alerts.php Remove debug globals (#12811) 2021-04-29 22:42:18 -05:00
artisan Update to Composer 2 (#12263) 2020-11-09 00:28:07 -06:00
AUTHORS.md Health Overlib Correction (#12203) 2020-10-11 17:07:52 -05:00
billing-calculate.php Billing: add peak in and out (#13006) 2021-07-26 10:37:52 -05:00
CHANGELOG.md Small Cleanup (#8871) 2018-07-07 13:55:17 +01:00
check-services.php Remove debug globals (#12811) 2021-04-29 22:42:18 -05:00
CODE_OF_CONDUCT.md Remove hardcoded URLs to doc (#12364) 2020-11-27 23:34:58 +01:00
composer.json Lint: Disallow usage of deprecated functions (#13267) 2021-09-23 21:27:14 +02:00
composer.lock Lint: Disallow usage of deprecated functions (#13267) 2021-09-23 21:27:14 +02:00
config_to_json.php Install: Validate database before migrating (#12867) 2021-05-13 07:18:54 -05:00
config.php.default Remove DB credentials from config.php 2020-06-27 07:47:08 -05:00
CONTRIBUTING.md documentation link fixes (#10848) 2019-11-19 17:14:15 +01:00
cronic shellcheck (#12258) 2020-11-11 23:21:15 +01:00
daily.php Collect OUI Database and do OUI lookups (#12842) 2021-05-10 14:56:48 -05:00
daily.sh Fix scripts to allow pathname with space (#13027) 2021-07-14 22:00:21 -05:00
delhost.php Apply fixes from StyleCI (#12123) 2020-09-21 15:51:53 +02:00
discovery-wrapper.py Full Python code fusion / refactor and hardening 2nd edition (#13188) 2021-09-27 14:24:25 -05:00
discovery.php Discovery: mark snmp disabled devices as skipped (#13202) 2021-09-08 18:15:08 +02:00
dist-pollers.php Apply fixes from StyleCI (#12117) 2020-09-21 14:54:51 +02:00
irc.php Swich links to https (#12511) 2021-02-09 00:29:04 +01:00
librenms-service.py Full Python code fusion / refactor and hardening 2nd edition (#13188) 2021-09-27 14:24:25 -05:00
librenms.cron Add Laravel task scheduling (#13074) 2021-08-03 16:30:13 +02:00
librenms.nonroot.cron Add Laravel task scheduling (#13074) 2021-08-03 16:30:13 +02:00
LICENSE.txt Swich links to https (#12511) 2021-02-09 00:29:04 +01:00
lnms Fix disabling of built-in commands when using ./lnms (#12308) 2020-11-19 22:51:20 +01:00
mkdocs.yml Docs link to webui settings in user's install (#13176) 2021-08-27 06:48:17 -05:00
package-lock.json New Blade Components: x-device-link, x-port-link, x-graph-row, x-popup (#13197) 2021-09-10 08:07:08 -05:00
package.json New Blade Components: x-device-link, x-port-link, x-graph-row, x-popup (#13197) 2021-09-10 08:07:08 -05:00
pbin.sh Quote bug (#12548) 2021-02-22 15:41:27 +01:00
phpstan-baseline-deprecated.neon Lint: Disallow usage of deprecated functions (#13267) 2021-09-23 21:27:14 +02:00
phpstan-baseline.neon Bump larastan (#13071) 2021-07-26 09:00:34 -05:00
phpstan-deprecated.neon Lint: Disallow usage of deprecated functions (#13267) 2021-09-23 21:27:14 +02:00
phpstan.neon Change PHPStan target to PHP 7.3 (#13153) 2021-08-19 16:20:13 +02:00
phpunit.xml Laravel 8.x Shift (#12235) 2020-11-03 10:18:31 -06:00
ping.php Remove debug globals (#12811) 2021-04-29 22:42:18 -05:00
poll-billing.php Install: Validate database before migrating (#12867) 2021-05-13 07:18:54 -05:00
poller-wrapper.py Full Python code fusion / refactor and hardening 2nd edition (#13188) 2021-09-27 14:24:25 -05:00
poller.php Common contexts for polling (#13158) 2021-08-23 01:22:28 -05:00
README.md Remove links to freenode (#13101) 2021-08-05 10:33:23 -05:00
renamehost.php Add renamehost function result handling and exit codes (#12980) 2021-06-25 00:34:16 +02:00
requirements.txt Full Python code fusion / refactor and hardening 2nd edition (#13188) 2021-09-27 14:24:25 -05:00
server.php Apply fixes from StyleCI (#12123) 2020-09-21 15:51:53 +02:00
services-wrapper.py Full Python code fusion / refactor and hardening 2nd edition (#13188) 2021-09-27 14:24:25 -05:00
snmp-scan.py Format python code with Black (#12663) 2021-03-28 11:02:33 -05:00
snmpd.conf.example Clarify non-x86 hardware info sources for snmpd (#12253) 2020-10-22 02:39:06 +02:00
snmptrap.php Remove debug globals (#12811) 2021-04-29 22:42:18 -05:00
syslog.php Update syslog.php (#13150) 2021-08-22 19:07:07 -05:00
tailwind.config.js Improve tailwind dark theme colors (#13262) 2021-09-23 15:38:41 +02:00
validate.php Install: Validate database before migrating (#12867) 2021-05-13 07:18:54 -05:00
webpack.mix.js New Blade Components: x-device-link, x-port-link, x-graph-row, x-popup (#13197) 2021-09-10 08:07:08 -05:00

Test Status

Introduction

LibreNMS is an auto-discovering 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 behavior towards others.

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-2021 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 https://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

Backers

Support us with a monthly donation and help us continue our activities. [Become a backer]

Sponsors

Become a sponsor and get your logo on our README on GitHub with a link to your site. [Become a sponsor]