InfluxDB Installation und Konfiguration unter Ubuntu Server 18.04

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

Die InfluxDB ist eine Open Source Time Series Database. Sie ist für hohe Schreib- und Abfragelasten ausgelegt und ein integraler Bestandteil des TICK-Stacks (Telegraf, InfluxDB, Chronograf, Kapacitor). InfluxDB bietet sich bei Szenarien an, bei dem große Mengen an Daten mit Zeitstempeln anfallen, einschließlich DevOps-Überwachung, Anwendungsmetriken, IoT-Sensordaten und Echtzeitanalysen.[1] OPNsense bietet die Möglichkeit, Telegraf als Agent auf der Firewall zu installieren, an. Damit können die gewünschten gemessenen Werte an eine InfluxDB geschickt werden und anschließend mit einem Frontend wie Grafana angezeigt werden. Dieser Artikel zeigt, wie Sie die InfluxDB unter Ubuntu 18.04 installieren und konfigurieren.

Visualisierungsmöglichkeit der InfluxDB Daten mit Grafana

Installation

Die Installation der InfluxDB nehmen Sie unter Debian und Ubuntu wie folgt vor:[2]

Repository hinzufügen und Paketquellen aktualisieren

Fügen sie den Key des Archivs hinzu und aktualisieren Sie die Paketquellen:

tk@monitoringlesv2:~$ wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -
[sudo] password for tk: 
OK
tk@monitoringlesv2:~$ source /etc/lsb-release
tk@monitoringlesv2:~$ echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
deb https://repos.influxdata.com/ubuntu bionic stable
tk@monitoringlesv2:~$ sudo apt update

InfluxDB installieren

Mit dem folgenden Kommando kann nun die InfluxDB installiert werden, es wird dabei auch gleich ein Systemd Dienst angelegt:

tk@monitoringlesv2:~$ sudo apt install influxdb
[...]
The following NEW packages will be installed:
  influxdb
[...]
Setting up influxdb (1.7.10-1) ...
Created symlink /etc/systemd/system/influxd.service → /lib/systemd/system/influxdb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/influxdb.service → /lib/systemd/system/influxdb.service.
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...

InfluxDB Service aktivieren und starten

Nach einer erfolgreichen Installation kann nun die InfluxDB gestartet werden.

Noch ist der Dienst nicht aktiv

tk@monitoringlesv2:~$ sudo systemctl status influxdb.service
● influxdb.service - InfluxDB is an open-source, distributed, time series database
   Loaded: loaded (/lib/systemd/system/influxdb.service; enabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: https://docs.influxdata.com/influxdb/

Dienst aktivieren

tk@monitoringlesv2:~$ sudo systemctl unmask influxdb.service

tk@monitoringlesv2:~$ sudo systemctl status influxdb.service
● influxdb.service - InfluxDB is an open-source, distributed, time series database
   Loaded: loaded (/lib/systemd/system/influxdb.service; enabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: https://docs.influxdata.com/influxdb/

Dienst starten

tk@monitoringlesv2:~$ sudo systemctl start influxdb

tk@monitoringlesv2:~$ sudo systemctl status influxdb.service
● influxdb.service - InfluxDB is an open-source, distributed, time series database
   Loaded: loaded (/lib/systemd/system/influxdb.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-02-20 12:17:37 UTC; 2s ago
     Docs: https://docs.influxdata.com/influxdb/
 Main PID: 2354 (influxd)
    Tasks: 9 (limit: 2124)
   CGroup: /system.slice/influxdb.service
           └─2354 /usr/bin/influxd -config /etc/influxdb/influxdb.conf

Feb 20 12:17:37 monitoringlesv2 systemd[1]: Started InfluxDB is an open-source, distributed, time series database.

InfluxDB beim Systemstart ausführen

Die bequemere Lösung ist aber eine Aktvierung, damit wird InfluxDB auch beim Systemstart gleich mit gestartet:

tk@monitoringlesv2:~$ sudo systemctl enable influxdb.service


InfluxDB einrichten

Nach der Installation und dem Start der InfluxDB wird in diesem Abschnitt gezeigt, wie Sie eine Datenbank einrichten.

Datenbank und User anlegen

Die InfluxDB bietet mit "influx" ein Kommandozeilenwerkzeug zur bequemen Administrierung an. Das nachfolgende Beispiel zeigt die Konfiguration einer Datenbank mit der Bezeichnung "opnsense" und eines Benutzers mit der Bezeichnung "opnsense", diesem Benutzer werden anschließend noch die erforderlichen Rechte für die Datenbank "opnsense" verliehen.

$ influx
Connected to http://localhost:8086 version 1.7.10
InfluxDB shell version: 1.7.10
> CREATE DATABASE "opnsense"
> CREATE USER "opnsense" WITH PASSWORD '<Passwort>'
> SHOW GRANTS FOR "opnsense"
database privilege
-------- ---------
> GRANT ALL ON "opnsense" to "opnsense"
> SHOW GRANTS FOR "opnsense"
database privilege
-------- ---------
opnsense ALL PRIVILEGES

Datenbankinformationen anzeigen

Mit dem Kommando "SHOW DATABASES" können Sie alle angelegten Datenbanken anzeigen lassen:

$ influx
Connected to http://localhost:8086 version 1.7.10
InfluxDB shell version: 1.7.10
> SHOW DATABASES
name: databases
name
----
_internal
opnsense
> SHOW USERS
user     admin
----     -----
opnsense false

InfluxDB CLI beenden

Mit "quit" können Sie die InfluxDB CLI wieder beenden.

InfluxDB absichern

Dieser Abschnitt zeigt, wie Sie die InfluxDB absichern können.

Admin User erstellen[3]

$ influx
Connected to http://localhost:8086 version 1.7.10
InfluxDB shell version: 1.7.10
> CREATE USER admin WITH PASSWORD '<Passwort>' WITH ALL PRIVILEGES
< quit

Anschließend anmelden mit Username und Passwort

$ influx -username <benutzername> -password <passwort>

Verschlüsselte Kommunikation mit TLS Erstellen Sie ein Zertifikat und passen Sie anschießend die Grafana HTTP Einstellungen an.[4]

Zertifikat erstellen:

tk@monitoringlesv2:~$ sudo openssl req -x509 -nodes -newkey rsa:2048 \
>   -keyout /etc/ssl/influxdb-selfsigned.key \
>   -out /etc/ssl/influxdb-selfsigned.crt \
>   -days 365

Folgende Werte in der Sektion [http] der Konfiguration anpassen:

$ sudo vi /etc/influxdb/influxdb.conf

  enabled = true
  bind-address = ":8086"
  auth-enabled = true
  log-enabled = true
  write-tracing = false
  pprof-enabled = true
  pprof-auth-enabled = true
  debug-pprof-enabled = false
  ping-auth-enabled = true
  https-enabled = true # Funktioniert nicht in Verbindung mit Telegraf auf einer OPNsense Firewall, das selbstsignierte Zertifikat wird nicht akzeptiert.
  https-certificate = "/etc/ssl/influxdb-selfsigned.crt"
  https-private-key = "/etc/ssl/influxdb-selfsigned.key"

InfluxDB Service neustarten:

tk@monitoringlesv2:~$ sudo systemctl restart influxdb.service

InfluxDB Datenbanken und Measurements anzeigen

Führen Sie die folgenden Schritte zur Anzeige der Datenbanken und Measurements aus.

Anmelden an der Konsole:

tk@monitoringlesv2:~$ influx -username admin -password <admin-pw>
Connected to http://localhost:8086 version 1.7.10
InfluxDB shell version: 1.7.10

Datenbank auswählen:

> use opnsense
Using database opnsense

Measurements anzeigen:

> show measurements
name: measurements
name
----
cpu
disk
diskio
mem
net
processes
system

Visualisierung der Daten mit Grafana

Die nun gesammelten Daten in einer InfluxDB Datenbank können mit einem Monitoring-Dashboard, z.B. Grafana angezeigt und ausgewertet werden.[5]

Einzelnachweise

  1. InfluxDB 1.7 documentation (docs.influxdata.com)
  2. Installing InfluxDB OSS (docs.influxdata.com)
  3. Authorization (docs.influxdata.com)
  4. Enabling HTTPS with InfluxDB (docs.influxdata.com)
  5. Using InfluxDB in Grafana (grafana.com)
Foto Thomas Niedermeier.jpg

Autor: Thomas Niedermeier

Thomas Niedermeier arbeitet im Product Management Team von Thomas-Krenn. Er absolvierte an der Hochschule Deggendorf sein Studium zum Bachelor Wirtschaftsinformatik. Seit 2013 ist Thomas bei Thomas-Krenn beschäftigt und kümmert sich unter anderem um OPNsense Firewalls, das Thomas-Krenn-Wiki und Firmware Sicherheitsupdates.

Icon-Twitter.png 

Das könnte Sie auch interessieren

Icinga Web 2 mit Icinga 2 verwenden
Monitoring Plugins in check mk verwenden
Thola