Instalacja i konfiguracja banku danych InfluxDB w Ubuntu Server 18.04

Z Thomas-Krenn-Wiki
Przejdź do nawigacji Przejdź do wyszukiwania

Instalacja i konfiguracja banku danych InfluxDB w Ubuntu Server 18.04

InfluxDB jest bazą danych open source z serii Time Series Database (TSDB). Jest zaprojektowany z myślą o dużych obciążeniach zapisu i zapytań, i stanowi integralną część stosu TICK (Telegraf, InfluxDB, Chronograf, Kapacitor). InfluxDB jest idealnym rozwiązaniem dla projektów, w których generowane są duże ilości danych opatrzonych stemplem czasowym, w tym monitorowania DevOps, metryk aplikacji, danych z czujników IoT i analizy w czasie rzeczywistym.[1] OPNsense oferuje możliwość instalacji agenta Telegraf jako agenta na firewallu. Pozwala to na wysłanie wybranych wartości pomiarowych do InfluxDB, a następnie ich wyświetlenie z frontendem takim jak Grafana. Ten artykuł pokazuje jak zainstalować i skonfigurować InfluxDB w Ubuntu 18.04.

Wizualizacja danych z InfluxDB za pomocą Grafana

Instalacja

Instalacja InfluxDB odbywa się pod Debianem i Ubuntu w następujący sposób:[2]

Dodawanie repozytorium i aktualizacja źródeł pakietów

Dodaj klucz archiwum i zaktualizuj źródła pakietów:

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

Instalacja InfluxDB

Za pomocą poniższego polecenia można zainstalować InfluxDB, zostanie przy tym utworzona usługa Systemd:

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) ...

Aktywacja usługi InfluxDB i jej uruchomienie

Po udanej instalacji InfluxDB może teraz zostać uruchomiony.

Usługa nie jest jeszcze aktywna

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/

Aktywacja usługi

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/

Uruchomienie usługi

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.

Uruchomienie bazy danych InfluxDB podczas uruchamiania systemu

Wygodniejszym rozwiązaniem jest aktywacja InfluxDB, dzięki czemu jest on uruchamiany podczas uruchamiania systemu:

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


Konfiguracja bazy danych InfluxDB

Po zainstalowaniu i uruchomieniu InfluxDB, w tej części dowiesz się jak skonfigurować bazę danych.

Tworzenie bazy danych i użytkownika

InfluxDB oferuje z "influx" narzędzie do komfortowej administracji. Poniższy przykład pokazuje konfigurację bazy danych o nazwie "opnsense" i użytkownika o nazwie "opnsense", następnie ten użytkownik otrzymuje niezbędne uprawnienia do bazy danych "opnsense".

$ 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

Wyświetlenie informacji o bazie danych

Za pomocą polecenia "SHOW DATABASES" można wyświetlić wszystkie utworzone bazy danych:

$ 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

Zakończenie CLI InfluxDB

Za pomocą "quit" można zakończyć CLI InfluxDB.

Zabezpieczenie InfluxDB

W tej części jest pokazane, jak można zabezpieczyć bazę danych InfluxDB.

Tworzenie użytkownika Admin[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

Następnie należy się zalogować za pomocą nazwy użytkownika i hasła

$ influx -username <Nazwa_użytkownika> -password <hasło>

Szyfrowana komunikacja z TLS: Utwórz certyfikat, a następnie dostosuj ustawienia protokołu HTTP dla Grafana.[4]

Tworzenie certyfikatu:

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

Dostosuj następujące wartości w sekcji [http] konfiguracji:

$ 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"

Restart usługi InfluxDB:

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

Wyświetlenie baz danych i pomiarów InfluxDB

Wykonaj następujące kroki, aby wyświetlić bazy danych i pomiary.

Logowanie w konsoli:

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

Wybór bazy danych:

> use opnsense
Using database opnsense

Wyświetlenie pomiarów:

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

Wizualizacja danych z Grafana

Teraz zebrane dane w bazie danych InfluxDB mogą być wyświetlane i przeglądane za pomocą pulpitu monitorującego, np. Grafana.[5]

Odnośniki

  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)

Autor: Thomas Niedermeier