Support for InfluxDB V2 API (#15861)

* Addition of influxdb-client-php to Composer.

* Addtion of InfluxDBv2 support.

* Addition of front-end options.

* Addition of documentation.

* Addition of the acknowledgement of the PHP library used.

* Fixed a unneeded bracket.

* Addition of a basic datastore test.

* StyleCI fixes.

* StyleCI fixes.

* StyleCI fixes.

* Fixed exception class.

* Revert accidental change.

* Fix to composer lock to not update all packages.

* Fix to composer lock to not update all packages, but still include the new Influx lib.

* Another attempt at getting Composer to behave the way I think it should work.

* Fixed merge-conflict in Composer due to #15869.

* Update composer.json

* Update composer.lock

* Update composer.json

* Update composer.lock

---------

Co-authored-by: Tony Murray <murraytony@gmail.com>
This commit is contained in:
Walkablenormal
2024-03-07 19:26:21 +01:00
committed by GitHub
parent 4975a984b6
commit c855d6c2fe
15 changed files with 853 additions and 73 deletions

View File

@@ -4,7 +4,7 @@ hide_toc: true
By default we ship all metrics to RRD files, either directly or via
[RRDCached](RRDCached.md). On top of this you can ship metrics to
Graphite, InfluxDB, OpenTSDB or Prometheus. At present you can't use
Graphite, InfluxDB (v1 or v2 API), OpenTSDB or Prometheus. At present you can't use
these backends to display graphs within LibreNMS and will need to use
something like [Grafana](https://grafana.com/).
@@ -13,5 +13,6 @@ the other backends then please see the documentation below.
- [Graphite](metrics/Graphite.md)
- [InfluxDB](metrics/InfluxDB.md)
- [InfluxDBv2](metrics/InfluxDBv2.md)
- [OpenTSDB](metrics/OpenTSDB.md)
- [Prometheus](metrics/Prometheus.md)

View File

@@ -0,0 +1,46 @@
# Enabling support for InfluxDBv2
Before we get started it is important that you know and understand
that InfluxDBv2 support is currently alpha at best. All it provides is
the sending of data to a InfluxDBv2 bucket. Due to the current changes
that are constantly being made to InfluxDB itself then we cannot
guarantee that your data will be ok so enabling this support is at
your own risk!
It is also important to understand that InfluxDBv2 only supports the
InfluxDBv2 API used in InfluxDB version 2.0 or higher. If you are
looking to send data to any other version of InfluxDB than you should
use the InfluxDB datastore instead.
## Requirements
- InfluxDB >= 2.0
The setup of the above is completely out of scope here and we aren't
really able to provide any help with this side of things.
## What you don't get
- Support for InfluxDB, we would highly recommend that you
have some level of experience with these.
RRD will continue to function as normal so LibreNMS itself should
continue to function as normal.
## Configuration
!!! setting "poller/influxdbv2"
```bash
lnms config:set influxdbv2.enable true
lnms config:set influxdbv2.transport http
lnms config:set influxdbv2.host '127.0.0.1'
lnms config:set influxdbv2.port 8086
lnms config:set influxdbv2.bucket 'librenms'
lnms config:set influxdbv2.token 'admin'
lnms config:set influxdbv2.allow_redirect true
lmns config:set influxdbv2.organization 'librenms'
```
The same data stored within rrd will be sent to InfluxDB and
recorded. You can then create graphs within Grafana or InfluxDB to display the
information you need.

View File

@@ -35,6 +35,7 @@ We list below what we make use of including the license compliance.
- Code for UBNT Devices Mark Gibbons <mgibbons@oemcomp.com> Initial code base submitted via PR721
- [Jquery LazyLoad](http://www.appelsiini.net/projects/lazyload): MIT License
- [influxdb-php](https://github.com/influxdb/influxdb-php): MIT License
- [influxdb-client-php](https://github.com/influxdata/influxdb-client-php): MIT License
- [HTML Purifier](http://htmlpurifier.org/): LGPL v2.1
- [Symfony Yaml](https://github.com/symfony/yaml): MIT
- [PHPMailer](https://github.com/PHPMailer/PHPMailer): LGPL v2.1