Endpoints de monitorización de Plataforma

Introducción

Plataforma propone una monitorización basada en las capacidades del Cluster Kubernetes (Prometheus+Grafana pj).

No obstante, existen entornos en los que se usan herramientas diferentes para la monitorización, como Zabbix. En esos escenarios, puede ser necesario monitorizar los Healthchecks de los diferentes componentes de plataforma.

Veamos cuales son.

¿Qué debemos monitorizar?

Por seguridad estos endpoints no se publican hacia Internet, por lo que deben monitorizarse desde el cluster Kubernetes de Plataforma.

Componentes basados en Spring Boot

Para los componentes de Plataforma basados en Spring Boot se usa Spring Actuator para ofrecer el Health de estos, para cada módulo vemos un JSON como este:

En el que lo fundamental es comprobar el tag status y que este sea {“status”:”UP”

Debemos monitorizar estos endpoints (externo o interno):

En caso de ser versiones antiguas (anteriores a la 2.1.0-gradius), el endpoint debe ser directamente /health/, en lugar de /actuator/health

FlowEngine

El FlowEngine tiene una monitorización custom en el que se muestra otra información, puedo comprobar simplemente que el endpint devuelve un 200:

Resto de componentes

Para el resto de componentes una monitorización básica puede consistir en monitorizar el puerto expuesto por cada servicio, aquí tendríamos:

  • MongoDB: 27017

  • ConfigDB (MariaDB/MySQL): 3306

  • ConfigDB (PostgreSQL): 5432

  • Kafka: 9092 / 9095

  • Zookeeper: 2181

  • DataFlow (streamsets): 18630

  • Notebooks (zeppelin): 8080

  • ElasticDB: 9200

  • Rest-Planner: 22250

  • MonitoringUI: 18100

  • DashboardExporter: 20300

  • KafkaMonitoring: 18400

En caso de que alguno de estos módulos estén como servicio en otra máquina (MariaDB o Mongo por ejemplo) será necesario monitorizar el puerto en dicha máquina).