7.1 Monitoraggio dei server di sessione mediante Prometheus e Grafana

È 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:

  1. Creare un file Docker Compose (.yml) che contenga entrambe le immagini di Grafana e Prometheus.

  2. Collegare Prometheus all'endpoint Prometheus del server di sessione.

  3. Configurare l'origine dati di Grafana affinché comunichi con Prometheus e importare i dashboard preconfigurati.

  4. Configurare i dashboard Grafana

  5. 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 HA Cloud

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: ' HA Cloud 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.