These docs are for v6.6. Click to read the latest docs for v6.7.

Timeseries InfluxDB

Description

Opsview Timeseries InfluxDB (opsview-timeseries-influxdb) provides a Timeseries storage framework. It consists of dedicated InfluxDB Updaters and Queries processes to maximize the throughput.

Note: This cannot be installed at the same time as opsview-timeseries-rrd.

Full details on setting up or migrating to the InfluxDB graphing engine can be found on Timeseries Graphing Engine.

InfluxDB Updaters

Opsview Timeseries InfluxDB Updaters launches a master management process that binds to the configured ports, for each port configured a worker process is started, each worker is responsible for handling the requests for the given port. That provides the guarantee that the data sent from Opsview Timeseries Enqueuer for a given host is handled by a single process only, thus removes the risk of processing the data out of order. The metadata (including the uoms) is stored in the SQlite3 database.

InfluxDB Queries

Opsview Timeseries InfluxDB Queries provide a way of querying the gathered performance metrics and listing them.

Dependencies

Opsview Timeseries InfluxDB can be installed on any supported platform. To reduce network traffic it is recommended to install it on the same host as the Opsview Timeseries Enqueuer component.

Prerequisites

You must separately install InfluxDB, unlike RRD it is not bundled with Opsview

🚧

You must use version 1.8.x or older for InfluxDB

# download package for your platform and follow the install documentation from InfluxDB
https://docs.influxdata.com/influxdb/v1.8/introduction/installation
  
# create a fresh Opsview database in InfluxDB
curl -i -XPOST http://127.0.0.1:8086/query --data-urlencode "q=CREATE DATABASE opsview"

Installation

Refer to Advanced Automated Installation.

Configuration

If opsview-timeseries-influxdb was installed on other then Opsview Timeseries or Timeseries Enqueuer host, you need to update the /opt/opsview/timeseriesinfluxdb/etc/timeseriesinfluxdb.yaml file to listen other than loopback interface.

---
timeseriesinfluxdb:
    server:
        user: opsview
        password: opsview
        updates:
            host: 127.0.0.1
            workers:
                - port: 1640
                - port: 1641
                - port: 1642
                - port: 1643
            logging:
                loggers:
                    opsview:
                        level: NOTICE
        queries:
            host: 127.0.0.1
            port: 1660
            default_parameters:
                data_points: 300
                fill_option: "null"
                min_time_slot: 0
                counter_metrics_mode: "per_second"
            logging:
                loggers:
                    opsview:
                        level: NOTICE
    data_dir: /opt/opsview/timeseriesinfluxdb/var/data
    influxdb:
        server: http://localhost:8086
        user:
        password:
        database: opsview
        retention_policy: default

All configurable options are listed in the /opt/opsview/timeseriesinfluxdb/etc/timeseriesinfluxdb.defaults.yaml and /opt/opsview/timeseriesinfluxdb/etc/timeseriesinfluxdb.yaml.example.

HTTPS

To enable HTTPS for a remote InfluxDB server:

  • Modify /opt/opsview/deploy/etc/opsview_deploy.yml to include:
influxdb_hosts:
  <InfluxDB hostname>:
    ip: <InfluxDB IP address>
  • Run:
/opt/opsview/deploy/bin/opsview-deploy /opt/opsview/deploy/lib/playbooks/influxdb-configuration.yml
  • As indicated by the output of the previous command, now update opsview_timeseries_influxdb_server_url in /opt/opsview/deploy/etc/user_vars.yml which indicates to use the loadbalancer to communicate with InfluxDB:
opsview_timeseries_influxdb_server_url: http://localhost:18086
  • Run
/opt/opsview/deploy/bin/opsview-deploy /opt/opsview/deploy/lib/playbooks/timeseries-install.yml

These steps will update the configuration of the InfluxDB server in /etc/influxdb/influxdb.conf to enforce HTTPS communication using the Opsview certificates.

Note: These steps do not apply when InfluxDB is running on the same host as the timeseries components.

To disable HTTPS for the InfluxDB server:

  • Remove influxdb_hosts from /opt/opsview/deploy/etc/opsview_deploy.yml

  • On the InfluxDB hosts, modify /etc/influxdb/influxdb.conf, to set

  https-enabled = false
  • On the InfluxDB host, run
sudo systemctl restart influxdb
  • Update opsview_timeseries_influxdb_server_url in /opt/opsview/deploy/etc/user_vars.yml
opsview_timeseries_influxdb_server_url: http://<InfluxDB host>:8086
  • Run
/opt/opsview/deploy/bin/opsview-deploy /opt/opsview/deploy/lib/playbooks/timeseries-install.yml

Service Administration

As root, start, stop and restart the service using:

/opt/opsview/watchdog/bin/opsview-monit <start|stop|restart> opsview-timeseriesinfluxdbupdates
/opt/opsview/watchdog/bin/opsview-monit <start|stop|restart> opsview-timeseriesinfluxdbqueries