Zabbix 监控告警配置

Zabbix 监控告警配置完整指南

Zabbix是功能强大的企业级开源监控平台,支持服务器、网络设备、应用程序等多种监控目标。本文介绍Zabbix的核心配置,包括主机监控、触发器告警和通知渠道设置。

一、Zabbix架构概述

  • Zabbix Server:核心服务,负责数据收集、处理和告警
  • Zabbix Proxy:代理服务器,在分布式环境中减轻Server压力
  • Zabbix Agent:安装在被监控主机上,采集系统指标
  • Web界面:基于PHP的Web管理界面,用于配置和展示
  • 数据库:MySQL/PostgreSQL存储配置和历史数据

二、Zabbix Server安装

# CentOS安装Zabbix 6.0 LTS
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent

# 创建数据库
mysql -u root -p
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'zabbix_password';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';

# 导入初始数据
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix

# 配置数据库密码(/etc/zabbix/zabbix_server.conf)
DBPassword=zabbix_password

systemctl enable --now zabbix-server zabbix-agent httpd php-fpm

三、添加监控主机

在被监控服务器上安装Zabbix Agent:

yum install -y zabbix-agent
# /etc/zabbix/zabbix_agentd.conf
Server=zabbix-server-ip       # Zabbix Server IP
ServerActive=zabbix-server-ip
Hostname=web-server-01        # 主机名,需与Zabbix中配置一致
systemctl enable --now zabbix-agent

在Zabbix Web界面添加主机:Configuration → Hosts → Create host → 填写主机名和IP → 选择监控模板(Template OS Linux by Zabbix agent)→ 保存。

四、监控模板配置

Zabbix提供丰富的开箱即用模板,主要模板:

  • Template OS Linux by Zabbix agent:Linux系统基础监控(CPU、内存、磁盘、网络)
  • Template App MySQL by Zabbix agent:MySQL数据库监控
  • Template App Nginx by Zabbix agent:Nginx服务监控
  • Template App Redis by Zabbix agent 2:Redis监控

五、自定义监控项(Item)

# 在Agent配置中添加自定义UserParameter
# /etc/zabbix/zabbix_agentd.d/custom.conf
UserParameter=custom.queue.length,redis-cli llen myqueue
UserParameter=custom.service.port[*],ss -tlnp | grep :$1 | wc -l

# 在Zabbix Web界面添加Item
# Configuration → Hosts → Items → Create item
# Key: custom.queue.length
# Type: Zabbix agent
# Value type: Numeric(unsigned)

六、触发器(Trigger)配置

# 触发器表达式示例
# CPU使用率超过80%持续5分钟
{host:system.cpu.util.avg(5m)}>80

# 磁盘可用空间低于10%
{host:vfs.fs.size[/,pfree].last()}<10

# 进程不存在
{host:proc.num[nginx].last()}=0

# 自定义队列积压超过1000
{host:custom.queue.length.last()}>1000

七、告警通知配置

配置企业微信告警通知:

  1. Administration → Media types → Create media type
  2. 选择Webhook类型,填写企业微信机器人URL
  3. 配置告警模板(包含主机名、问题描述、严重程度等信息)
  4. 在用户配置中绑定告警媒介
  5. 配置告警动作(Action):触发哪些告警、通知哪些用户

八、总结

Zabbix凭借强大的功能和灵活的扩展性,成为企业级监控的首选工具。通过合理配置监控模板、触发器和告警动作,可以构建覆盖全栈的监控体系。建议从官方模板开始,根据业务需求逐步添加自定义监控项,持续完善监控覆盖面。