Azure Log Analytics:特定时间检测Function App日志缺失告警方案咨询
解决Function App定点无日志告警的方案
针对你需要在每日03:00检测02:00运行的Function App是否生成日志,无日志则告警的场景,有以下几种可行方案:
方案一:使用Azure Monitor日志告警规则(推荐)
通过自定义Kusto查询和定时评估配置,精准控制检测时间:
- 新建日志告警规则,选择你的Function App对应的日志表(如
FunctionAppLogs或AppTraces) - 编写Kusto查询,限定时间范围为当日02:00-03:00,统计日志数量:
FunctionAppLogs | where TimeGenerated between (datetime_start_of_day(now()) + 2h .. datetime_start_of_day(now()) + 3h) | where AppName == "你的FunctionApp名称" | count - 配置告警逻辑:设置当计数等于0时触发告警
- 调整评估参数:将「评估频率」设为每天1次,并指定在03:00运行;「时间范围」设为1小时(确保查询覆盖02:00-03:00的日志)
- 最后配置通知渠道(邮件、Teams、短信等)完成告警设置
方案二:用Logic Apps/Power Automate定点触发检测
完全自定义检测时间和逻辑,灵活性更高:
- 创建一个新的Logic App,触发方式选择「Recurrence(重复周期)」,设置为每日03:00运行
- 添加「Azure Monitor 日志」动作,配置查询语句(同方案一的Kusto查询),或者直接指定时间范围为过去1小时
- 添加条件判断组件:检查查询返回的日志计数是否为0
- 如果条件满足(无日志),执行通知动作(比如发送邮件、推送Teams消息)
方案三:基于自定义日志指标告警
如果你的Function App运行成功后会输出特定日志(比如"Function run completed"),可以将这条日志转为指标,再设置告警:
- 在Function App中添加运行成功后的自定义日志输出
- 在Azure Monitor中创建自定义指标,关联这条日志的条目数
- 新建指标告警规则,设置每日03:00评估过去1小时的自定义指标数值,当数值为0时触发告警
注意:配置时要确认时区设置,避免因为UTC和本地时间的差异导致检测时间偏差。
内容的提问来源于stack exchange,提问作者Thomas Segato
相关产品推荐
相关产品推荐

