在企业网络中设备越来越多,服务器也越来越多,Zabbix 是一款稳定、高性能、开源的监控解决方案,支持多种网络协议和设备,适合用来监控服务器、网络设备、数据库、中间件等多类资源。
一、Zabbix 简介
Zabbix 是基于 C 和 PHP 编写的企业级分布式监控系统,主要特性包括:
支持 SNMP、IPMI、JMX、Agent 等多种采集方式
多维度告警策略,可对接邮件、微信、企业微信、钉钉等通道
丰富的图表和仪表盘功能
支持自动发现(主机、服务)和自动注册
支持多种数据库后端(MySQL/PostgreSQL)
二、Zabbix 部署
环境准备
操作系统:debain 12 推荐使用LTS系统
数据库:MariaDB 10.11(Debian 默认)
Zabbix版本:建议使用官方长期支持版(LTS),如 6.0 LTS(最新版7.0)
1. 更新系统
sudo apt update && sudo apt upgrade -y
2. 设置主机名(可选)
sudo hostnamectl set-hostname zabbix-server
二、安装 Zabbix Server
1. 添加 Zabbix 官方仓库
wget https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian12_all.deb
sudo dpkg -i zabbix-release_6.4-1+debian12_all.deb
sudo apt update
2. 安装 Zabbix Server + Frontend + MariaDB + Nginx + PHP-FPM
sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent mariadb-server php-fpm php-mysql
三、配置数据库
一.安全初始化 MariaDB(可选)
sudo mysql_secure_installation
2. 创建数据库和用户
sudo mysql -uroot -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;
FLUSH PRIVILEGES;
EXIT;
3. 导入初始架构
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix
四、配置 Zabbix Server
编辑配置文件:
sudo vim /etc/zabbix/zabbix_server.conf
修改数据库密码项:
DBPassword=zabbix_password
五、配置 PHP 前端
根据默认安装路径编辑 PHP 设置:
sudo nano /etc/zabbix/apache.conf
确认时区设置:
php_value date.timezone Asia/Shanghai
六、启动服务
sudo systemctl restart zabbix-server zabbix-agent nginx
sudo systemctl enable zabbix-server zabbix-agent nginx
七、Web 前端初始化
打开浏览器访问:http://xxxxxx/zabbix
默认账号密码:用户名:admin 密码:zabbix
登录后修改密码
二、添加主机监控项
1. 安装 Zabbix Agent(在被监控主机)
sudo apt install zabbix-agent
编辑 /etc/zabbix/zabbix_agentd.conf:
Server=<ZABBIX_SERVER_IP>
Hostname=<被监控主机名>
2. 启动 agent 服务
sudo systemctl enable zabbix-agent
sudo systemctl restart zabbix-agent
3. 在 Web 界面添加主机
配置 → 主机 → 创建主机
指定主机名、IP
添加模板
三、邮件告警配置(使用 Gmail 作为例子)
1. 设置邮箱
管理 → 媒体类型 → Email
设置 SMTP 信息:
2. 配置用户接收媒体
管理 → 用户 → Admin → 媒体
添加邮箱,启用接收警报。
3. 配置动作
配置 → 动作 → 创建动作
条件:触发严重级别告警
操作:发送到用户 Email
四、企业微信告警配置
1. 获取企业微信 API 信息
企业 ID(CorpID)
应用 Secret(应用管理页面)
AgentID(应用 ID)
2. 下载微信报警脚本
cd /usr/lib/zabbix/alertscripts wget https://raw.githubusercontent.com/itsunboy/zabbix-wechat-alert/master/wechat.py chmod +x wechat.py
3. 配置 wechat.py(可根据你的 CorpID 和 Secret 修改脚本)
也可以将变量传入命令行,简化脚本部署。
4. 设置媒体类型
管理 → 媒体类型 → 创建媒体类型
类型:脚本
脚本名称:wechat.py
脚本参数:
{ALERT.SENDTO}{ALERT.SUBJECT}{ALERT.MESSAGE}
用户中添加媒体,设置 Send to 为接收者微信ID(如 @all)
四、自动发现网络设备(SNMP)
Zabbix 支持通过 SNMP 自动发现网络设备,例如交换机、路由器、防火火墙等
一、准备工作
1. 安装 SNMP 工具(Zabbix Server 端)
sudo apt install snmp snmp-mibs-downloader -y
编辑 /etc/snmp/snmp.conf,取消注释以加载 MIB 名称(可选):
sudo vim /etc/snmp/snmp.conf
注释掉 mibs : 行:#mibs :
二、配置网络设备的 SNMP
以交换机为例,开启 SNMPv2 并设置:
三、Zabbix 配置 SNMP 自动发现
1. 添加 SNMP 主机模板
路径:配置 → 模板 → 模板导入
Zabbix 内置许多 SNMP 模板,例如:
Template Net Network Generic Device SNMPv2Template Net Cisco SNMPv2Template Net HP SNMPv2Template SNMP Interfaces
2. 创建主机发现规则
路径:配置 → 自动发现 → 创建规则
配置如下:
3. 创建自动注册动作(可选)
路径:配置 → 动作 → 自动注册动作
条件:
已通过自动发现添加的主机
操作:
链接模板 →
Template Net Network Generic Device SNMPv2添加主机到主机群组(如 Network Devices)
四、测试 SNMP 是否可达
在 Zabbix Server 上运行:
snmpwalk -v2c -c public [交换机IP]
若输出大量信息,说明设备配置正确。
五、SNMP 模板支持的内容
以 Template Net Network Generic Device SNMPv2 为例,它能自动发现并监控:
接口名称、速率、状态
接口流量(in/out)
SNMP uptime
CPU 使用率(部分设备支持)
六、注意事项
确保网络设备的 SNMP 端口 161/UDP 开放 且白名单包含 Zabbix Server。
SNMP 的性能和稳定性与设备支持程度有关。
如有特殊 MIB,可以上传到
/usr/share/snmp/mibs/目录,并重新加载。
成功配置后
你将可以在 Zabbix 中看到自动添加的 SNMP 网络设备,图表中显示接口流量、设备状态等信息。