Monitorizacion de ELK vía Prometheus

From Zabbix-ES
Jump to navigation Jump to search
- ELK Discovery Namespaces: con esto creo Host Prototype (hosts en zabbix) para cada NS y le aplico un template que buscara cada POD en dicho namespace
count by (namespace,context) (container_cpu_usage_seconds_total{container!="",name!~"k8s_POD_.*"})


- Discovery PODs: Busca pods dentro de un NS y para cada pod que encuentre crea un item prototype con la CPU y la MEM
container_cpu_usage_seconds_total{container!="",name!~"k8s_POD_.*",namespace="{$NAMESPACE}"}
$.data.result
- Average CPU Usage {$CONTEXT}/{$NAMESPACE} - {#POD}
rate(container_cpu_usage_seconds_total{container_name!="POD",container="{#CONTAINER}",pod=~"{#POD}",namespace="{$NAMESPACE}"}[5m]) * 100
$.data.result[0].value[1]
- Average Memory Usage {$CONTEXT}/{$NAMESPACE} - {#POD}
container_memory_usage_bytes{container="",container_name!="POD",pod=~"{#POD}",namespace="{$NAMESPACE}"}


- MasterMetric: Discovery Deploys: Crea via LLD items por cada Deploy. Cada deploy tiene replicas deseadas, disponibles con esto puedo saber si un deploy esta degradado
- MasterMetric: Available {#DEPLOYMENT}
- Del item master (/metrics) creo un intem prototype con las replicas disponibles, aplicando Prometheus pattern.
kube_deployment_status_replicas_available{namespace="{#NAMESPACE}",deployment="{#DEPLOYMENT}"}
- Del item master (/metrics) creo un intem prototype con las replicas esperadas:
kube_deployment_spec_replicas{namespace="{#NAMESPACE}",deployment="{#DEPLOYMENT}"}
- Con un item calculado creo un item prototype que da el estatus del deploy (Esperadas-Disponibles) = 0
last("replica_esperada[{$CONTEXT},{#NAMESPACE},{#DEPLOYMENT}]")-last("replica_disponible[{$CONTEXT},{#NAMESPACE},{#DEPLOYMENT}]")