7.1 Überwachen der Sitzungssserver mit Prometheus und Grafana

Sie können Host Access for the Cloud-Sitzungsserver mit Prometheus und Grafana überwachen. Beide Werkzeuge sind kostenlose Open-Source-Lösungen und können in Docker-Containern ausgeführt werden, was eine einfache Bereitstellung ermöglihcht. Jeder Sitzungsserver stellt einen Prometheus-Endpunkt bereit, der Metriken zum Server präsentiert. Prometheus kann zum Analysieren von Daten von diesem Endgerät und fortwährenden Speichern dieser Daten, auch von mehreren Sitzungsservern, konfiguriert werden. Grafana stellt dann ein Dashboard bereit, mit dem die Daten mit nur wenigen Einrichtungsschritten abgerufen und grafisch dargestellt werden können.

Voraussetzungen:

Docker und Docker Compose müssen installiert sein.

Schritte:

  1. Erstellen Sie eine Docker Compose-Datei (.yml), die Grafana- und Prometheus-Images enthält.

  2. Verknüpfen Sie Prometheus mit dem Prometheus-Endpunkt des Sitzungsservers.

  3. Konfigurieren Sie die Grafana-Datenquelle zur Kommunikation mit Prometheus und importieren Sie die vorkonfigurierten Dashboards.

  4. Konfigurieren Sie die Grafana-Dashboards..

  5. Greifen Sie auf Grafana zu.

Schritt 1. Docker Compose-Datei erstellen

Erstellen Sie die Datei docker-compose.yml file mit Grafana- und Prometheus-Images.

docker-compose.yml

version: "3.1"
services:
  grafana:
    build: grafana
    ports:
      - '3000:3000'
    prometheus:
      image: prom/prometheus:v2.6.1
      ports:
        - '9090:9090'
      volumes:
        - ./config/prometheus.yml:/etc/prometheus/prometheus.yml
        - ./prometheus:/prometheus
      networks:
        monitoring:
          aliases:
            - prometheus
    networks:
      monitoring:

Schritt 2. Prometheus mit dem Prometheus-Endpunkt von HACloud verknüpfen

Um Prometheus mit dem Endpunkt zu verknüpfen, generieren Sie eine Datei prometheus.yml.

  • In diesem Beispiel wird die Datei „prometheus.yml“ im Konfigurationsverzeichnis gespeichert.

  • Diese Beispielkonfiguration ermöglicht das Analysieren von Daten vom Prometheus-Endpunkt mit HTTP oder HTTPS (TLS).

    Falls TLS auf dem Sitzungsserver deaktiviert ist, entfernen Sie tls_config und ändern Sie das Schema in der Beispielkonfiguration zu http.

  • Konfigurieren Sie session-server-hostname (den Hostnamen des Sitzungsservers).

    HINWEIS:Aufgrund des Docker-Networking muss dies die eigentliche IP-Adresse oder der Hostname des Sitzungsserver-Hostcomputers sein. Diese IP-Adresse kann üblicherweise mit ifconfig/ipconfig abgerufen werden.

  • Passen Sie die Ports je nach Bedarf an.

config/prometheus.yml

scrape_configs: - ']
  - job_name: 'HACloud Session Server with TLS'
  scrape_interval: 15s
  scheme: https
  tls_config:
  insecure_skip_verify: true
  metrics_path: actuator/prometheus
  static_configs:
  - targets: ['session-server-hostname:7443'] 

Schritt 3. Kommunikation zwischen Prometheus und der Datenquelle konfigurieren

Die Kommunikation zwischen der lokalen Instanz von Prometheus und der Grafana-Datenquelle kann im Grafana-Docker-Image konfiguriert werden. Vorab geladene Dashbaords sind beim Starten verfügbar.

grafana/Dockerfile

FROM grafana/grafana:5.3.2
  ADD ./provisioning /etc/grafana/provisioning
  ADD ./config.ini /etc/grafana/config.ini
  ADD ./dashboards /var/lib/grafana/dashboards

grafana/config.ini

[paths]
  provisioning = /etc/grafana/provisioning

grafana/provisioning/datasources/all.yml

datasources:
  - name: 'Prometheus'
  type: 'prometheus'
  access: 'browser'
  url: 'http://localhost:9090'
  is_default: true
  editable: false

grafana/provisioning/dashboards/all.yml

- name: 'default'
  org_id: 1
  folder: ''
  type: 'file'
  options:
  folder: '/var/lib/grafana/dashboards'

Schritt 4. Grafana-Dashboards konfigurieren

Die JSON-Beispieldatei hilft Ihnen beim Einstieg in die Konfiguration Ihrer Grafana-Dashboards.

So sorgen Sie dafür, dass Ihr Docker-Container das Dashboard beim Start lädt:

  • Suchen Sie HACloudSessionservers.json im Verzeichnis hacloud/utilities/grafana.

  • Kopieren Sie HACloudSessionservers.json in Ihr Verzeichnis grafana/dashboards.

5. Schritt. Auf Grafana zugreifen

  • Starten Sie den Docker-Container mit dem Befehl docker-compose up -d.

  • Überprüfen Sie mit http://localhost:9090/targets, ob die Prometheus-Ziele die Sitzungsserver erfolgreich analysieren.

  • Greifen Sie mit http://localhost:3000 auf Grafana zu.

  • Benutzername und Passwort lauten admin. Der Benutzername und das Passwort können in mit Docker-Umgebungsvariablen konfiguriert werden.

  • Stoppen Sie den Docker-Container mit dem Befehl docker-compose down .