prometheus
Presentación
Prometheus es un marco de monitoreo y alerta de sistema de código abierto. Se deriva del sistema de monitoreo borgmon de Google, que fue creado por ex empleados de Google que trabajaban en SoundCloud en 2012. Prometheus fue desarrollado como un proyecto comunitario de código abierto y lanzado oficialmente en 2015. En 2016, Prometheus se unió oficialmente a la Cloud Native Computing Foundation, después de Kubernetes.
CCE le permite instalar rápidamente Prometheus como complemento.
Página web oficial de Prometheus: https://prometheus.io/
Comunidad de código abierto: https://github.com/prometheus/prometheus
Notas y restricciones
El complemento de prometheus solo se admite en clústeres de v1.21 y anteriores.
Funciones
Como marco de supervisión de próxima generación, Prometheus tiene las siguientes características:
- Potente modelo de datos multidimensional
- Los datos de series temporales se identifican por el nombre de la métrica y el par clave-valor.
- Se pueden establecer etiquetas multidimensionales para todas las métricas.
- Los modelos de datos no requieren cadenas de caracteres separadas por puntos.
- Los modelos de datos se pueden agregar, cortar y cortar.
- Se admite el formato de punto flotante doble. Todas las etiquetas se pueden establecer en unicode.
- Instrucción de consulta flexible y potente (PromQL): Una instrucción de consulta admite la adición, la multiplicación y la conexión para múltiples métricas.
- Fácil de gestionar: El servidor de Prometheus es un archivo binario independiente que puede funcionar localmente. No depende del almacenamiento distribuido.
- Eficiente: Cada punto de muestreo ocupa solo 3.5 bytes, y un servidor de Prometheus puede procesar millones de métricas.
- El modo de extracción se utiliza para recopilar datos de series de tiempo, lo que facilita las pruebas locales y evita que los servidores defectuosos empujen métricas incorrectas.
- Los datos de series temporales se pueden enviar al servidor de Prometheus en el modo de gateway push.
- Los usuarios pueden obtener los destinos supervisados mediante la detección de servicios o la configuración estática.
- Múltiples GUI visuales están disponibles.
- Fácil de escalar
Como los datos recopilados pueden perderse, Prometheus no es aplicable si existe un alto requisito de exactitud de los datos recopilados. Sin embargo, Prometheus tiene grandes ventajas de consulta si se utiliza para registrar datos de series temporales. Además, Prometheus es aplicable a la arquitectura de microservicios.
Instalación del complemento
- Inicie sesión en la consola de CCE y acceda a la consola del clúster. Elija Add-ons en el panel de navegación, localice prometheus a la derecha y haga clic en Install.
- En el paso Configuration, establezca los siguientes parámetros:
Tabla 1 parámetros del complemento prometheus Parámetro
Descripción
Add-on Specifications
Seleccione una especificación adicional basada en los requisitos de servicio. Las opciones son las siguientes:
- Demo(<= 100 contenedores): El tipo de especificación es aplicable al entorno de demostración de experiencia y función. En esta memoria descriptiva, Prometheus ocupa pocos recursos pero tiene capacidades de procesamiento limitadas. Se recomienda utilizar esta especificación cuando el número de contenedores en el clúster no exceda de 100.
- Small(<= 2000 contenedores): se recomienda utilizar esta especificación cuando el número de contenedores en el clúster no exceda 2,000.
- Medium(<= 5000 contenedores): se recomienda utilizar esta especificación cuando el número de contenedores en el clúster no exceda 5,000.
- Large(> 5000 contenedores): se recomienda utilizar esta especificación cuando el número de contenedores en el clúster supera a 5,000.
Instances
Número de pods que se crearán para que coincidan con las especificaciones del complemento seleccionado. El número no se puede modificar.
Container
Cuotas de CPU y memoria del contenedor permitidas para las especificaciones de complemento seleccionadas. Las cuotas no se pueden modificar.
Data Retention (days)
Número de días para almacenar datos de monitoreo personalizados. El valor predeterminado es 15 días.
Storage
Los discos duros en la nube se pueden utilizar como almacenamiento. Establezca los siguientes parámetros según se le solicite:
- AZ: Establezca este parámetro en función de los requisitos del sitio. Una AZ es una región física donde los recursos utilizan las fuentes de alimentación y las redes independientes. Las AZ están físicamente aisladas, pero se interconectan a través de una red interna.
- Disk Type: Se admiten E/S comunes, E/S altas y E/S ultraaltas.
- Capacity: Introduzca la capacidad de almacenamiento en función de los requisitos de servicio. El valor predeterminado es 10 GB.
NOTA:Si ya existe un PVC en la supervisión del espacio de nombres, el almacenamiento configurado se utilizará como origen de almacenamiento.
- Haga clic en Install. Después de la instalación, el complemento despliega las siguientes instancias en el clúster.
- prometheus-operator: despliega y gestiona el Prometheus Server basado en CRD (CustomResourceDefinitions), y monitoriza y procesa los eventos relacionados con estos CRD. Es el centro de control de todo el sistema.
- prometheus (servidor): un clúster de servidor de Prometheus desplegado por el operador basado en los CRD de Prometheus que puede considerarse StatefulSets.
- prometheus-kube-state-metrics: convierte los datos de la métrica de Prometheus en un formato que puede ser identificado por las API de Kubernetes.
- custom-metrics-apiserver: agrega métricas personalizadas al servidor nativo de la API de Kubernetes.
- prometheus-node-exporter: desplegado en cada nodo para recopilar datos de monitorización de nodos.
- grafana: visualiza los datos de monitorización.
Proporcionar métricas de recursos
Las métricas de recursos de contenedores y nodos, como el uso de CPU y memoria, se pueden obtener con la API de métricas de Kubernetes. Se puede acceder directamente a las métricas de recursos, por ejemplo, mediante el comando kubectl top, o utilizar las políticas HPA o CustomedHPA personalizadas para el ajuste automático.
El complemento puede proporcionar la API de Kubernetes Metrics que está deshabilitada de forma predeterminada. Para habilitar la API, cree el siguiente objeto de APIService:
apiVersion: apiregistration.k8s.io/v1 kind: APIService metadata: labels: app: custom-metrics-apiserver release: cceaddon-prometheus name: v1beta1.metrics.k8s.io spec: group: metrics.k8s.io groupPriorityMinimum: 100 insecureSkipTLSVerify: true service: name: custom-metrics-apiserver namespace: monitoring port: 443 version: v1beta1 versionPriority: 100
Puede guardar el objeto como un archivo, nombrarlo metrics-apiservice.yaml y ejecutar el siguiente comando:
kubectl create -f metrics-apiservice.yaml
Ejecute el comando kubectl top. Si se muestra la siguiente información, se puede acceder a la API de métricas:
# kubectl top pod -n monitoring NAME CPU(cores) MEMORY(bytes) ...... custom-metrics-apiserver-d4f556ff9-l2j2m 38m 44Mi ......
Para desinstalar el complemento, ejecute el siguiente comando kubectl y elimine el objeto APIService. De lo contrario, el complemento de metrics-server no se puede instalar debido a los recursos APIService residuales.
kubectl delete APIService v1beta1.metrics.k8s.io
Referencia
- Para obtener más información sobre los conceptos y configuraciones de Prometheus, consulte la Documentación oficial de Prometheus.
- Para obtener más información acerca de cómo instalar Node Exporter, consulte el node_exporter GitHub.
- Para obtener más información sobre cómo enviar mensajes de Slack, consulta Webhooks entrantes.
Historial de cambios
Versión del complemento |
Versión de clúster admitida |
Versión de la comunidad (solo para clústeres de v1.17 y posteriores) |
---|---|---|
2.23.32 |
/v1.(17|19|21).*/ |
|
2.23.31 |
/v1.15.*/ |
|
2.23.30 |
/v1.(17|19|21).*/ |
|
2.21.14 |
/v1.(17|19|21).*/ |
|
2.21.12 |
/v1.15.*/ |
|
2.21.11 |
/v1.(17|19).*/ |
|
1.15.1 |
/v1.(15|17).*/ |