InfluxDB to zaawansowana baza danych typu time series (TSDB), zaprojektowana z myślą o przechowywaniu, przetwarzaniu i analizie danych czasowych. Jest często używana w monitoringu infrastruktury IT, IoT oraz aplikacjach analitycznych, gdzie ważne jest śledzenie zmian danych w czasie rzeczywistym. Rozwiązanie to używam w moim laboratorium domowym, między innymi w połączeniu z systemem automatyki domowej Domoticz.
Wdrożenie
- Instalacja kontenera influxdb poprzez portal.azure.com jako kolejna aplikacja Web App, z wykorzystaniem już używanego App Service Plan.
- Dodanie nowego udziału File Share – fs-influxdb w istniejącym koncie Storage Account.
- Dołączenie dodatkowego udziału pamięci trwałej do aplikacji poprzez komendy Azure CLI, zgodnie z wymaganiami wybranego kontenera (w tym przypadku montowanie wymagane pod ścieżką /var/lib/influxdb2).
STORAGE_KEY=$(az storage account keys list --resource-group rg-uptime-kuma --account-name stukyistpr7jvzgr6 --query "[0].value" --output tsv)
echo $STORAGE_KEY
az webapp config storage-account add --resource-group rg-uptime-kuma --name wa-influxdb-activum24pl --custom-id DataStorage --storage-type AzureFiles --account-name stukyistpr7jvzgr6 --share-name fs-influxdb --access-key FcZ**************************/A== --mount-path /var/lib/influxdb2
Konfiguracja InfluxDB
- Utworzenie konta admin.
- Wprowadzenie podstawowych informacji o organizacji i domyślnym obszarze danych (bucket).
- Zapisanie tokena dostępowego, wymaganego dla systemów klienckich, które będą zapisywać lub odczytywać gromadzone dane w bazie.
- Do InfluxDB wysyłam dane monitorujące pracę mojego klastra Proxmox. Proxmox wspiera wysyłanie danych do InfluxDB. Wymagana jest prosta konfiguracja danych dostępowych do instancji InfluxDB w Proxmox.
Użytkowanie – Web UI
InfluxDB dostępny jest pod adresem: https://wa-influxdb-activum24pl.azurewebsites.net
InfluxDB umożliwia poprzez kreator, generowanie zapytań o dane i prezentowanie wyników w postaci tabel lub wykresów. Dostępny jest także kreator dashboard-ów. Poniżej przykładowy stworzony panel.
Wykresy i panele w InfluxDB oceniam jednak jako dodatek, mają znaczące ograniczenia. We wcześniejszych wersjach InfluxDB panele nie były dostępne. Między innymi dla tego do prezentacji danych zbieranych w InfluxDB wykorzystuję Grafanę. InfluxDB i Grafana to bardzo dobry duet narzędzi do zbierania i prezentowania danych w różnych układach.
Poprzez odpowiednią konfigurację w Uptime-Kuma monitoruję też aktywność i dostęp do wystawionej aplikacji webowej InfluxDB.
Grafana
Grafana to popularne narzędzie do wizualizacji danych, które umożliwia tworzenie interaktywnych i estetycznych pulpitów nawigacyjnych (paneli). Grafana może korzystać z wielu źródeł danych, takich jak InfluxDB, Prometheus, a także może łączy się do baz danych, np. MySQL, czy PostgreSQL. Możliwa jest integracja i analiza danych z różnych systemów w jednym miejscu. Dostępne są różnorodne wykresy, wskaźniki i panele, na których można w czasie rzeczywistym monitorować wydajność systemów, aplikacji czy infrastruktury IT. Użytkownicy chętnie wybieraj Grafanę ze względu na elastyczność, skalowalność oraz łatwość w konfiguracji i użytkowaniu.
Wdrożenie
- Instalacja kontenera garfana/grafana poprzez portal.azure.com jako kolejna aplikacja Web App, z wykorzystaniem już używanego App Service Plan.
- Dodanie nowego udziału File Share – fs-grafana w istniejącym koncie Storage Account.
- Dołączenie dodatkowego udziału pamięci trwałej do aplikacji poprzez komendy Azure CLI, zgodnie z wymaganiami wybranego kontenera (w tym przypadku montowanie wymagane pod ścieżką /var/lib/grafana).
STORAGE_KEY=$(az storage account keys list --resource-group rg-uptime-kuma --account-name stukyistpr7jvzgr6 --query "[0].value" --output tsv)
echo $STORAGE_KEY
az webapp config storage-account add --resource-group rg-uptime-kuma --name wa-grafana-activum24pl --custom-id DataStorage --storage-type AzureFiles --account-name stukyistpr7jvzgr6 --share-name fs-grafana --access-key FcZ**********************************************D/A== --mount-path /var/lib/grafana
Konfiguracja Grafana
- Utworzenie konta admin.
- Konfiguracja źródła danych – InfluxDB Datasource
- Import gotowego panelu do monitorowania stanu klastra Proxmox – https://grafana.com/grafana/dashboards/15356-proxmox-cluster-flux/
Użytkowanie – Web UI
Grafana dostępna jest pod adresem: https://wa-grafana-activum24pl.azurewebsites.net
Grafana świetnie się sprawdza jako środowisko prezentacji danych. Tak jak widać na powyższym przykładzie, szybkie spojrzenie na taką wizualizację daje administratorowi pełną wiedzę na temat bieżącego stanu klastra Proxmox. Dostępna jest także pełna historia danych, którą można analizować w różnych układach.
Grafana także została dodana w Uptime-Kuma do monitorowanych usług.