Ir al contenidoIr a la navegación de la página: página anterior [tecla de acceso p]/página siguiente [tecla de acceso n]
documentation.suse.com / Documentación de SUSE Enterprise Storage 7 / Guía de administración y operaciones / Operación del clúster / Supervisión y alertas
Se aplica a SUSE Enterprise Storage 7

16 Supervisión y alertas

En SUSE Enterprise Storage 7, cephadm distribuye una pila de alertas y supervisión. Los usuarios deben definir los servicios (como Prometheus, Alertmanager y Grafana) que desean distribuir con cephadm en un archivo de configuración YAML, o bien pueden utilizar la interfaz de línea de comandos para distribuirlos. Cuando se distribuyen varios servicios del mismo tipo, se distribuye una configuración de alta disponibilidad. El exportador de nodos es una excepción a esta regla.

Los siguientes servicios de supervisión se pueden distribuir con cephadm:

  • Prometheus es el kit de herramientas de supervisión y alertas. Recopila los datos proporcionados por los exportadores de Prometheus y activa alertas preconfiguradas si se alcanzan los umbrales predefinidos.

  • Alertmanager gestiona las alertas enviadas por el servidor de Prometheus. Desduplica, agrupa y dirige las alertas al receptor correcto. Por defecto, Ceph Dashboard se configura automáticamente como receptor.

  • Grafana es el software de visualización y alertas. Esta pila de supervisión no utiliza la función de alertas de Grafana. Para las alertas, se utiliza Alertmanager.

  • El exportador de nodos es un exportador de Prometheus que proporciona datos sobre el nodo en el que está instalado. Se recomienda instalar el exportador de nodos en todos los nodos.

El módulo de gestor de Prometheus proporciona un exportador de Prometheus para pasar los contadores de rendimiento de Ceph desde el punto de recopilación en ceph-mgr.

La configuración de Prometheus, incluidos los destinos de scrape (métricas que proporcionan daemons), se configura automáticamente mediante cephadm. cephadm también distribuye una lista de alertas por defecto, por ejemplo, error de estado, 10% de OSD inactivos o pgs inactivos.

Por defecto, el tráfico a Grafana se cifra con TLS. Puede proporcionar su propio certificado TLS o utilizar uno autofirmado. Si no se ha configurado ningún certificado personalizado antes de la distribución de Grafana, se crea y se configura automáticamente un certificado autofirmado para Grafana.

Los certificados personalizados para Grafana se pueden configurar mediante los comandos siguientes:

cephuser@adm >  ceph config-key set mgr/cephadm/grafana_key -i $PWD/key.pem
cephuser@adm >  ceph config-key set mgr/cephadm/grafana_crt -i $PWD/certificate.pem

Alertmanager gestiona las alertas enviadas por el servidor de Prometheus. Se encarga de desduplicarlos, agruparlos y enrutarlos al receptor correcto. Las alertas se pueden silenciar mediante el Alertmanager, pero los silencios también se pueden gestionar mediante Ceph Dashboard.

Se recomienda que el exportador de nodos se distribuya en todos los nodos. Esto se puede hacer mediante el archivo monitoring.yaml con el tipo de servicio node-exporter. Consulte el Sección 5.4.3.8, “Distribución de la pila de supervisión” para obtener más información sobre la distribución de servicios.

16.1 Configuración de imágenes personalizadas o locales

Sugerencia
Sugerencia

En esta sección se describe cómo cambiar la configuración de las imágenes de contenedor que se utilizan al distribuir o actualizar los servicios. No incluye los comandos necesarios para distribuir o volver a distribuir servicios.

El método recomendado para distribuir la pila de supervisión consiste en aplicar su especificación como se describe en el Sección 5.4.3.8, “Distribución de la pila de supervisión”.

Para distribuir imágenes de contenedor personalizadas o locales, las imágenes deben definirse en cephadm. Para ello, deberá ejecutar el comando siguiente:

cephuser@adm > ceph config set mgr mgr/cephadm/OPTION_NAME VALUE

Donde OPTION_NAME es uno de estos nombres:

  • container_image_prometheus

  • container_image_node_exporter

  • container_image_alertmanager

  • container_image_grafana

Si no se ha definido ninguna opción o si se ha eliminado el ajuste, se utilizan las imágenes siguientes como VALUE:

  • registry.suse.com/caasp/v4.5/prometheus-server:2.18.0

  • registry.suse.com/caasp/v4.5/prometheus-node-exporter:0.18.1

  • registry.suse.com/caasp/v4.5/prometheus-alertmanager:0.16.2

  • registry.suse.com/ses/7/ceph/grafana:7.0.3

Por ejemplo:

cephuser@adm > ceph config set mgr mgr/cephadm/container_image_prometheus prom/prometheus:v1.4.1
Nota
Nota

Al definir una imagen personalizada, el valor por defecto se anula (pero no se sobrescribe). El valor por defecto cambia cuando hay actualizaciones disponibles. Al definir una imagen personalizada, no podrá actualizar automáticamente el componente para el que ha definido la imagen personalizada. Deberá actualizar manualmente la configuración (el nombre de la imagen y la etiqueta) para poder instalar actualizaciones.

Si decide seguir las recomendaciones, puede restablecer la imagen personalizada que haya definido anteriormente. Después, se volverá a utilizar el valor por defecto. Utilice ceph config rm para restablecer la opción de configuración:

cephuser@adm > ceph config rm mgr mgr/cephadm/OPTION_NAME

Por ejemplo:

cephuser@adm > ceph config rm mgr mgr/cephadm/container_image_prometheus

16.2 Actualización de los servicios de supervisión

Como se menciona en la Sección 16.1, “Configuración de imágenes personalizadas o locales”, cephadm incluye las URL de las imágenes de contenedor recomendadas y probadas, que se utilizan por defecto.

Al actualizar los paquetes de Ceph, se pueden incluir nuevas versiones de estas URL. Esto solo actualiza de dónde se extraen las imágenes del contenedor, pero no actualiza ningún servicio.

Después de actualizar las URL de las nuevas imágenes de contenedor, ya sea manualmente como se describe en la Sección 16.1, “Configuración de imágenes personalizadas o locales”, o automáticamente mediante una actualización del paquete de Ceph, los servicios de supervisión se pueden actualizar.

Para ello, utilice ceph orch redeploy así:

cephuser@adm > ceph orch redeploy node-exporter
cephuser@adm > ceph orch redeploy prometheus
cephuser@adm > ceph orch redeploy alertmanager
cephuser@adm > ceph orch redeploy grafana

Actualmente no existe un comando único para actualizar todos los servicios de supervisión. El orden en el que se actualizan estos servicios no es importante.

Nota
Nota

Si utiliza imágenes de contenedor personalizadas, las URL especificadas para los servicios de supervisión no cambiarán automáticamente si se actualizan los paquetes de Ceph. Si ha especificado imágenes de contenedor personalizadas, deberá especificar manualmente las URL de las nuevas imágenes de contenedor. Este puede ser el caso si utiliza un registro de contenedor local.

En la Sección 16.1, “Configuración de imágenes personalizadas o locales”, encontrará las URL de las imágenes de contenedor recomendadas.

16.3 Inhabilitación de la supervisión

Para inhabilitar la pila de supervisión, ejecute los comandos siguientes:

cephuser@adm > ceph orch rm grafana
cephuser@adm > ceph orch rm prometheus --force   # this will delete metrics data collected so far
cephuser@adm > ceph orch rm node-exporter
cephuser@adm > ceph orch rm alertmanager
cephuser@adm > ceph mgr module disable prometheus

16.4 Configuración de Grafana

El procesador final de Ceph Dashboard requiere la URL de Grafana para poder verificar la existencia de consolas de Grafana antes de que el procesador frontal las cargue. Debido a cómo se implementa Grafana en Ceph Dashboard, esto significa que se requieren dos conexiones en funcionamiento para poder ver los gráficos de Grafana en Ceph Dashboard:

  • El procesador final (módulo Ceph MGR) debe verificar la existencia del gráfico solicitado. Si esta petición se realiza correctamente, el procesador frontal sabe que puede acceder a Grafana de forma segura.

  • A continuación, el procesador frontal pide los gráficos de Grafana directamente desde el navegador del usuario mediante un iframe. Se accede directamente a la instancia de Grafana sin ningún desvío a través de Ceph Dashboard.

Ahora bien, puede darse el caso de que su entorno dificulte el acceso directo del navegador del usuario a la URL configurada en Ceph Dashboard. Para solucionar este problema, es posible configurar una URL independiente que se utilizará únicamente para indicar al procesador frontal (el navegador del usuario) qué URL debe utilizar para acceder a Grafana.

Para cambiar la URL que se devuelve al procesador frontal, emita el comando siguiente:

cephuser@adm > ceph dashboard set-grafana-frontend-api-url GRAFANA-SERVER-URL

Si no se define ningún valor para esa opción, simplemente se recurrirá al valor de la opción GRAFANA_API_URL, que cephadm define de forma automática y actualiza periódicamente. Si se define, indicará al navegador que utilice esta URL para acceder a Grafana.

16.5 Configuración del módulo de gestor de Prometheus

El módulo de gestor de Prometheus es un módulo de Ceph que amplía la funcionalidad de Ceph. El módulo lee metadatos de Ceph acerca de su estado y actividad, proporcionando los datos extraídos en un formato que Prometheus puede consumir.

Nota
Nota

Es necesario reiniciar el módulo de gestor de Prometheus para que se apliquen los cambios de configuración.

16.5.1 Configuración de la interfaz de red

Por defecto, el módulo de gestor de Prometheus acepta peticiones HTTP en el puerto 9283 en todas las direcciones IPv4 e IPv6 del host. El puerto y la dirección de escucha se pueden configurar con ceph config-key set, con las claves mgr/prometheus/server_addr y mgr/prometheus/server_port. Este puerto está indicado en el registro de Prometheus.

Para actualizar server_addr, ejecute el comando siguiente:

cephuser@adm > ceph config set mgr mgr/prometheus/server_addr 0.0.0.0

Para actualizar server_port, ejecute el comando siguiente:

cephuser@adm > ceph config set mgr mgr/prometheus/server_port 9283

16.5.2 Configuración de scrape_interval

Por defecto, el módulo de gestor de Prometheus se configura con un intervalo de scrape de 15 segundos. No se recomienda utilizar un intervalo inferior a 10 segundos. Para definir un intervalo diferente en el módulo de Prometheus, defina el valor que desee en scrape_interval:

Importante
Importante

Para que funcione correctamente y no se produzcan problemas, el valor de scrape_interval de este módulo siempre debe coincidir con el intervalo de scrape de Prometheus.

cephuser@adm > ceph config set mgr mgr/prometheus/scrape_interval 15

16.5.3 Configuración de caché

En clústeres grandes (de más de 1000 OSD), el tiempo necesario para obtener las métricas puede ser considerable. Sin la memoria caché, el módulo de gestor de Prometheus puede sobrecargar el gestor y provocar que las instancias de Ceph Manager no respondan o se bloqueen. Como resultado, la memoria caché está habilitada por defecto y no se puede inhabilitar, pero esto significa que la caché puede quedarse obsoleta. Se considera obsoleta cuando el tiempo para obtener las métricas de Ceph supera el valor de scrape_interval configurado.

Si este es el caso, se registrará una advertencia y el módulo:

  • Responde con un código de estado HTTP 503 (servicio no disponible).

  • Devuelve el contenido de la caché, aunque esté obsoleta.

Este comportamiento se puede configurar mediante los comandos ceph config set.

Para pedirle al módulo que responda con la indicación de que los datos posiblemente estén obsoletos, añada return:

cephuser@adm > ceph config set mgr mgr/prometheus/stale_cache_strategy return

Para pedirle al módulo que responda con servicio no disponible, añada fail:

cephuser@adm > ceph config set mgr mgr/prometheus/stale_cache_strategy fail

16.5.4 Habilitación de la supervisión de imágenes RBD

El módulo de gestor de Prometheus puede recopilar, opcionalmente, estadísticas de E/S por imagen RBD habilitando contadores de rendimiento de OSD dinámicos. Las estadísticas se recopilan para todas las imágenes de los repositorios especificados en el parámetro de configuración mgr/prometheus/rbd_stats_pools.

El parámetro es una lista separada por comas o espacios de entradas pool[/namespace]. Si no se especifica el espacio de nombres, las estadísticas se recopilan para todos los espacios de nombres del repositorio.

Por ejemplo:

cephuser@adm > ceph config set mgr mgr/prometheus/rbd_stats_pools "pool1,pool2,poolN"

El módulo explora los repositorios y espacios de nombres especificados, crea una lista de todas las imágenes disponibles y la actualiza periódicamente. El intervalo se puede configurar mediante el parámetro mgr/prometheus/rbd_stats_pools_refresh_interval (en segundos) y es de 300 segundos (cinco minutos) por defecto

Por ejemplo, si cambia el intervalo de sincronización a 10 minutos:

cephuser@adm > ceph config set mgr mgr/prometheus/rbd_stats_pools_refresh_interval 600

16.6 Modelo de seguridad de Prometheus

El modelo de seguridad de Prometheus presupone que los usuarios que no son de confianza tienen acceso al puesto final HTTP y los registros de Prometheus. Los usuarios que no son de confianza tienen acceso a todos los metadatos que Prometheus recopila y que se encuentran en la base de datos, además de a distinta información operativa y de depuración.

Sin embargo, la API HTTP de Prometheus está limitada a operaciones de solo lectura. Las configuraciones no se pueden cambiar mediante la API y los secretos no se revelan. Además, Prometheus tiene medidas integradas para mitigar el impacto de los ataques de denegación de servicio.

16.7 Receptor de alertas SNMP Alertmanager de Prometheus

Si desea recibir una notificación sobre las alertas de Prometheus mediante alertas SNMP, puede instalar el receptor de alertas SNMP Alertmanager de Prometheus a través de cephadm. Para ello, debe crear un archivo de especificación de servicio y colocación con el contenido siguiente:

Nota
Nota

Para obtener más información sobre los archivos de servicio y colocación, consulte Sección 5.4.2, “Especificación del servicio y la colocación”.

service_type: container
service_id: prometheus-webhook-snmp
placement:
    ADD_PLACEMENT_HERE
image: registry.suse.com/ses/7/prometheus-webhook-snmp:latest
args:
    - "--publish 9099:9099"
envs:
    - ARGS="--debug --snmp-host=ADD_HOST_GATEWAY_HERE"
    - RUN_ARGS="--metrics"
EOF

Utilice esta especificación de servicio para que el servicio se ejecute con sus ajustes por defecto.

Debe publicar el puerto en el que escucha el receptor de Prometheus mediante el argumento de línea de comandos --publish PUERTO_DE_HOST:PUERTO_DE_CONTENEDOR cuando se ejecuta el servicio, ya que el contenedor no expone automáticamente el puerto. Esto se puede hacer añadiendo las líneas siguientes a la especificación:

args:
    - "--publish 9099:9099"

Como alternativa, conecte el contenedor a la red del host mediante el argumento de línea de comandos --network=host.

args:
    - "--network=host"

Si el receptor de mensajes de alerta SNMP no está instalado en el mismo host que el contenedor, también debe especificar el nombre completo del host SNMP. Utilice la pasarela de red del contenedor para poder recibir mensajes de alerta SNMP fuera del contenedor/host:

envs:
    - ARGS="--debug --snmp-host=CONTAINER_GATEWAY"

16.7.1 Configuración del servicio prometheus-webhook-snmp

El contenedor se puede configurar mediante variables de entorno o mediante un archivo de configuración.

Para las variables de entorno, utilice ARGS para definir las opciones globales y RUN_ARGS para las opciones del comando run. Debe adaptar la especificación de servicio de la siguiente manera:

envs:
    - ARGS="--debug --snmp-host=CONTAINER_GATEWAY"
    - RUN_ARGS="--metrics --port=9101"

Para utilizar un archivo de configuración, la especificación de servicio debe adaptarse de la siguiente forma:

files:
    etc/prometheus-webhook-snmp.conf:
        - "debug: True"
        - "snmp_host: ADD_HOST_GATEWAY_HERE"
        - "metrics: True"
volume_mounts:
    etc/prometheus-webhook-snmp.conf: /etc/prometheus-webhook-snmp.conf

Para distribuir, ejecute el comando siguiente:

cephuser@adm > ceph orch apply -i SERVICE_SPEC_FILE

Consulte el Sección 5.4.3, “Distribución de servicios de Ceph” para obtener más información.

16.7.2 Configuración de Alertmanager de Prometheus para SNMP

Por último, Alertmanager de Prometheus debe configurarse específicamente para las alertas SNMP. Si este servicio aún no se ha distribuido, cree un archivo de especificación de servicio. Debe sustituir IP_OR_FQDN por la dirección IP o el nombre completo del host en el que se ha instalado el receptor de alertas SNMP Alertmanager de Prometheus. Por ejemplo:

Nota
Nota

Si ya ha distribuido este servicio, para asegurarse de que Alertmanager está configurado correctamente para SNMP, vuelva a distribuirlo con los ajustes siguientes:

  service_type: alertmanager
  placement:
    hosts:
    - HOSTNAME
  webhook_configs:
    - 'http://IP_OR_FQDN:9099/'

Aplique la especificación de servicio con el comando siguiente:

cephuser@adm > ceph orch apply -i SERVICE_SPEC_FILE