En Couchbase Móvil 2.5 introdujo una amplia informes estadísticos capacidades en el Pasarela de sincronizaciónLas estadísticas proporcionan información clave sobre la salud de su implementación de Couchbase Mobile y constituyen una parte integral de cualquier implementación.
En este artículo explicamos cómo puede utilizar Prometeouna plataforma de supervisión y alerta de código abierto para supervisar sus nodos Sync Gateway y Grafana para visualizar las estadísticas. En un próximo post relacionado, vamos a discutir cómo se puede configurar el monitoreo con Prometheus en un Clúster Kubernetes de Couchbase Mobile.

Fondo

Informes estadísticos de Sync Gateway

Las estadísticas de Sync Gateway se presentan en formato JSON y están disponibles a través de la función _expvar a través de Sync Gateway Admin REST interfaz.
Estas son las categorías de estadísticas de las que se informa.

Prometeo

Prometeo es una plataforma de alerta y supervisión de sistemas de código abierto alojada en Fundación para la Computación Nativa en la Nube. Su núcleo es la Servidor Prometheus que se encarga de sondear los "objetivos de Prometheus" para obtener estadísticas y almacenarlas como datos de series temporales. Los objetivos Prometheus se configuran estáticamente o pueden ser descubiertos por Prometheus.

Grafana

Grafana es una plataforma de alerta y visualización de datos de código abierto. Admite Prometheus como fuente de datos y puede utilizarse para crear cuadros de mando completos.

Presentación del exportador de Prometheus Sync Gateway

Para que Prometheus pueda supervisar el Sync Gateway, necesitamos un "objetivo Prometheus" correspondiente al Sync Gateway. Este objetivo es el Exportador de Sync Gatewayen lo sucesivo denominado "el Exportador". En pocas palabras, el Exportador se encarga de exportar las estadísticas de Sync Gateway a las métricas de Prometheus.

Arquitectura de implantación

Enlazando todo esto, un despliegue típico sería como el siguiente -

  • Exportador de Sync Gateway La API REST de Sync Gateway Admin es, por defecto, sólo expuesto en localhost. Esta configuración también se recomienda encarecidamente en entornos de producción. Como resultado, dado que el exportador consulta la API de administración de Sync Gateway para obtener estadísticas, el exportador debe estar en el mismo host/nodo que Sync Gateway. Además, las estadísticas de Sync Gateway se notifican por nodo. Por lo tanto, en un clúster de dos o más nodos de Sync Gateway, cada nodo de Sync Gateway debe tener su propio exportador.
  • Servidor Prometheus consulta continuamente las estadísticas del exportador, que a su vez consulta el punto final REST de Sync Gateway. El servidor utiliza las reglas definidas en el rules.yaml para enviar alertas al Gestor de alertas.
  • Grafana sondea el servidor Prometheus en busca de estadísticas y las representa gráficamente en un panel basado en web al que se puede acceder a través del navegador web.

Instalación

En el resto del post, vamos a caminar a través de los pasos para configurar un clúster Couchbase Mobile para el monitoreo con el exportador, Prometheus Server y Grafana. Aunque las instrucciones están pensadas para un entorno de desarrollo, puedes personalizarlas fácilmente para un entorno de producción.

Utilizaremos dockerlo que facilitará enormemente la puesta en marcha.

Descarga del código fuente del exportador

Sync Gateway Exporter es de código abierto couchbaselabs y disponible en GitHub. Es compatible con Couchbase Sync Gateway 2.5. Por ello, aunque nos esforzaremos por mantenerlo actualizado con la última versión de Sync Gateway, no podemos garantizarlo. Pero la buena noticia es que es de código abierto e incluye detallada instrucciones sobre cómo ampliarlo para que admita estadísticas adicionales.

Descargue el código fuente del exportador de github

Despliegue de Couchbase Mobile Cluster

Todos los comandos de esta sección deben ejecutarse desde la carpeta raíz del repositorio de github clonado.

Si ya tienes un cluster de Couchbase Mobile corriendo en docker, puedes saltarte este paso y continuar con el paso "Desplegando el Exportador Sync Gateway". Solo recuerda sustituir el nombre de red docker correspondiente a tu configuración existente en las instrucciones a continuación.

Creación de una red docker

Cuando se utiliza docker, se recomienda ejecutar todos los componentes en la misma red docker.
Crear una red docker con el nombre "demo".

Despliegue de Couchbase Server

Utilizaremos una imagen docker especial de Couchbase Server v6.0.1 que incluye un bucket de muestra preinstalado llamado "TravelSample", así como un usuario RBAC preconfigurado con "Application Access" que permitiría a Sync Gateway conectarse a Couchbase Server.
Si lo prefiere, puede instalar el imagen docker vainilla de la última versión de Couchbase Server y configurar manualmente con un bucket y un usuario RBAC de Sync Gateway.

Implantación de Sync Gateway

Sync Gateway se iniciará con el archivo de configuración denominado sync-gateway-config.json que se encuentra en la carpeta "testdata" del repositorio clonado.

Pruébalo

Confirme que su Sync Gateway está en funcionamiento y que se puede acceder al punto final _expvar ejecutando lo siguiente rizo comando. Si las cosas funcionan como se espera, debería ver un montón de estadísticas en la consola.

Implantación de Sync Gateway Exporter

La imagen docker de Sync Gateway Exporter está disponible en couchbasesamples/sync-gateway-prometheus-exporter:latest.

En sgw.url config es de particular interés. Apunta al servidor Sync Gateway. Si estás trabajando con una implementación existente de Couchbase Mobile, asegúrate de configurar la opción sgw.url para que apunte al nodo Sync Gateway en su configuración.

El Exportador se vincula a 0.0.0.0 por defecto. Puede anularlo utilizando --Dirección de escucha web opción.

Pruébalo

Confirme que el exportador está en funcionamiento con lo siguiente rizo mando.

Si las cosas están funcionando, habrá un montón de métricas de salida a la consola. Confirme que el "sgw_up 1".

Despliegue de Prometheus Server

Ahora que el exportador exporta estadísticas desde Sync Gateway, configuraremos Prometheus para que sondee el exportador en busca de métricas.

Exploración del archivo prometheus.yml

En prometheus.yml especifica la configuración con la que se lanza el servidor Prometheus. Se encuentra en la carpeta "testdata" del repositorio clonado. Examinemos el contenido de este archivo.

  • En intervalo_raspado especifica el intervalo de sondeo. Puede ajustarlo según sus necesidades
  • En archivos_regla especifica la ubicación del archivo de reglas de Prometheus. El archivo de reglas de Prometheus,sync-gateway.rules.yml se encuentra en testdata/rules/ en el repositorio clonado. Prometheus utiliza las reglas para activar alertas. Hemos proporcionado un conjunto básico de reglas como punto de partida. Puede personalizar las reglas según sea necesario. El archivo de reglas se monta en /etc/prometheus/reglas cuando se lanza el contenedor docker.
  • En objetivos especifica los objetivos de Prometheus que son el Exportador. Puede tener varios exportadores si tiene varias puertas de enlace de sincronización. En ese caso, puede especificar estáticamente todos los puntos finales del Exportador o configure Prometeo para descubrir los objetivos.

Instalación de la imagen Docker

Desplegaremos la imagen docker oficial prom/prometheus con el prometheus.yml incluido en el repositorio clonado.

Pruébalo

Abrir la URL http://localhost:9090/graph en un navegador web.
- Haga clic en el botón "Insertar métrica en el cursor" para ver la lista de métricas disponibles de Sync Gateway.
- Haga clic en "Estado"->"Objetivos" para ver la lista de exportadores y sus estadísticas
- Haga clic en el botón de menú "Alertas" para ver el estado de las alertas

Despliegue de Grafana

Aunque podrías utilizar la interfaz de usuario web de Prometheus para visualizar las estadísticas, nosotros utilizaremos Grafana, ya que puedes crear algunos paneles muy atractivos con ella y Grafana se integra bien con Prometheus.

  • Instalaremos el grafana/grafana:6.2.0 imagen docker. La página grafana/datos en el repositorio clonado contiene el archivo grafana.db que se utiliza para mantener el cuadro de mandos y otros metadatos. Se trata de un volumen montado en var/lib/grafana

  • Un cuadro de mandos por defecto "Couchbase Sync Gateway" llamado salpicadero.jsonnet está disponible en el repositorio clonado como archivo jsonnet archivo. Haga que el grafana para generar el correspondiente dashboard.json que puede importarse a Grafana. El panel de control muestra todas las métricas exportadas por el exportador. Puede personalizarlo según sus necesidades.

Pruébalo

  • Abrir la URL http://localhost:3000 en un navegador web. Debería ver la pantalla de inicio de sesión. Inicie sesión con las credenciales predeterminadas de "admin" y la contraseña de "admin". Puede cambiarla después del inicio de sesión inicial.
  • El siguiente paso sería añadir "Prometheus" como "Fuente de datos" e importar el archivo json "Sync Gateway dashboard" que se generó anteriormente. Puede hacer lo siguiente manualmente siguiendo las opciones del menú. ¡Hemos simplificado este proceso y le proporcionamos un script que hará todo eso por usted!
    Ejecute el script desde la raíz de su repositorio clonado utilizando el siguiente comando escriba a en el grafana-dev objetivo. Esto hace lo siguiente
    • (Re)genera la dashboard.json salpicadero del salpicadero.jsonnet archivo
    • Utiliza la API de Grafana para añadir Prometheus como fuente de datos
    • Utiliza la API de Grafana para cargar el dashboard.json generado en el paso anterior

  • Una vez que el script se haya ejecutado correctamente, deberás actualizar la interfaz web de Grafana en tu navegador. Verás "Couchbase Sync Gateway Dashboard" en la lista de dashboards disponibles. El panel muestra todas las estadísticas reportadas por Sync Gateway. Puedes personalizar el panel.
  • Haz clic en "Couchbase Sync Gateway Dashboard" para ver las estadísticas. Puedes filtrarlas por Sync Gateway (si tienes más de una) o base de datos

Ya está. Has configurado con éxito la monitorización con Prometheus y Grafana. Ahora puedes controlar las réplicas con clientes Couchbase Lite y monitorizarlas. El panel por defecto de Sync Gateway es un punto de partida. Puedes personalizarlo editando el archivo salpicadero.jsonnet o directamente a través de la interfaz de usuario de Grafana.

TL;DR

En lugar de ejecutar cada contenedor de forma independiente, puede realizar un lanzamiento multicontenedor utilizando docker-compose.
El repositorio incluye docker-compose.yml que puedes usar para lanzar todos los contenedores incluyendo Couchbase Server, Sync Gateway, Exporter, Prometheus y Grafana . Hay algunas advertencias. Puedes aprender más sobre ello aquí

El futuro

Con Sync Gateway Exporter, puede exportar estadísticas de Sync Gateway a Prometheus y visualizarlas con herramientas de visualización como Grafana. Esto simplifica enormemente la monitorización de tus clústeres de Couchbase Mobile. Además de Exporter, hemos proporcionado un dashboard Grafana por defecto que puedes personalizar. personalizando el propio dashboard, también puedes personalizar las reglas para las alertas. Aunque hemos discutido la instalación usando contenedores docker, también puedes instalar los binarios directamente.
En el próximo blog, vamos a discutir cómo se puede implementar el exportador en un clúster que ejecuta Kubernetes. ¡Así que manténgase en sintonía para eso!
Si tiene alguna pregunta o sugerencia, deje un comentario a continuación o póngase en contacto conmigo en Twitter @rajagp o envíeme un correo electrónico priya.rajagopal@couchbase.com. En Foros de Couchbase son otro buen lugar para plantear preguntas.

Agradecimientos

Me gustaría dar las gracias a Carlos Becker por su trabajo en la creación de la primera versión de Sync Gateway Exporter.

Autor

Publicado por Priya Rajagopal, Directora de Gestión de Productos

Priya Rajagopal es directora sénior de gestión de productos en Couchbase y responsable de las plataformas de desarrollo para la nube y el perímetro. Lleva más de 20 años dedicándose profesionalmente al desarrollo de software en varios puestos de liderazgo técnico y de producto, con más de 10 años centrados en tecnologías móviles. Como delegada de estándares IPTV de TISPAN, fue una colaboradora clave en las especificaciones de estándares IPTV. Tiene 22 patentes en las áreas de redes y seguridad de plataformas.

Dejar una respuesta