温馨提示×

CentOS Trigger监控工具

小樊
40
2025-12-13 17:25:04
栏目: 智能运维

CentOS 监控中的 Trigger 概念与选型

CentOS 的监控体系里,**Trigger(触发器)**通常指当监控指标满足某个条件时自动触发的告警判定。以 Zabbix 为例,完整链路是:创建主机与监控项(Item)→ 配置触发器(Trigger)→ 触发动作(Action,如邮件、短信、Webhook)。此外,Linux 系统层面也常用事件驱动的方式实现“触发”逻辑,例如 inotifywait 监听文件变化、systemd Timer 定时触发、cron 周期执行、udev 响应设备插拔等。

常用监控方案与 Trigger 实现

  • Zabbix

    • 适用场景:企业级服务器与服务监控,图形化配置、模板丰富、告警动作灵活。
    • 关键要点:
      • 监控项类型可选 Zabbix agent(active);日志监控常用 log / logrt 两个 Key,支持正则匹配与日志轮转。
      • 触发器表达式示例:{主机:log[/var/log/messages,error].str(error)}=1 and {主机:log[…].nodata(60)}=0(表示出现 “error” 且 60 秒内有新日志)。
      • 告警动作可配置邮件、脚本、Webhook 等,支持分组、抑制、依赖等策略。
  • Prometheus + Alertmanager + Grafana

    • 适用场景:云原生与动态环境,时序数据强大、查询灵活、生态完善。
    • 关键要点:
      • Node Exporter 采集主机指标(默认端口 9100),Prometheus 定时抓取。
      • 告警规则示例:当 5 分钟平均 CPU 空闲率低于 20% 触发告警(HighCPUUsage)。
      • Alertmanager 负责去重、分组、抑制与路由,支持 邮件/企业微信/钉钉/Slack 等通知。
  • Nagios

    • 适用场景:传统 IT 基础设施与服务可用性监控,插件生态成熟。
    • 关键要点:通过插件采集状态,配置 Host/ServiceCommand,在状态异常时执行通知动作。

快速上手示例

  • Zabbix 日志关键字告警(Trigger 实战)

    1. 在主机上创建监控项:Type 选 Zabbix agent(active),Key 用 log[/var/log/messages,error](或 logrt 适配轮转日志),设置合理更新间隔。
    2. 创建触发器 Expression:{主机:log[/var/log/messages,error].str(error)}=1 and {主机:log[…].nodata(60)}=0,含义为“出现 error 且近 60 秒有新日志”。
    3. 配置动作(Action):如发送邮件或调用脚本;确保 Zabbix Agent 对日志文件具备读取权限,避免状态 unsupported
  • Prometheus 主机 CPU 告警(规则示例)

    • Prometheus 规则:当 5 分钟平均 CPU 使用率超过 80% 触发
      • expr: 100 - (avg by(instance)(irate(node_cpu_seconds_total{mode=“idle”}[5m]))) * 100 > 80
      • for: 5m
      • labels.severity: warning/critical
      • annotations: 填写摘要与描述
    • Alertmanager 配置 SMTP 邮件或 Webhook,完成分组、抑制与路由。

选型与落地建议

  • 以“指标规模实时性可视化维护成本”为维度选型:小规模与一体化运维优先 Zabbix;云原生与灵活查询优先 Prometheus;传统环境或既有体系可沿用 Nagios
  • 触发器阈值遵循“先宽后严、逐步收敛”原则,结合业务高峰低谷设置不同阈值;启用分组、抑制与依赖,避免告警风暴。
  • 统一“数据源—告警—通知—可视化”链路:Zabbix 或 Prometheus 作为数据源,Alertmanager 或 Zabbix Action 负责通知,Grafana 负责看板展示。

0