能否通过Azure Kubernetes Service的Log Analytics Kusto查询KEDA事件并实现流转?
关于AKS中KEDA事件的Log Analytics查询与流转方案
一、能否通过Log Analytics Kusto查询KEDA事件?
可以。只要AKS集群已集成Log Analytics工作区,且完成了KEDA事件的正确采集配置,就能通过Kusto查询获取相关事件。
常用Kusto查询示例
- 查询KEDA组件的容器日志事件
从ContainerLogs表中筛选KEDA控制器的日志:
ContainerLogs | where ContainerName startswith "keda-operator" | where LogEntry contains "scaling" or LogEntry contains "trigger" or LogEntry contains "event" | project TimeGenerated, ContainerName, LogEntry, PodName | sort by TimeGenerated desc
- 查询KEDA触发的Kubernetes原生事件
从KubeEvents表中筛选与KEDA相关的事件:
KubeEvents | where Source == "keda-operator" | project TimeGenerated, Namespace, Name, Message, Type | sort by TimeGenerated desc
二、将KEDA事件流转至AKS内置Log Analytics的方案
要实现KEDA事件的全量采集,需从容器日志采集和Kubernetes事件采集两方面配置:
1. 确保AKS已集成Log Analytics工作区
若尚未配置,可通过Azure CLI启用:
az aks enable-addons --addons monitoring --name <your-aks-cluster> --resource-group <your-rg> --workspace-resource-id <your-log-analytics-workspace-id>
2. 配置KEDA控制器输出日志到Stdout/Stderr
KEDA默认会将日志输出到容器的标准输出/错误流,AKS监控插件会自动将这些日志采集到Log Analytics的ContainerLogs表。若需调整日志级别,可修改KEDA的Deployment配置,添加环境变量:
env: - name: LOGGER_LEVEL value: "info" # 可设为debug获取更详细事件
3. 确保Kubernetes事件被采集到Log Analytics
AKS监控插件默认会采集Kubernetes事件到KubeEvents表,KEDA触发的缩放操作、触发器状态变更等原生K8s事件会自动流入该表。可在Log Analytics工作区中检查ContainerInsights解决方案的配置,确认事件采集未被禁用。
4. 验证采集效果
完成配置后等待5-10分钟,即可用前文的Kusto查询语句验证KEDA事件是否已成功流转到Log Analytics。
内容的提问来源于stack exchange,提问作者Howard Hoffman
相关产品推荐
相关产品推荐

