¿Buscas nuestro logo?
Aquí te dejamos una copia, pero si necesitas más opciones o quieres conocer más, visita nuestra área de marca.
Conoce nuestra marca.¿Buscas nuestro logo?
Aquí te dejamos una copia, pero si necesitas más opciones o quieres conocer más, visita nuestra área de marca.
Conoce nuestra marca.dev
Álvaro "Chamo" Linares Cabré 28/11/2018 Cargando comentarios…
Una de las partes más importantes en la infraestructura es la monitorización y, en el caso de los microservicios, en Kubernetes, tenemos a Prometheus. Es una excelente herramienta de monitorización para k8s, que cuando la utilices y conozcas sus bondades, harán en ti que te enamores y no dejes de pensar en ella.
Prometheus es un sistema de monitorización y de alerta open source cuyo origen se remonta en el 2012 en la compañía SoundCloud, y desde allí (conjunto con el crecimiento de k8s) ha sido adoptado por muchas empresas. Prometheus se unió al Cloud Native Computing Foundation en el 2016.
El ecosistema de Prometheus consiste de varios componentes, los principales son los siguientes:
Prometheus básicamente almacena todos los datos como series de tiempo. Cada serie de tiempo se identifica de forma única por su nombre de indicador y un conjunto de pares clave-valor, también conocidos como “labels”.
Los tipos de métricas utilizadas en Prometheus son las siguientes:
Un operador se basa en los conceptos básicos de recursos y controladores de Kubernetes, pero incluye el conocimiento del dominio de la aplicación para encargarse de las tareas comunes.
Prometheus Operator es fácil de instalar con una sola línea de comandos (lo veremos más abajo) y permite a los usuarios configurar y administrar instancias de Prometheus usando una configuración declarativa simple que, creará, configurará y administrará las instancias de monitoreo de Prometheus.
Una vez instalado el Prometheus Operator provee las siguientes características:
Prometheus se puede implementar de varias formas, desde la descarga de un .tar.gz de su página web, donde ya viene un ejecutable, hasta su implementación en Kubernetes por medio de Helm.
Nosotros nos vamos a enfocar en Prometheus y Visualización de sus datos, en el equipo de sistemas de Paradigma utilizamos la implementación basada en helm de CoreOS, en despliegues de Kubernetes.
IMPORTANTE: El namespace de k8s TIENE que llamarse “monitoring” por que sino, Prometheus no captura las métricas de k8s.
Donde el fichero xxxxx-values.yaml tiene los parámetros personalizados de la implementación del helm de kube-prometheus. Este fichero debería estar versionado en git.
El único detalle de esta implementación es que Grafana no guarda persistencia en disco duro. Para lograr esto se debe deshabilitar Grafana en el fichero de prometheus-values.yaml con la siguiente opción: deployGrafana: False y haríamos la implementación de Grafana del repo helm install --name grafana --namespace monitoring -f grafana-values.yaml stable/grafana
Para revisar que está implementado ejecutamos el comando de k8s siguiente: kubectl get pods -n monitoring
Es importante los Service Monitor ya que estos dan “visibilidad” dentro de Prometheus, por ejemplo el de Nexus 2 sería así:
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
labels:
app: prometheus
chart: prometheus-0.0.51
heritage: Tiller
prometheus: monitor
release: monitor
name: monitor-nexus-exporter
namespace: monitoring
spec:
endpoints:
- interval: 30s
path: /metrics
port: monitoring
namespaceSelector:
any: true
selector:
matchLabels:
app: sonatype-nexus
Aquí cabe destacar el “endpoint” con el se comunicará el servicio a monitorizar con Prometheus. Intervalo de 30 segundos de consulta, path a consultar el servicios y nombre del puerto (anteriormente creado en un “Service”) a conectar.
Para revisar si Prometheus “ve” el hosts debemos ir a la siguientes URL: http://:9090
Veremos una pantalla como la siguiente:
Para confirmar que nuestro hosts a monitorizar está listo para arrojar métricas a Prometheus debe primero ser “descubierto” por el Service Discovery (recuadro rojo):
Luego revisamos los “Targets” para verificar que Prometheus “llega” al servicio de métricas del host de nexus 2.
El servicio de métricas está “UP” y ¡funcionando! Ahora podemos realizar una consulta a las métricas de “Graph”, esta interfaz tiene la ventaja del “autocompletado” si y sólo si las métricas son enviadas:
Una vez seleccionada la métrica a consultar, hacemos clic en el botón de “Execute”:
Con esto solamente quedaría configurar alguna herramienta gráfica como Grafana para poder hacer consultas PromQL y mostrar información “real”.
Y hasta aquí prometo y Prometheus...
Los comentarios serán moderados. Serán visibles si aportan un argumento constructivo. Si no estás de acuerdo con algún punto, por favor, muestra tus opiniones de manera educada.
Cuéntanos qué te parece.