Alertmanager如何配置仅工作日发送告警?0.23版本配置time_intervals报错
报错原因
- 版本不匹配:
time_intervals是Alertmanager 0.25及以上版本才支持的根层级配置字段,你当前使用的0.23版本无此字段,加载时自然报字段不存在的错误。 - 配置格式错误:即使升级到支持该字段的高版本,你写的配置缩进也不符合规范,
weekdays是时间间隔的一级匹配字段,与times平级,不能嵌套在times字段下。
0.23版本实现仅工作日发告警的配置方案
0.23版本没有独立的time_intervals配置,通过反向配置周末静音规则实现仅工作日发送告警的效果,配置逻辑如下:
- 保留原有配置的所有内容,在根层级添加
mute_time_intervals块定义周末全天静音规则 - 在主路由块中引用该静音规则,即可实现周六周日不发告警、工作日正常推送的效果
完整配置参考:
global: # 保留原有global配置,如smtp服务地址、告警模板路径等 resolve_timeout: 5m route: # 保留原有路由配置,如group_by、group_wait、group_interval、repeat_interval等 receiver: 'default-receiver' # 引用下方定义的周末静音规则 mute_time_intervals: - weekends receivers: # 保留原有接收人配置,如邮箱、webhook、企业微信/钉钉配置等 - name: 'default-receiver' # 0.23版本支持的静音时间定义块 mute_time_intervals: - name: weekends # 匹配周六、周日全天,不需要额外配置times字段即默认覆盖对应日期0点到24点 weekdays: ['saturday', 'sunday']
配置修改完成后,执行amtool check-config alertmanager.yml校验配置合法性,校验通过后重载Alertmanager服务即可生效。
补充:高版本(0.25+)更直观的配置方式
0.25及以上版本支持根级time_intervals字段,可以直接定义告警生效的活跃时间段,不需要反向配置静音,配置示例:
# 根级定义可复用的时间间隔 time_intervals: - name: workdays weekdays: ['monday:friday'] # 如果需要限定工作日的特定时段发送,比如9点到18点,可以添加times配置 # times: # - start_time: '09:00' # end_time: '18:00' route: receiver: 'default-receiver' # 直接指定路由生效的时间区间,非该区间的告警不会被推送 active_time_intervals: - workdays
内容的提问来源于stack exchange,提问作者TestAutomator
相关产品推荐
相关产品推荐

