Consultar registros del clúster de Azure Kubernetes desde Log Analytics
Cuando crees un clúster de Azure Kubernetes Service (AKS), puedes especificar el recurso de Log Analytics para el registro y la supervisión de los recursos de Kubernetes: pods, servicios, mapas de configuración, etc. Esta cosa en realidad está instalando el agente de Log Analytics dentre de tu clúster (habrá varios pods y recursos relacionados como configmaps), qual luego van a enviar las salidas de stdout y stderr desde los pods a Log Analytics.
Desafortunadamente, el esquema de estos registros dentro Log Analytics es bastante complejo, principalmente por el registro se proviene del contenedor, pero no del pod. Así que hay tablas diferentes en Log Analytics, quales nosotros tenemos que conectar para obtener datos de registro legibles por humanos.
Aquí puedes verificar, a qué recurso de Log Analytics el clúster de AKS está enviando registros:
Despues de búsquendas largas en Internet, yo finalmente encontré y adapté el consulta kusto, que puede usar para obtener y filtrar registros de pod de manera flexible:
// Get logs from all containers in pod. Filter them by with 'has' operator. Then get latest
ContainerLog
| join kind = inner (KubePodInventory
| project
ContainerID,
PodName=Name,
ControllerKind,
ControllerName,
Namespace,
ContainerName
| distinct *
)
on ContainerID
| where PodName startswith "${pod_name}"
| where Namespace == "${namespace}"
| project
TimeGenerated,
Namespace,
PodName,
ContainerName,
LogEntry,
ControllerKind,
ControllerName,
LogEntrySource
| sort by TimeGenerated desc
| where LogEntry has "${search_string}"
| where TimeGenerated > ago(${time_span})
Tenga en cuenta los marcadores en el consulta como ${some-text}, que debes reemplazar con algo que te necesitas. O eliminarles si lo deseas.
- Visto: 17902