You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ufw状态检测及非活跃时触发Prometheus告警的PromQL实现咨询

UFW状态监控对接Prometheus方案

核心结论

无法直接通过原生PromQL实现该需求,PromQL仅能对Prometheus已采集的指标做查询计算,你需要先将UFW运行状态转为Prometheus可识别的指标,后续即可通过PromQL配置告警规则。

实现步骤

步骤1:暴露UFW状态指标

推荐使用node_exporter的textfile collector功能实现指标轻量化采集,无需额外开发自定义exporter:

  • 编写采集脚本,逻辑如下:
    执行ufw status | grep -w active,若命令退出码为0说明UFW活跃,指标赋值为1,否则赋值为0,最终将指标输出到指定文件,示例输出格式:node_ufw_active_status 1
  • 为执行脚本的用户配置sudo免密规则,允许无密码执行ufw status命令,避免脚本执行失败
  • 配置定时任务(如crontab),每分钟执行一次采集脚本,将输出的指标内容写入node_exporter textfile目录下的.prom后缀文件(如/var/lib/node_exporter/ufw_status.prom)
  • 确认node_exporter启动参数包含--collector.textfile.directory=/var/lib/node_exporter/,开启textfile采集能力

若你的环境未部署node_exporter,也可开发轻量自定义exporter实现相同指标暴露逻辑,只需通过HTTP接口输出符合Prometheus格式的指标即可。

步骤2:编写PromQL告警规则

指标采集正常后,使用如下PromQL语句匹配UFW非活跃的场景:

node_ufw_active_status == 0

将上述查询配置为Prometheus告警规则,设置合理的评估周期(如1m)即可触发告警。

步骤3:配置Slack通知

在Alertmanager中配置Slack类型的接收器,将对应告警规则的通知路由到该接收器,即可实现UFW非活跃时自动推送告警到指定Slack通道。

内容的提问来源于stack exchange,提问作者Roberto Jobet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 09:36:04