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
Existe también este endpoint: http://streamsets:18630/public-rest/ping
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).