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:
-
Cree un archivo de composición de Docker (.yml) que contenga imágenes de Grafana y Prometheus.
-
Vincule Prometheus al puesto final de Prometheus del servidor de sesión.
-
Configure el origen de datos de Grafana para comunicarse con Prometheus e importe las consolas preconfiguradas.
-
Configurar las consolas de Grafana.
-
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.
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 HACloud
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.
Ejemplo: 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']
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.
Ejemplo: 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
[paths]
provisioning = /etc/grafana/provisioning
Ejemplo: grafana/provisioning/datasources/all.yml
datasources:
- name: 'Prometheus'
type: 'prometheus'
access: 'browser'
url: 'http://localhost:9090'
is_default: true
editable: false
Ejemplo: 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 directoriohacloud/utilities/grafana
. -
Copie
HACloudSessionservers.json
en el directoriografana/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.