Zabbix运维监控部署,服务器异常自动告警

很多刚接触服务器运维的朋友都遇到过类似问题:网站突然打不开,登录服务器才发现磁盘满了或者内存耗尽。
如果有一套监控系统能在故障发生前自动告警,就能避免大部分被动救火。
本文就带你从零开始完成Zabbix运维监控部署,让服务器异常自动告警真正落地。

部署前的环境确认

Zabbix采用服务端-代理端架构,服务端负责收集数据和触发告警,代理端安装在被监控服务器上。
建议准备两台Linux主机(CentOS 7或Ubuntu 20.04以上),服务端最低2核4G,被监控端1核1G即可。

开始前先关闭防火墙和SELinux,或者提前放行相关端口。
Zabbix服务端默认使用10051端口,代理端使用10050端口,Web界面使用80端口。

# 临时关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
# 关闭SELinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

安装Zabbix服务端与数据库

以CentOS 7为例,先安装MariaDB数据库和Zabbix官方源。

# 安装数据库
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
yum install -y mariadb-server mariadb
systemctl start mariadb && systemctl enable mariadb
mysql_secure_installation

# 创建Zabbix数据库和用户
mysql -uroot -p
CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'YourStrongPassword';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
FLUSH PRIVILEGES;
EXIT;

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

接着安装Zabbix服务端、前端和代理,并修改配置文件。

yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent
# 编辑 /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=YourStrongPassword

启动服务并设置开机自启。

systemctl restart zabbix-server zabbix-agent httpd
systemctl enable zabbix-server zabbix-agent httpd

完成后浏览器访问 http://服务端IP/zabbix,默认账号Admin,密码zabbix。
登录后进入Web安装向导,数据库信息填写正确即可。

添加被监控主机并关联模板

登录Zabbix Web界面,依次点击“配置”->“主机”->“创建主机”。
主机名称自定义,群组选Linux servers,IP地址填写被监控服务器的内网或公网IP。

关键一步是关联模板。
在“模板”标签页搜索并添加 Template OS Linux by Zabbix agent,这个模板会自动采集CPU、内存、磁盘、网络等常用指标。

随后在被监控服务器上安装zabbix-agent,并配置服务端地址。

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-agent
# 编辑 /etc/zabbix/zabbix_agentd.conf
Server=服务端IP
ServerActive=服务端IP
Hostname=本机主机名(需与Web界面主机名一致)
systemctl restart zabbix-agent && systemctl enable zabbix-agent

回到Web界面,主机列表中的ZBX图标变为绿色,说明数据采集正常。

配置异常自动告警

Zabbix通过触发器判断异常,再通过动作发送告警。
系统自带模板已包含常见触发器,例如CPU负载过高、磁盘空间不足。
你可以在“配置”->“主机”->“触发器”中查看或自定义阈值。

要实现自动告警,需要配置告警媒介。
以邮件为例,进入“管理”->“报警媒介类型”->“Email”,填写SMTP服务器、端口、发件邮箱和密码。
保存后,再到“管理”->“用户”->“Admin”->“报警媒介”中添加收件邮箱。

最后创建动作:点击“配置”->“动作”->“创建动作”。
条件设置为“触发器严重性 >= 警告”,操作中发送消息给Admin用户,并勾选“恢复消息”以便故障恢复时收到通知。

判断条件:当触发器表达式成立且严重性达到设定级别,Zabbix会立即执行动作发送告警。
如果未收到邮件,优先检查动作条件是否匹配、用户媒介是否启用、SMTP连通性。

常见部署问题与避坑

  • 数据库导入报错:通常是字符集或权限问题,确认数据库创建时使用utf8,且zabbix用户有全部权限。
  • ZBX图标红色:检查被监控端防火墙是否放行10050端口,zabbix_agentd.conf中Server和Hostname是否准确。
  • 邮件收不到:很多云服务器封禁25端口,建议改用465加密端口或其他告警方式,如钉钉、企业微信。
  • 告警风暴:合理设置触发器依赖和告警抑制,避免同一故障重复通知。

验证告警是否生效

最简单的方法是在被监控服务器上模拟高负载,例如执行 stress --cpu 4 --timeout 60,观察Zabbix是否在几分钟内触发告警并发送邮件。
也可以在触发器列表中手动选择一个触发器,点击“测试”按钮查看动作执行情况。

如果测试成功,说明Zabbix运维监控部署已基本完成,服务器异常自动告警可以正常工作。
后续根据业务需求逐步添加更多监控项和告警媒介即可。

常见疑问

Zabbix服务端和代理端可以在同一台机器吗? 可以,但不建议生产环境这样用,因为服务端资源占用较高,可能影响被监控业务的稳定性。

必须使用MariaDB吗? Zabbix支持MySQL、PostgreSQL等多种数据库,选择你熟悉的即可,注意版本兼容性。

告警邮件有延迟怎么办? 检查动作中的默认操作间隔,适当调小;
同时确认网络到SMTP服务器的延迟。

如何监控Windows服务器? 安装Zabbix agent for Windows,配置方式与Linux类似,模板选择Windows by Zabbix agent。

如果你正在处理Zabbix运维监控部署,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。

分享到:
上一篇
Prometheus+Grafana搭建机房服务器监控大屏
下一篇
运维自动化脚本编写,批量操作多台服务器
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意