41ed0537b4
* Handle more signals * Flush buffers before exiting process This ensures log messages aren't lost * Restart process before jobs have finished If there is a very log running job it can cause service restart to take over 5 minutes. We tweak the order of things to make sure that running processes continue, but nothing more is scheduled. The worst case impact is that a pollling/discovery job gets scheduled twice, but this should not be a big issue - this should only occur at most once per day. * Remove python 3.8 feature * Ensure that processes from the previous invocation are reaped * Correct typo's * Attach subprocess descriptors to /dev/null Occasionally, PHP would throw a fit and crash when its stdout went away. To avoid this, we attach stdout to devnull. This means we lost output of daily.sh - but this is already recorded in $LOGDIR/daily.log * Don't immediately schedule long running jobs To avoid the situation where the maintenance reload happens or a sighup, then a second long running job is immediately started, we wait (`last_[poll/discovery]_timetaken` * 1.25) seconds before scheduling any jobs. * Add `psutil` to requirements * Add support for "systemctl reload" to the unit files * Add a fallback for systems that don't have psutil * Reduce CPU load when psutil is not installed * Don't avoid double polling by extending the timeout This shouldn't happen due to locks * Remove fallback option * Remove extra variable * Fix issue introduced during rebase * Fix issue introduced when fixing issue introduced during rebase * Make psutil optional |
||
---|---|---|
.github | ||
LibreNMS | ||
app | ||
bootstrap | ||
cache | ||
config | ||
contrib | ||
database | ||
doc | ||
html | ||
includes | ||
licenses | ||
logs | ||
mibs | ||
misc | ||
resources | ||
routes | ||
rrd | ||
scripts | ||
sql-schema | ||
storage | ||
tests | ||
.codeclimate.yml | ||
.editorconfig | ||
.env.example | ||
.env.travis | ||
.gitignore | ||
.mention-bot | ||
.php_cs | ||
.scrutinizer.yml | ||
.styleci.yml | ||
.travis.yml | ||
AUTHORS.md | ||
CHANGELOG.md | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
LICENSE.txt | ||
Makefile | ||
README.md | ||
addhost.php | ||
adduser.php | ||
alerts.php | ||
artisan | ||
billing-calculate.php | ||
build-base.php | ||
build.sql | ||
check-services.php | ||
composer.json | ||
composer.lock | ||
config.php.default | ||
config_to_json.php | ||
cronic | ||
daily.php | ||
daily.sh | ||
delhost.php | ||
discovery-wrapper.py | ||
discovery.php | ||
dist-pollers.php | ||
irc.php | ||
librenms-service.py | ||
librenms.cron | ||
librenms.nonroot.cron | ||
lnms | ||
mkdocs.yml | ||
package-lock.json | ||
package.json | ||
pbin.sh | ||
phpunit.xml | ||
ping.php | ||
poll-billing.php | ||
poller-wrapper.py | ||
poller.php | ||
readmegen.yml | ||
renamehost.php | ||
requirements.txt | ||
server.php | ||
services-wrapper.py | ||
snmp-scan.py | ||
snmp.conf.example | ||
snmpd.conf.example | ||
snmptrap.php | ||
syslog.php | ||
validate.php | ||
webpack.mix.js |
README.md
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:
- Talking to us on Discord or Twitter.
- Joining the LibreNMS Community
- Improving the documentation.
- Cloning the repo and filing pull requests on github.
- Bug Reports on our Community Fourms
- See CONTRIBUTING for more details.
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-2020 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
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]