7.1 Supervisión de servidores de sesión mediante Prometheus y Grafana

Puede supervisar los servidores de sesión de Host Access for Cloud mediante Prometheus y Grafana. Ambas herramientas son gratuitas, de código abierto y se pueden ejecutar en contenedores de Docker, lo que facilita su distribución. Cada servidor de sesión proporciona un puesto final de Prometheus que muestra estadísticas sobre ese servidor. Prometheus se puede configurar para extraer datos de este puesto final y almacenar las estadísticas de forma continua, incluso desde varios servidores de sesión. A continuación, Grafana proporciona una consola para consultar y visualizar estos datos, con muy poca configuración.

Requisitos previos:

Debe tener instalados Docker y la herramienta de composición de Docker.

Pasos:

  1. Cree un archivo de composición de Docker (.yml) que contenga imágenes de Grafana y Prometheus.

  2. Vincule Prometheus al puesto final de Prometheus del servidor de sesión.

  3. Configure el origen de datos de Grafana para comunicarse con Prometheus e importe las consolas preconfiguradas.

  4. Configurar las consolas de Grafana

  5. Acceder a Grafana.

Paso 1. Crear un archivo de composición de Docker

Cree un archivo docker-compose.yml que contenga imágenes de Grafana y Prometheus.

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:

Paso 2. Vincular Prometheus al puesto final de Prometheus de HA Cloud

Para vincular Prometheus al puesto final, genere un archivo prometheus.yml.

  • En el ejemplo, el archivo prometheus.yml se guarda en el directorio de configuración.

  • Esta configuración de ejemplo le permite extraer el puesto final de Prometheus mediante HTTP o HTTPS (TLS).

    Si TLS está deshabilitado en el servidor de sesión, elimine tls_config y cambie el esquema a http en la configuración de ejemplo.

  • Configure el parámetro session-server-hostname.

    NOTA:Debido a la conexión en red de Docker, este debe ser la dirección IP o el nombre de host reales del equipo host del servidor de sesión. Esta dirección IP se puede obtener normalmente mediante ifconfig/ipconfig.

  • Ajuste los puertos si es necesario.

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'] 

Paso 3. Configurar la comunicación entre Prometheus y el origen de datos

La comunicación se puede configurar dentro de la imagen de Docker de Grafana entre la instancia local de Prometheus y el origen de datos de Grafana. Las consolas precargadas también están disponibles durante el inicio.

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'

Paso 4. Configurar las consolas de Grafana

Hay disponible un archivo JSON de ejemplo para ayudarle a empezar a configurar las consolas de Grafana.

Para que el contenedor de Docker cargue la consola durante el inicio:

  • Busque HACloudSessionservers.json en el directorio hacloud/utilities/grafana.

  • Copie HACloudSessionservers.json en el directorio grafana/dashboards.

Paso 5. Acceder a Grafana

  • Inicie el contenedor de Docker con el comando docker-compose up -d.

  • Compruebe que los destinos de Prometheus están extrayendo correctamente los servidores de sesión mediante http://localhost:9090/targets.

  • Acceda a Grafana mediante http://localhost:3000.

  • Tanto el nombre de usuario como la contraseña son admin. El nombre de usuario y la contraseña se pueden configurar mediante las variables de entorno de Docker.

  • Utilice el comando docker-compose down para detener el contenedor de Docker.