Zabbix 6如何统计每日资源异常次数并计算24小时可用率?
在Zabbix 6中统计互联网资源异常次数并计算24小时可用率的实现方案
可以通过Zabbix原生的**计算型监控项(Calculated Item)和聚合监控项(Aggregate Item)**实现你的需求,无需额外插件。以下是具体步骤:
一、统计每日异常次数
- 确认已存在监控响应码的基础项:比如使用
web.test.rspcode[<你的Web检测名称>]获取目标资源的HTTP响应码。 - 创建单次异常标记的计算型监控项:
- 类型选择
Calculated - 键值设为
web.response.error.mark - 计算公式:
last(web.test.rspcode[<你的Web检测名称>]) <> 200 ? 1 : 0 - 更新间隔与基础轮询间隔保持一致(例如5分钟)
- 类型选择
- 创建每日异常统计的聚合监控项:
- 类型选择
Aggregate - 键值设为
web.daily.error.total - 聚合函数选
sum - 数据源选择上一步创建的
web.response.error.mark - 时间范围设为
1d(最近24小时) - 若仅需日间统计,可调整时间范围为指定时段(如每天8:00-20:00),公式可改为
sum(web.response.error.mark, 86400, 8*3600)
- 类型选择
二、计算24小时可用率
可用率公式:(总轮询次数 - 异常次数) / 总轮询次数 × 100%
- 创建总轮询次数统计项:
- 类型选择
Aggregate - 键值设为
web.daily.poll.total - 聚合函数选
count - 数据源选择基础响应码监控项
- 时间范围设为
1d
- 类型选择
- 创建可用率计算型监控项:
- 类型选择
Calculated - 键值设为
web.availability.24h - 计算公式:
last(web.daily.poll.total) = 0 ? 100 : (last(web.daily.poll.total) - last(web.daily.error.total)) / last(web.daily.poll.total) * 100 - 该公式会自动处理无轮询数据的情况,避免除数为0的错误
- 类型选择
三、可选优化
- 将可用率监控项添加到仪表盘(Dashboard),直观查看实时及历史可用率趋势
- 可基于每日异常次数设置二级触发器,比如当日异常次数超过阈值时触发升级告警
- 若需按自然日统计(而非滚动24小时),可配合Zabbix的
time_shift参数调整聚合时间范围
内容的提问来源于stack exchange,提问作者SLAVO UKRAINE ZOV KILLER
相关产品推荐
相关产品推荐

