Zabbix 监控
zabbix、process-monitoring。
25 分钟
Zabbix 基础设施监控
应用层 APM 之外,运维仍需 主机、网络、中间件、数据库 的可用性与容量监控。Zabbix 是开源、Agent/Agentless 双模式的基础设施监控平台,擅长模板化与触发器告警。本课讲 Server + Agent 架构;应用指标见 prometheus-essentials,可观测理论见 observability-essentials,DevOps 见 /roadmaps/devops。
学习目标
- 部署 Zabbix Server + Web + PostgreSQL + Agent
- 用 Template 监控 Linux 主机 CPU、内存、磁盘、MySQL
- 配置 Trigger → Action 邮件或 Webhook 告警
架构
Zabbix Server
├─ Zabbix Agent(主动/被动)→ 主机 metrics
├─ SNMP → 交换机、打印机
├─ JMX → Java(可补 backend,但不如 Prometheus 细)
└─ HTTP check → URL 可用性
Zabbix Web UI → Dashboard、Problem、Maps
# zabbix_agentd.conf 片段
Server=zabbix-server
ServerActive=zabbix-server
Hostname=coderoadmap-backend-host
# 自定义 UserParameter 示例
UserParameter=mysql.ping,mysqladmin ping -h localhost | grep -c alive
与 Prometheus 分工
| 维度 | Zabbix | Prometheus |
|---|---|---|
| 强项 | 主机、网络、传统 IT | 云原生、K8s、应用 RED |
| 模型 | Agent push/active + Server 拉 | Pull scrape |
| 告警 | 内置 Trigger | Alertmanager |
| 共存 | 常见:Zabbix 管 IAAS,Prometheus 管 K8s 应用 |
CodeRoadMap ops lab 可 Zabbix 监控 VM/docker 宿主机,Prometheus 抓 backend /actuator/prometheus(prom-scrape),互补不重复。
Trigger 示例
名称: MySQL down
表达式: {Template DB MySQL:mysql.ping.last()}=0
严重性: Disaster
动作: 通知 on-call,关联 runbook
Maps 可画 Nginx → backend → MySQL 拓扑,链路变红时直观看到故障域。
练习
- 为 ops lab 一台 Linux 主机添加 Zabbix Agent 并链接 Linux template
- 创建 Trigger:磁盘使用率 > 85% 持续 5 分钟