Zum Inhalt

Ü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. Grafana-Dashboards konfigurieren.

  5. Greifen Sie auf Grafana zu.

Schritt 1. Docker Compose-Datei erstellen

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

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:

Um Prometheus mit dem Endgerät 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-Endgerät 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.

Beispiel: 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.

Beispiel: 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
Beispiel: grafana/config.ini

[paths]
provisioning = /etc/grafana/provisioning

Beispiel: grafana/provisioning/datasources/all.yml

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

Beispiel: 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.

Schritt 5. 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 .