Aufruf mit -m - also NUR Mongo
Docs angepasst
This commit is contained in:
105
docs/Readme.md
105
docs/Readme.md
@@ -1,6 +1,105 @@
|
||||
# Installation der Container
|
||||
rxf 2023-10-25
|
||||
#### Dateien
|
||||
#### Aufrufe
|
||||
rxf 2023-11-30
|
||||
### Dateien
|
||||
#### Directory-Struktur
|
||||
Die Datei **noise.tgz** enthält die folgenden Dateien und Verzeichnisse:
|
||||
|
||||
~~~
|
||||
<LOCALDIR>
|
||||
|
|
||||
+- <d>noisesensors
|
||||
|
|
||||
+- <f>docker-compose.yml
|
||||
+- <d>log
|
||||
+- <d>data
|
||||
| +- <d>mongo
|
||||
| | +- <d>data
|
||||
| | +- <d>entries
|
||||
| | | +- <f>create.js
|
||||
| + <d>influx
|
||||
| | + <d>data
|
||||
|
||||
<f>: file, <d>: directory
|
||||
~~~
|
||||
|
||||
* **docker-compose.yml**
|
||||
enthält die Anweisungen für die Docker-Container. Dies kann so an das aktuelle Portainer-Stack angehängt werden.
|
||||
* **log**
|
||||
Ablage für die Logdateien der einzelnene Container (**noise.log**, **sensorapi.log** und **readin.log**) . Diese werden täglich komprimiert. Es werden Versionen für 7 Tage aufgehoben.
|
||||
* **data**
|
||||
hier darunter befinden sich alle Daten, sowohl die Datenbanken als auch Konfigurationen. Außerdem werden jeweils die laufend eingelesenen Daten als **actdata.json** abgelegt. Diese werden bei jedem neuen Einlesen wieder überschrieben.
|
||||
* **data/mongo**
|
||||
Verzeichnis für die Mongo-Datenbank
|
||||
* **data/mngo/data**
|
||||
hier befinden sich die eingelesenen Daten
|
||||
* **data/mongo/entries**
|
||||
hier liegt die Datei **create.js**, mit deren Hilfe bei ersten Start der Datenbank die Collections und die Indexe erzeugt werden.
|
||||
* **data/influx**
|
||||
Verzeichnis für die Influx-Datenbank
|
||||
* **data/influx/data**
|
||||
Hier dann die eingelesenen Daten
|
||||
|
||||
|
||||
### Aufrufe
|
||||
Entpacken des Tar-Files **noise.tgz** in einem beliebigen Verzeichnis (das Direktoty *noisesensors* wird angelegt). Der komplette Pfad zu dem Verzeichnis (also ab root) muss in der Environmentvariablen **LOCALDIR** hinterlegt werden.
|
||||
|
||||
Nun das *docker-compose.yml* in das Portainer-Stack einfügen. Zusätzlich folgende Environment-Variablen festlegen:
|
||||
|
||||
~~~
|
||||
DOCKER_INFLUXDB_INIT_USERNAME=<username>
|
||||
DOCKER_INFLUXDB_INIT_PASSWORD=<passwort>
|
||||
DOCKER_INFLUXTOKEN=<token>
|
||||
MONGO_ROOT_USERNAME=<username1>
|
||||
MONGO_ROOT_PASSWORD=<passwort1>
|
||||
LOCALDIR=<directory, in die das .tgz entpackt wurde>
|
||||
~~~
|
||||
\<username>, \<passwort>, \<username1>, \<passwort1> und \<token> sind anzupassen.
|
||||
|
||||
Danach einloggen in das Docker-Registry auf *citysensor.de*:
|
||||
|
||||
~~~
|
||||
docker login docker.citysensor.de
|
||||
~~~
|
||||
Einloggen mit Username und Passwort (siehe mail), anschließend kann das Portainer-Stack gestartet werden (die Container werden beim ersten mal automatisch von *docker.citysensor.de* herunter geholt).
|
||||
|
||||
Damit sollte dann Alles laufen. Das Programm holt alle 5min die neuesten Daten von *sensor.community* ab und speichert sie in der Influx- und in der Mongo-Datenbank.
|
||||
Das Logfile kann via **tail -f log/noise.log** im Verzeichnise **noisesensors** mitgeschrieben werden.
|
||||
|
||||
|
||||
### Container
|
||||
* **readin**
|
||||
Über diesen Container werden alle 5 min. die aktuellen Daten von *sensor.community* abgeholt und in den beiden Datenbanken gespeichert
|
||||
|
||||
* **logrotate**
|
||||
Mit Hilfe dieses Containers werde die Log-Files im Unterverzeichnis *log* täglich rotiert. Es werden 7 Versionen behalten, ältere gelöscht.
|
||||
|
||||
* **sensorapi**
|
||||
Über diesen Container werde die Daten aus der Mongo-Datenbank ausgelesen, aufbereitet und als JSON- oder CSV-Datei ausgegeben.
|
||||
|
||||
* **noise**
|
||||
Mit diesem Container wird die Grafik aufbereitet. Auch kann darüber die API (im Container *sensorapi*) angesprochen und die Daten abgerufen werden. (Für die Parameter der Anfrage siehe die extra Beschreibung **Laerm_API**). Dieser Container sollte von außen über einen Domainnamen erreichbar sein. Ansonsten hört er auf **Port 3003** auf HTTP-Anfragen.
|
||||
|
||||
* **mongodb**
|
||||
Die Mongo-Datenbank. Es gibt eine Datenbank namens **sensor_data**. Diese hat folgende Collections:
|
||||
* noise_sensors
|
||||
Hier weden die reinen Messwerte der einzelnen Sensoren (time, sensorid, Werte) gesammelt.
|
||||
* properties
|
||||
Hier liegen für alle Sensoren die Metadaten (wie Ortskoordinaten, Typ, Zeitpunkt der letzten Übertragung etc.)
|
||||
* statistics
|
||||
Dient nur Kontrolle, schreibt verschiedenen Statistikdaten wie Dauer des Einlesens, Dauer des Speicherns in den DBs etc.
|
||||
**Zugriff:**
|
||||
Am Besten über das Programm **MongoDB Compass**. Zugangsdaten entprechend der im Portainer hinterlegten.
|
||||
|
||||
* **influxdb**
|
||||
Die Influx-Datenbank. Hier werden in dem Bucket *sensor_data* die reinen Messwert der einzelnen Sensoren gespeichert.
|
||||
**Zugriff:**
|
||||
http://\<server>:8086
|
||||
Logindaten: Entsprechen der im Portainer hinterlegten.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user