InfluxDB Installation und Konfiguration unter Ubuntu Server 18.04
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.
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
- ↑ InfluxDB 1.7 documentation (docs.influxdata.com)
- ↑ Installing InfluxDB OSS (docs.influxdata.com)
- ↑ Authorization (docs.influxdata.com)
- ↑ Enabling HTTPS with InfluxDB (docs.influxdata.com)
- ↑ Using InfluxDB in Grafana (grafana.com)
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. |