一、认识 Zabbix

Zabbix 是一款强大的企业级开源监控系统,用于对服务器、网络设备、应用服务等进行 性能监控、数据采集、报警通知与趋势分析

一句话总结:Zabbix 是“企业运维的千里眼”,实时掌握系统运行状态与资源健康。

核心功能:

  • 支持主动与被动监控(Agent/Agentless)

  • 自动发现网络与设备

  • 自定义触发器和报警策略

  • 可视化图表、仪表盘、报表分析

  • 支持分布式监控与高可用部署


二、Zabbix 架构原理


┌───────────────────────────┐ │ Zabbix Web UI │ ← 展示监控数据、配置报警 └────────────┬──────────────┘ │ ┌────────────▼──────────────┐ │ Zabbix Server │ ← 核心调度、存储、分析 └────────────┬──────────────┘ │ ┌────────────▼──────────────┐ │ Zabbix Agent │ ← 采集被监控主机指标 └───────────────────────────┘

主要组件:

组件 说明
Zabbix Server 核心服务,处理监控数据
Zabbix Agent 被监控端数据采集
Zabbix Web Web 管理与展示界面
Zabbix Database 存储历史与配置数据
Zabbix Proxy 分布式监控代理(可选)

三、安装 Zabbix(以 Ubuntu 为例)

1. 安装依赖

sudo apt update sudo apt install apache2 mysql-server php php-mysql php-bcmath php-xml php-ldap php-json php-gd -y

2. 添加 Zabbix 源

wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-1+ubuntu22.04_all.deb sudo dpkg -i zabbix-release_7.0-1+ubuntu22.04_all.deb sudo apt update

3. 安装 Zabbix

sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent -y


四、配置数据库

进入 MySQL:


sudo mysql

创建数据库:


create database zabbix character set utf8mb4 collate utf8mb4_bin; create user 'zabbix'@'localhost' identified by 'Zabbix123!'; grant all privileges on zabbix.* to 'zabbix'@'localhost'; quit;

导入初始数据:


zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix


五、配置 Zabbix Server

编辑 /etc/zabbix/zabbix_server.conf


DBPassword=Zabbix123!

启动服务:


sudo systemctl enable zabbix-server zabbix-agent apache2 sudo systemctl start zabbix-server zabbix-agent apache2


六、访问 Web 管理界面

浏览器打开:


http://<your-server-ip>/zabbix

默认账号:


用户名:admin 密码:zabbix

配置完成后可看到 Zabbix 仪表盘。


七、安装 Zabbix Agent(被监控端)

在目标主机执行:


sudo apt install zabbix-agent -y

修改 /etc/zabbix/zabbix_agentd.conf


Server=192.168.1.100 ServerActive=192.168.1.100 Hostname=web01

启动:


sudo systemctl enable zabbix-agent sudo systemctl start zabbix-agent

Zabbix Server 即可监控该主机。


八、添加监控主机

Web 界面:


Configuration → Hosts → Create host

填写:

  • Hostname: web01

  • Groups: Linux servers

  • Agent interface: 192.168.1.101:10050

  • Template: “Template OS Linux by Zabbix agent”

保存后等待数据采集即可。


九、监控指标

类型 示例指标 含义
CPU system.cpu.util[,user] 用户态 CPU 使用率
内存 vm.memory.size[available] 可用内存
磁盘 vfs.fs.size[/,free] 磁盘剩余空间
网络 net.if.in[eth0] 网络流量
进程 proc.num[nginx] 进程数量
服务 net.tcp.service[http] HTTP 端口状态

参考案例:www.pcobio.cn


十、自定义监控项(UserParameter)

编辑 Agent 配置:


vim /etc/zabbix/zabbix_agentd.conf

添加:


UserParameter=nginx.status,/usr/bin/curl -s http://127.0.0.1/nginx_status | grep Active | awk '{print $3}'

重启 Agent:


systemctl restart zabbix-agent

在 Zabbix Web 中添加 Key:nginx.status


十一、触发器与告警

触发器示例:


{web01:system.cpu.util[,user].avg(5m)}>80

表示过去 5 分钟 CPU 使用率超过 80%。

邮件报警配置:


Administration → Media types → Email

设置 SMTP 地址、发件邮箱、授权码。

在用户配置中绑定报警媒介:


Users → admin → Media


十二、自动发现(Auto Discovery)

配置路径:


Configuration → Discovery → Create discovery rule

可自动扫描 IP 段:


192.168.1.1-192.168.1.255

自动添加主机并应用模板。


十三、模板(Template)管理

模板是监控项、触发器、图形、应用集的集合。

常用模板:

  • Template OS Linux

  • Template DB MySQL

  • Template App Nginx

  • Template App Docker

导入模板:


Configuration → Templates → Import


十四、Zabbix 与 SNMP 监控

安装 SNMP 支持:


sudo apt install snmp snmp-mibs-downloader

配置:


- job_name: "switch" static_configs: - targets: ["192.168.1.200:161"]

可监控网络设备流量、端口状态、CPU 使用率等。


十五、Zabbix 与 Grafana 集成

Grafana 安装 Zabbix 插件:


grafana-cli plugins install alexanderzobnin-zabbix-app

重启 Grafana:


sudo systemctl restart grafana-server

在 Grafana 中添加数据源:


Type: Zabbix URL: http://<zabbix-server>/api_jsonrpc.php

即可使用 Grafana 可视化展示 Zabbix 数据。


十六、Zabbix Proxy 分布式部署

当服务器数量多、网络分区时使用 Proxy。

安装:


sudo apt install zabbix-proxy-mysql -y

配置:


Server=192.168.1.100 Hostname=proxy-site1 DBPassword=Zabbix123!

Proxy 将数据批量传给 Server,减轻主服务器压力。


十七、Zabbix API

查询主机列表:


curl -X POST -H "Content-Type: application/json" -d '{ "jsonrpc": "2.0", "method": "host.get", "params": { "output": ["hostid", "name"] }, "auth": "API_TOKEN", "id": 1 }' http://localhost/zabbix/api_jsonrpc.php

API 可与 Python、Jenkins、Prometheus 等系统集成。


十八、性能优化

优化项 建议
数据库优化 定期清理历史数据
压缩数据 启用 housekeeper 清理规则
调整采集间隔 非关键指标设为 60s+
启用缓存 调整 CacheSize 参数
分布式代理 使用 Proxy 分担负载

十九、Zabbix 高可用部署

使用两台 Zabbix Server:

  • 通过 Keepalived 实现 VIP 高可用

  • 数据库与存储共享

  • Proxy 连接到 VIP

示例 Keepalived 配置:


vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 virtual_ipaddress { 192.168.1.100 } }


二十、完整实战项目:企业级监控体系

目标:
搭建一套 Zabbix + Grafana + Alertmanager 的全栈监控与报警系统。

架构:

[Web Servers][DB Servers][Docker Nodes] │ ▼ [Zabbix Agent]──→[Zabbix Server] │ ▼ [Grafana Dashboard] │ ▼ [Alertmanager 邮件/钉钉通知]

监控范围:
  • CPU、内存、磁盘、进程、端口状态

  • Web 服务存活与延迟

  • 数据库连接数与 QPS

  • 容器运行状态

告警策略:
  • CPU > 80%(Warning)

  • Memory > 90%(Critical)

  • Nginx Down(High)

结果:
  • Web 端统一展示运行状态

  • Grafana 实时大屏监控趋势

  • 异常自动邮件通知

  • 所有节点集中管理与备份

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐