基于 K8s 的物联网平台运维体系:Ansible+Zabbix 自动化监控与故障自愈(三)—— Zabbix Server 启动排错记

一、实验背景

在上一篇文章中,我们完成了:

  • Ansible 批量管理环境搭建

  • Zabbix Server 6.0 安装

  • MySQL 5.7 数据库配置

  • Zabbix Web 界面安装

本以为 Zabbix Server 能顺利启动,结果却卡住了。Web 界面一直显示 Zabbix server is running: No,后端服务怎么也起不来。

这篇文章完整记录了从 MySQL 版本不兼容到系统表损坏、再到服务配置文件错误的整个排查过程。


二、实验环境

节点 IP 角色
master 192.168.116.168 Zabbix Server + Web + Ansible
node1 192.168.116.169 MySQL 数据库(Zabbix 库)
node2 192.168.116.170 业务节点(物联系统 Pod + Agent)

Zabbix 架构:Server 在 master,数据库在 node1,Agent 在三台机器上。

问题:Zabbix Server 无法启动

现象

Zabbix Web 界面显示 Zabbix server is running: No

复制代码
systemctl status zabbix-server-mysql
# Active: faile

排查过程

1. 查看日志发现 MySQL 版本不兼容

复制代码
tail -50 /var/log/zabbix/zabbix_server.log

日志显示:

复制代码
Unable to start Zabbix server due to unsupported MySQL database version (5.07.44).
Must be at least (8.00.0).

原因:Zabbix Server 6.0 要求 MySQL 8.0+,但 node1 上 MySQL 是 5.7.44。

2. 升级 MySQL 到 8.0

  • 备份 Zabbix 数据库

  • 卸载 MySQL 5.7

  • 安装 MySQL 8.0

  • 获取临时密码并登录

3. 升级后仍然报错

升级后启动 Zabbix Server,日志仍显示 MySQL 5.7 版本错误。原因是日志文件缓存了旧信息。

于是又继续修复日志问题。用sudo -u zabbix /usr/sbin/zabbix_server -f -c /etc/zabbix/zabbix_server.conf命令查看发现Zabbix Server 手动运行是正常的!说明是 systemd 服务文件的问题(问题太多了主播就不一个个截图了)

解决:删除旧日志,重启服务。

4. 确认配置

复制代码
grep -E "DBHost|DBName|DBUserBPassword" /etc/zabbix/zabbix_server.conf

5. 修复 systemd 服务文件

复制代码
# 手动运行测试(成功)
sudo -u zabbix /usr/sbin/zabbix_server -f -c /etc/zabbix/zabbix_server.conf
# 发现服务文件中用户是 zabbixsrv,手动运行时用的是 zabbix

# 修改服务文件
sed -i 's/User=zabbixsrv/User=zabbix/' /usr/lib/systemd/system/zabbix-server-mysql.service
systemctl daemon-reload

结果:服务启动正常。


最终验证

复制代码
systemctl status zabbix-server-mysql
# Active: active (running)

复盘

问题 原因 解决方案
Zabbix Server 启动失败 MySQL 5.7 版本太低 升级到 MySQL 8.0
升级后仍报 5.7 错误 日志缓存未更新 删除旧日志
无法创建 zabbix 用户 MySQL 系统表引擎损坏 修复系统表
systemd 启动失败 服务文件中用户不匹配 统一使用 zabbix 用户
相关推荐
MuMuMu122339 分钟前
工业园区 VOCs 绿岛集中治理:越华环保集团项目技术方案与工程实践
大数据·运维
Kismet_nvi1 小时前
《Kubernetes Service 进阶、kube-proxy 与 Ingress 实战精要》
云原生·容器·kubernetes
sxstj2 小时前
Ubuntu 完整安装并启用 Flatpak 教程
linux·运维·ubuntu
国际云,接待2 小时前
Nginx 后面接负载均衡,502/504 到底该先查哪里?
运维·nginx·负载均衡
Zhu7583 小时前
使用helm在k8s集群部署MySQL单实例,支持当前所有主版本的最新子版本
mysql·adb·kubernetes
刘某的Cloud3 小时前
Galera Cluster部署 mariadb 节点down机,log sequence number恢复
linux·运维·数据库·负载均衡·mariadb·集群·高可用
小此方3 小时前
Re:Linux系统篇(五十四)线程篇 · 七:互斥锁的底层实现原理:从硬件上下文、原子交换指令(Swap)到并发封装实战
linux·运维·驱动开发
2401_834636993 小时前
从零吃透 K8s 网络:ServiceIngressMetalLB 实操手册
网络·容器·kubernetes
程序员老陆5 小时前
说一说FFmpeg6在Linux平台的编译
linux·运维·服务器·ffmpeg
玫幽倩5 小时前
2026黄河流域公安院校-电子物证单项赛(程序逆向分析+服务器取证)
运维·服务器·python·电子取证·逆向·程序分析·服务器取证