Azure AKS日志查询KQL表达式

背景需求

Azure(Global) AKS集群中,需要查询部署服务的历史日志,例如:我部署了服务A,但服务A的上一个版本Pod已经被杀掉由于版本的更新迭代,而我在命令行中只能看到当前版本的pod日志,无法通过kubectl logs 看到应用的历史日志(例如上一个版本的pod日志),但如果这时候需要看,那么就需要手动去写AKS的KQL语句来查询了

查询语句(Azure Global)

复制代码
##queryPodLogs for Azure Global AKS
let startTimestamp = ago(7d);
//namespace
let aksNameSpace = "shop";
// specific podName
let aksPodName = "shop-backend-dev-j9w";
// specific contaierName
let aksContainerName = "shop-backend-dev";
// queryStartTime(UTC)
// queryEndTime(UTC)
ContainerLogV2
| where TimeGenerated > startTimestamp
| where PodName contains aksPodName and PodNamespace contains aksNameSpace and ContainerName contains aksContainerName
| where TimeGenerated between(datetime("2024-04-27 00:00:00") .. datetime("2024-04-30 05:00:00")) 
| project TimeGenerated, PodNamespace, ContainerId, ContainerName, PodName, LogMessage, LogSource
| sort by TimeGenerated desc

查询注意事项

查询前,记得修改下图上红线所划出来的参数值,具体解释都有标注

Tips:

如果不行的话试下我在下面提供的另一条KQL语句,因为在我写KQL语句的这段时间,似乎Azure Monitor这个模块的数据表正在做迁移,最后我是试了上面的语句成功查询出来的,而Azure内部的朋友经过实验他是用以下语句,联表查询到的数据,但我用下面这个语句查出来就一直是空的,查不到任何数据,所以这个可能需要视情况而定。

复制代码
let startTimestamp = ago(7d);
let aksNameSpace = "shop";
let aksPodName = "shop-backend-dev-j9w";
// let aksContainerName = "shop-backend-dev";
KubePodInventory
| where TimeGenerated > startTimestamp
| project ContainerID, PodName=Name, Namespace, ContainerName
| where PodName contains aksPodName and Namespace contains aksNameSpace
// and ContainerName contains aksContainerName
| distinct ContainerID, PodName, ContainerName
| join
(
    ContainerLogV2
    | where TimeGenerated between(datetime("2024-04-29 00:00:00") .. datetime("2024-04-29 05:00:00"))  //修改时间 
)
on ContainerName
| project TimeGenerated, PodName, ContainerName, LogMessage, LogSource
| sort by TimeGenerated desc
相关推荐
云攀登者-望正茂3 小时前
深入探究AKS Workload Identity
kubernetes·azure
Leinwin7 小时前
借助Azure AI Foundry 如何打造语音交互新体验
人工智能·microsoft·azure
云攀登者-望正茂1 天前
Azure 应用服务中的异常处理、日志记录和通知:综合指南
azure
jmsail1 天前
Dynamics 365 Business Central Azure application registration
microsoft·azure·dynamics 365·d365 bc erp
Access开发易登软件1 天前
Access链接Azure SQL
数据库·后端·sql·flask·vba·azure·access
ManageEngine卓豪2 天前
选择合适的Azure数据库监控工具
azure·数据库性能·数据库监控
Ashmcracker3 天前
在Ubuntu使用 Ansible 配置 Azure 资源的动态清单
ubuntu·microsoft·云计算·ansible·azure·devops
Leinwin6 天前
Microsoft Azure 服务4月更新告示
人工智能·azure
云攀登者-望正茂9 天前
Azure 应用的托管身份与服务主体
azure·devops
云攀登者-望正茂10 天前
AKS 支持 Kata Container容器沙盒 -预览阶段
容器·azure