Advertising:
Monitorizacion de ELK vía Prometheus
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}]")