Git Product home page Git Product logo

librenms's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

librenms's Issues

Update Cronjob

The cronjob needs to be updated to include logrotate and stderr redirection to a log file.

See #6.

Installation Documentation

Documentation for fresh installation should be written. It is quite different in many ways from the current method referenced via the Observium website.

Alerting

A working alerting system inside librenms will be a welcome addition.

It has been suggested on IRC using nagios as a basis to manage alerting could be a suitable system and would save much time with 99% of the functionality already written into nagios-core.

Glue can be written to populate nagios's static configuration files from the librenms database, a hook or cron job then setup to reload nagios's config on the fly when a change is made to the database.

Another advantage to using Nagios could be the inclusion of nagios performance data being fed back into librenms from existing Nagios checks which are far easier to write then the current observium/librenms style of polling checks.

Tidy autodiscovery configuration

We have the following configuration variables influencing autodiscovery:

  • $config['nets'][]
  • $config['autodiscovery']['nets-exclude'][]
  • $config['autodiscovery'][$method](for $method in)
    This probably needs to be consolidated, and some utility functions used to determine whether each module should be activated.

/ports/ repeats ports

Hi,

the /ports/ view is displaying each port twice.

I didnt dig into it yet but wanted to let you know of it for the log ;)

Cheers

Front screen first impressions

The front screen doesn't give me warm fuzzies at the moment. My front screen has:

  • awfully bright blue text for LibreNMS heading in the top left and in the hostname field in the event log
  • event log showing nothing but temperature changes
  • no interesting graphs

We probably should make the defaults show a bunch of top 10 things out of the box.

Don't report ports down/errors when the device is down

At the moment if a device goes down, it can result in port errors or ports down being displayed in addition to the device down. The code should exclude down devices from any further alerts (like reboots, port errors, ports down, etc.).

Add a status page for devices

I've created a status page for devices like Observium has, I had to create this for my dashboards to work so I thought I'd release just this section as it may be helpful to others.

Split out $config options into a DB

This will allow online updates to be done.

Couple of things for this:

  1. New 'Super Administrator' role needed.
  2. Not all config options can be moved to this without changing the config names.

Branding

Branding referencing Observium should be removed.

This includes logos, links, etc. References to contributors should remain for posterity.

Integrate Polling Wrapper

The polling wrapper written in Python that is in the current Observium releases is released to public domain. We should be able to integrate it without licensing concerns.

Install documentation fixes/suggestions

What I found while installing:

  • Works fine on Debian 7 (wheezy)
  • Should distinguish between local & remote DB more clearly
  • aptitude is not the preferred installer on Debian or Ubuntu any more (to my knowledge); apt-get is the least common denominator
  • need note about HTTPS access outbound
  • do we really need to scp the SQL script to the DB server?
  • editing instructions for config.php need to be more explicit; line numbers will change
  • now that we're using git, we can actually just use config.php (or symlink it), but is this a good idea? I've been running my Observium installation with config.php -> config.php.default since the beginning
  • Apache directory should be sites-available, not available-sites
  • should put in a better cron setup by default, including full logging + logrotate

Undefined index: debug in ajax_listports.php

When selecting ports from the drop down in the billing section, apache logs:

PHP Notice: Undefined index: debug in /opt/librenms/html/ajax_listports.php on line 15.

Simple fix, I'll put a pull request through shortly.

ifAlias not being polled right

Hi,

there's a bug in the polling of ifAlias. I had this with observium aswell and needed to manually patch some php files, sadly a coworker blindly removed the entire observium suite before we got librenms so the patch is gone.

I will try to get into it again and provide a 'new' one.

Until then, can anyone confirm this bug?

Cheers

Changing VLAN-Tags of remote devices via librenms

As discussed on IRC and within Roadmap.

This issue report is meant to be a pool of features this enhancement should have as well as structural discussion.
I will write the code as demanded by comments or IRC.

08:26:24 blahdeblah | I think we'd be silly to try to support everything. We should make it work well enough to meet the needs of those who want the feature, but trying
                    | to make it suit people who aren't even using it isn't necessary, IMO.
08:27:34 blahdeblah | e.g. My work networks use HP & Cisco - I think both of them have a read-write SNMP implementation, so if it works with them, I'm happy.  Then if we
                    | put the feature out there and other people try it and want it to work for them, they can submit patches.
08:28:37        f0o | true true
08:29:21        f0o | well I might give it a shot, at least the WebUI and a switching php can be done without even looking at the snmp implementations of the hardware
08:29:44        f0o | gonna keep it simple so the snmp instructions for given hardware can be added later without a big fuzz of code
08:29:51 blahdeblah | yep - a front end that we could add different backends to would be great
09:03:26    lafwood | When you're doing it it would be a good idea to validate what vlans exist on the switch before changing one on a port.
09:03:48    lafwood | I know on cisco if you change the ports vlan to one that doesn't exist then that vlan is created.
09:04:04    lafwood | Bad times may be had.
09:17:16 blahdeblah | Indeed
09:17:49 blahdeblah | There would need to be a set of primitives implemented, e.g. check for VLAN existence, check for port existence, etc.
09:18:07 blahdeblah | The more I think about it, the bigger a nightmare it becomes ;-\
09:18:39 blahdeblah | We'd basically have to reinvent SNMP at the API level, and then some...
09:20:28    lafwood | :) Certainly wouldn't be simple

PS: Can a mod/admin change the status to 'Enhancement' and add me as "assigned to"? Thanks

Update functionality

tooms pointed me to https://github.com/midgetspy/Sick-Beard/blob/development/sickbeard/versionChecker.py, which implements checking of the installed version of a package against the current version in github. The overall approach it uses is something like this:

One can also compare 2 commits and tell someone how far behind or ahead of the HEAD of a branch they are: http://developer.github.com/v3/repos/commits/

I think we should put some checks like this in the about page or the system overview status box eventually.

SVN.ERROR

This is popping up all over the show;

"Observium v0.SVN.ERROR Discovery"

Update needed for login sessions

Login sessions need to be more secure. Possible ideas:

  1. salt the password and store salt in users table.
  2. stop using any user details in cookies and simply use phpsessionid with all information needed stored in server sessions.

ARP autodiscovery settings

Need to decide whether it's a good idea to turn on ARP autodiscovery by default. LibreNMS is supposed to autodiscover things, but ARP autodiscovery might be a bit intensive. On my home install it reported on the first run of the autodiscovery: "21 devices discovered in 223.9 secs". On large networks a discovery like this could run for hours.

One option might be to limit the number of devices autodiscovered in a single run. However, because discovery only runs once every 6 hours, it might take a very long time to effectively discover a moderate-sized network.

To mitigate this, should we set a target time for full discovery, and then calculate how many hosts based on the size of the ARP tables? I could see myself trying to get too clever here...

RRD files not removed when deleting device

When deleting a device from the web interface, the rrd files and directories aren't removed. This will be due to those folders and files being owned by the user that the poller runs as (root).

Identify major functionality gaps

Observium has moved on since r3251 (the last GPL-licensed revision). We need to work out what functionality is missing that people need.

What's ugly?

I was struck by the visual difference between Observium 0.13.10.4586 and r3251, from which we forked. Some things that are much uglier:

  • Menu bar background that has a salmon tinge
  • Blue colour in:
    • main heading (top left)
    • widescreen and logout links (top right)
    • most device and interface links

Some things I like better on the old version:

  • Buttons and checkboxes in the edit -> port settings screen; I think sliders are gratuitous for on/off settings and checkboxes are a more well-understood control.

Any comments? What else have you found while testing?

Licensing review

Observium seems to be a bit of a licensing minefield. The overall Observium license for the revision from which LibreNMS was forked is GPLv3 or later, but there are a number of components included which may be in conflict with this. Candidates include:

  • JpGraph (html/includes/jpgraph): QPL 1.0 license
  • MIBS (mibs): unknown/various
  • html/graph-realtime.php: BSD (original?)
  • html/includes/collectd/: GPLv2 only
  • html/includes/tcpdf/fonts/dejavu-fonts-ttf-2.33: some sort of BSD?
  • overLIB (html/js/overlib_mini.js): modified Artistic 1.0?
  • scripts/*/mysql: GPLv2 only
  • check_mk (scripts/observium_agent*): GPLv2

Licenses which are OK according to http://www.gnu.org/licenses/license-list.html:

  • html/css/bootstrap.css: Apache v2.0
  • html/includes/tcpdf: LGPL v3
  • SortTable (html/js/sorttable.js: X11
  • Color.php (includes/console_colour.php): MIT
  • dbFacile (includes/dbFacile.php): MIT
  • PHPMailer (includes/phpmailer): LGPL
  • scripts/*/apache: GPLv2 or later
  • Cacti (scripts/removespikes.php): GPLv2 or later
  • jQuery (various locations): MIT or GPLv2
  • HTML5 Shiv (html/js/html5.js): MIT or GPLv2

Changing $config['install_dir'] in config.php makes no difference

Setting $config['install_dir'] in config.php is supposed to change the directory Libre is installed into, whilst this does happen the issue is the following variables depend on this:

$config['html_dir'] = $config['install_dir'] . "/html";
$config['rrd_dir'] = $config['install_dir'] . "/rrd";
$config['log_dir'] = $config['install_dir'] . "/logs";

Because $config['install_dir'] is already set just before these in defaults.php then they use the default of /opt/librenms rather than what might be set in config,php. The above variables need to be moved into definitions.inc.php and checked if they are already set before resorting to defaults.

ARP autodiscovery eventlog anomalies

The ARP autodiscovery as at c1f8a5c is working, but produces entries like this in the event log:

2013-11-02 16:45:20 eth3 Device autodiscovered through ARP on r1.example.com
2013-11-02 16:45:19 Device autodiscovered through ARP on r2.example.com

The entry should show the name of the host discovered. I should also work out why sometimes the interface is shown and sometimes it isn't.

Clicking logout should redirect to /

When you click logout, you are redirected to /logout/ which is then used if you re-authenticate from that page and thus, logs you back out :)

Migrate to mysqli

The mysql_ functions currently in use are deprecated as of PHP 5.5.0 in favor of the mysqli_ functions.

See the PHP FAQ for more details.

We need to start looking at a migration path.

Virtual Machine Image

Virtual Machine image should be created to help users try LibreNMS with minimal effort.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.