È possibile monitorare i server di sessione di Host Access for the Cloud utilizzando Prometheus e Grafana. Entrambi questi strumenti sono gratuiti, open source ed eseguibili nei container di Docker, caratteristiche che ne rendono semplice la distribuzione. Ciascun server di sessione fornisce un endpoint Prometheus che espone le metriche su tale server. Prometheus può essere configurato per recuperare i dati da questo endpoint e memorizzare regolarmente le metriche anche se provengono da più server di sessione. Grafana quindi fornisce un dashboard in cui è possibile eseguire query e visualizzare questi dati con una configurazione minima.
Prerequisiti:
Docker e Docker Compose devono essere installati.
Passaggi:
Creare un file Docker Compose (.yml) che contenga entrambe le immagini di Grafana e Prometheus.
Collegare Prometheus all'endpoint Prometheus del server di sessione.
Configurare l'origine dati di Grafana affinché comunichi con Prometheus e importare i dashboard preconfigurati.
Configurare i dashboard Grafana.
Accedere a Grafana.
Passaggio 1. Creare un file Docker Compose
Creare un file docker-compose.yml contenente le immagini di Grafana e Prometheus.
docker-compose.yml
versione: "3.1"
servizi:
grafana:
build: grafana
porte:
- '3000:3000'
prometheus:
immagine: prom/prometheus:v2.6.1
porte:
- '9090:9090'
volumi:
- ./config/prometheus.yml:/etc/prometheus/prometheus.yml
- ./prometheus:/prometheus
networks:
monitoring:
aliases:
- prometheus
networks:
monitoring:
Passaggio 2. Collegare Prometheus al proprio endpoint Prometheus di HACloud
Per collegare Prometheus al proprio endpoint, generare un file prometheus.yml.
Nel nostro esempio il file prometheus.yml viene salvato nella directory config.
In questo esempio config consente di recuperare l'endpoint di Prometheus utilizzando il protocollo HTTP o HTTPS (TLS).
Se TLS è disabilitato sul server di sessione, rimuovere tls_config e modificare lo schema a http nella configurazione di esempio.
Configurare session-server-hostname.
NOTA:A causa della networking di Docker, questo deve essere l'indirizzo IP o il nome host effettivo del computer host del server di sessione. Questo indirizzo IP può essere in genere ottenuto utilizzando ifconfig/ipconfig.
Modificare le porte, se necessario.
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']
Passaggio 3. Configurare la comunicazione tra Prometheus e l'origine dati
La comunicazione può essere configurata nell'immagine Docker di Grafana tra l'istanza locale di Prometheus e l'origine dati di Grafana. All'avvio sono anche disponibili dashboard pre-caricati.
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
origini dati:
- nome: 'Prometheus'
tipo: 'prometheus'
accesso: 'browser'
url: 'http://localhost:9090'
is_default: true
editable: false
grafana/provisioning/dashboards/all.yml
- nome: 'default'
org_id: 1
folder: ''
tipo: 'file'
opzioni:
cartella: '/var/lib/grafana/dashboards'
Passaggio 4. Configurazione dei dashboard Grafana
È disponibile un esempio di file JSON che consente di iniziare a configurare i dashboard Grafana.
Per fare in modo che il container di Docker carichi il dashboard all'avvio:
Individuare HACloudSessionservers.json nella directory hacloud/utilities/grafana.
Copiare HACloudSessionservers.json nella directory grafana/dashboard.
Passaggio 5. Accedere a Grafana
Avviare il container di Docker con il comando docker-compose up -d.
Verificare che le destinazioni di Prometheus recuperino correttamente i server di sessione utilizzando http://localhost:9090/targets.
Accedere a Grafana utilizzando http://localhost:3000.
Entrambi nome utente e password = admin. Il nome utente e la password possono essere configurati utilizzando le variabili di ambiente di Docker.
Utilizzare il comando docker-compose down per arrestare il container di Docker.