Commit Graph
12 Commits
Author SHA1 Message Date
Maximilian Wilhelm 6ef1cf9e43 Add ability to map ports based on their ifAlias.
Signed-off-by: Maximilian Wilhelm <max@rfc2324.org>
2016-02-05 11:40:37 +01:00
Maximilian Wilhelm 76a29f41e3 Fix detection of deleted interfaces for ifName/ifDescr port association mode.
The previous ifIndex based port mapping schema did detect deleted ports
  by checking ports in the DB against the ports currently polled via SNMP
  which breaks when using another port mapping schema. This commit fixes
  problem by checking known and found ports by their port_id.

Signed-off-by: Maximilian Wilhelm <max@rfc2324.org>
2016-02-03 22:48:18 +01:00
Maximilian Wilhelm ec5d0dfd89 Remove redundant code from port-{adsl,etherlike,poe} polling submodules.
$this_port already gets defined within include/polling/ports.inc.php
  so there's no need to redefine it again in each submodule.

Signed-off-by: Maximilian Wilhelm <max@rfc2324.org>
2016-02-03 21:14:25 +01:00
Maximilian Wilhelm 5521002b37 Fix port association for adsl, etherlike and poe port information.
In 2c9df26bbf I broke the association of
  ports in the DB and ports just polled via SNMP for the adsl, etherlike
  and poe submodules and no one noticed. This fixes this issue. Sorry.

Signed-off-by: Maximilian Wilhelm <max@rfc2324.org>
2016-02-03 21:14:25 +01:00
Maximilian Wilhelm 79eab54fd9 Allow ignoring unmapable interfaces in poller.
When using the ifName or ifDescr as means to map discovered ports to
  known ports in the DB (think of port association mode) it's possible
  that we're facing the problem that the ifName or ifDescr polled from
  the device is unset or an empty string (like when querying some ubnt
  devices...). If this happends we have no way to map this port to any
  port found in the database. As reported this situation may occur for
  the time of one poll and might resolve automagically before the next
  poller run happens. Without this special case this would lead to new
  ports added to the database each time this situation occurs. To give
  the user the choice between »a lot of new ports« and »some poll runs
  are missed but ports stay stable« the 'ignore_unmapable_port' option
  has been added to configure this behaviour. To skip the port in this
  loop is sufficient as the next loop is looping only over ports found
  in the database and "maps back". As we did not add a new port to the
  DB here, there's no port to be mapped to.

  I'm using the in_array() check here, as I'm not sure if an "ifIndex"
  can be legally set to 0, which would yield True when checking if the
  value is empty().

Signed-off-by: Maximilian Wilhelm <max@rfc2324.org>
2016-02-03 21:14:24 +01:00
Maximilian Wilhelm 63f18a86d4 Dear Scrutinizer, please check my code. Thank you. 2016-01-26 14:06:53 +01:00
Maximilian Wilhelm 8c704f7bdf Allow editing port association mode of a device.
Add a select box to the device SNMP edit page in the WebUI to update
  the port association mode of a device.

Signed-off-by: Maximilian Wilhelm <max@rfc2324.org>
2016-01-26 13:50:00 +01:00
Maximilian Wilhelm 2ae99e50f5 Add support for setting port association mode when adding a host.
This adds a '-p' switch to addhost.php and a select box to the WebUI to
  set the port association mode for newly added devices.

Signed-off-by: Maximilian Wilhelm <max@rfc2324.org>
2016-01-26 13:49:57 +01:00
Maximilian Wilhelm 4d78a0261e Update graph and port pages to use new RRD naming schema.
Signed-off-by: Maximilian Wilhelm <max@rfc2324.org>
2016-01-26 13:49:54 +01:00
Maximilian Wilhelm 2c9df26bbf Update discovery and poller to allow stable interface mapping by ifName/ifDescr based port mapping.
By default libreNMS used the ifIndex to associate ports just found via SNMP
  with ports discoverd/polled before and stored in the database. On Linux boxes
  this is a problem as ifIndexes are rather likely to be unstable between reboots
  or (re)configuration of tunnel interfaces (think: GRE/OpenVPN/Tinc/...), bridges,
  Vlan interfaces, Bonding interfaces, etc.

  This patch adds a »port association mode« configuration option per device which
  allows to map discovered and known ports by their ifIndex, ifName, ifDescr, or
  maybe other means in the future.
  The default port association mode still is ifIndex for compatibility reasons.

  As port RRD files were stored by their ifIndex before, they are now identified
  by their unique and stable port_id to ensure a stable and unique mapping and
  allow future port association modes to be added without requireing any further
  internal changes. Existing RRD files are renamend accordingly in discovery and
  poller tools to ensure stability of port associations in both modules as we
  don't know which might run first after an update.

Signed-off-by: Maximilian Wilhelm <max@rfc2324.org>
2016-01-26 13:49:30 +01:00
Maximilian Wilhelm 6d576a4d3c I agree to the conditions of the Contributor Agreement contained in doc/General/Contributing.md.
Signed-off-by: Maximilian Wilhelm <max@rfc2324.org>
2016-01-21 21:50:44 +01:00
Maximilian Wilhelm 64ce4f335f Add HTTP Authentication / LDAP Authorization module.
This Authentitation / Authorization module provides the ability to let
  the webserver (e.g. Apache) do the user Authentication (using Kerberos
  f.e.) and let libreNMS do the Authorization of the already known user.
  Authorization and setting of libreNMS user level is done by LDAP group
  names specified in the configuration file. The group configuration is
  basicly copied from the existing ldap Authentication module.

  To save lots of redundant queries to the LDAP server and speed up the
  libreNMS WebUI, all information is cached within the PHP $_SESSION as
  long as specified in $config['auth_ldap_cache_ttl'] (Default: 300s).

Signed-off-by: Maximilian Wilhelm <max@rfc2324.org>
2016-01-21 21:49:08 +01:00