Commit 2c9b65f2 authored by Karim El Aammari's avatar Karim El Aammari
Browse files

md rules

parent 6364e381
# MonitoringSetup
# vagrant-prometheus
## Einleitung
Mithilfe dieses Workflows können Sie mit Vagrant eine vollständige Monitoring-Infrastruktur aus den folgenden Komponenten, je auf einer virtuellen Maschine, idempotent erstellen.
Mithilfe dieses Workflows können Sie mit Vagrant eine vollständige Monitoring-Infrastruktur aus den folgenden Komponenten, je auf einer virtuellen Maschine, idempotent erstellen.
* Grafana (Visualisierung, Graphen, Dashboards)
* Prometheus (Node-Metriken abgreifen und an DB weiterleiten)
......@@ -15,22 +16,24 @@ Backup-mechanismus implementiert !
![overview](./docu/diagramme/overview.jpg)
## Voraussetzungen
Um diesen Workflow ausführen zu können müssen die folgenden Programme installiert sein:
* Vagrant (<https://www.vagrantup.com/>)
* VirtualBox(<https://www.virtualbox.org/>) oder ein anderer unterstützter Hypervisor
* Git (<https://git-scm.com/>)
Im Weiteren wird vorausgesetzt, dass Sie sich auf einem Linux basierten Betriebssystem befinden. Der Workflow funktioniert auch auf Windows, hierbei ist aber zu beachten, dass unter Windows standardmäßig Zeilenumbrüche mit CR & LF kodiert werden. Im Gegensatz zum einfachen LF Zeilenumbruch unter Linux. Da die Dateien mit dem File-Provisionierer übertragen werden, muss darauf geachtet werden, dass die Dateien mit einem einfachen LF gespeichert werden. In der Git-Konfiguration sollte demensprechend folgende Funktion abgeschaltet werden.
```
$ git config --global core.autocrlf false
```shell
git config --global core.autocrlf false
```
Diese ist normalerweise unter Windows eingeschaltet und ersetzt beim auschecken ein LF mit einem CRLF.
## Getting started
Um direkt zu starten, kopieren Sie mit folgendem Befehl das Projekt auf ihren Rechner und anschließend wechseln Sie in das erstellte Verzeichnis.
Um direkt zu starten, kopieren Sie mit folgendem Befehl das Projekt auf ihren Rechner und anschließend wechseln Sie in das erstellte Verzeichnis.
```shell
#TODO zur Gitlab-Gruppe verschieben
......@@ -46,25 +49,24 @@ Bevor die VMs gestartet werden, müssen die nötigen TLS-Zertifikate erzeugt wer
Nachdem die Zertifikate erzeugt wurden, können die VMs gestartet werden.
```shell
vagrant up
vagrant up
```
Anschließen starten nacheinander Influx, Prometheus, Grafana und Chronograf. Die Nodes, dessen Metriken erfasst werden sollen, müssen explizit gestartet werden, entweder einzeln oder als Regex.
Anschließen starten nacheinander Influx, Prometheus, Grafana und Chronograf. Die Nodes, dessen Metriken erfasst werden sollen, müssen explizit gestartet werden, entweder einzeln oder als Regex.
```shell
vagrant up {node-1 node-2 ... node-10 | /node-.*/}
vagrant up {node-1 node-2 ... node-10 | /node-.*/}
```
In der hier mitgelieferten Konfiguration ist auf den Influx-, Prometheus-, Grafana- und Chronograf-VMs derselbe node-exporter installiert wie auf den Nodes, sodass der Start der Nodes optional ist.
## Überwachen der Maschinen
Nachdem die Maschinen gestartet und die Provisionierung korrekt ausgeführt wurde, können wir über die von Vagrant weitergeleiteten Ports direkt auf die Dienste zugreifen.
Nachdem die Maschinen gestartet und die Provisionierung korrekt ausgeführt wurde, können wir über die von Vagrant weitergeleiteten Ports direkt auf die Dienste zugreifen.
* https://127.0.0.1:3000 (Grafana)
* https://127.0.0.1:8888 (Chronograf)
* http://127.0.0.1:9090 (Prometheus)
* <https://127.0.0.1:3000> (Grafana)
* <https://127.0.0.1:8888> (Chronograf)
* <http://127.0.0.1:9090> (Prometheus)
Wenn auf ihrem Betriebssystem diese Ports schon in Verwendung sind, können Sie in der Vagrantfile eine andere Zuordnung konfigurieren.
......@@ -75,24 +77,27 @@ Da die Dienste Grafana und Chronograf ein signiertes TLS-Zertifikat besitzen, k
```
## Backup- und Restore-Workflow
### Backup
Die InfluxDB ist durch einen Backup- und Restore-Mechanismus ausgestattet, mit dem wir die gesammelten Daten des Monitoringsystems extern speichern und zurück spielen können. In diesem Workflow wird Standardmäßig um 1 Uhr täglich ein Vollbackup ausgelöst, das separat zu den vorherigen Backups in einem Ordner mit Zeitstempel abgelegt wird. Konfigurieren können Sie den Timer mit der Datei: ```./provision/influx/config/backup.timer```. Wichtig zu beachten ist, dass das Backup in einen von VirtualBox geteilten Ordner zwischen VM ```/vagrant/backup``` und Projektverzeichnis ```./backup``` gespeichert wird! Wenn Ihr Hypervisor diese Funktion nicht unterstützt, müssen Sie die Backups von Hand aus der Influx-VM kopieren. Vagrant bietet hier alternativ Rsync oder SMB an.
Um ein manuelles Backup zu starten, führen Sie folgendes Skript aus.
```shell
./scripts/influx_backup.sh <PFAD>
./scripts/influx_backup.sh %PFAD%
```
Mit der <PFAD> Variable geben Sie den Ausgabepfad des Backups an. Dabei beschreibt der Pfad einen Speicherort innerhalb der VM.
Mit der %PFAD% Variable geben Sie den Ausgabepfad des Backups an. Dabei beschreibt der Pfad einen Speicherort innerhalb der VM.
### Restore
Um ein Backup in die InfluxDB wieder zurück zuspielen, benutzen Sie folgendes Skript.
```shell
./scripts/influx_restore.sh <PFAD>
```
Die <PFAD> Variable ist hierbei der Ordner indem sich die Backupdateien befinden. Sollte in Ihrer Influx-Instanz schon die Datenbank "prom" existieren, werden Sie gefragt ob Sie diese löschen wollen, um die "prom"-Datenbank aus dem Backup laden zu können. Diese Operation ist notwendig, da hier bei jedem Backup die vollständige Datenbank gesichert wird und dementsprechend eine vollständige Datenbank zurück gespielt wird.
Die %PFAD% Variable ist hierbei der Ordner indem sich die Backupdateien befinden. Sollte in Ihrer Influx-Instanz schon die Datenbank "prom" existieren, werden Sie gefragt ob Sie diese löschen wollen, um die "prom"-Datenbank aus dem Backup laden zu können. Diese Operation ist notwendig, da hier bei jedem Backup die vollständige Datenbank gesichert wird und dementsprechend eine vollständige Datenbank zurück gespielt wird.
Weitere Informationen und die Dokumentation finden Sie im Ordner ```./docu```.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment