基于 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 用户
相关推荐
程序员-Benothing12 小时前
Vim编辑器从入门到精通:模式、快捷键、配置、插件
linux·运维·服务器
m0_6464299712 小时前
Docker 完整核心知识点总结(超通俗易懂版)
运维·docker·容器
亚川楼宇自控系统数据中心厂家13 小时前
IBMS 集成管理系统:如何打通楼宇自控实现建筑一体化管控
运维
迪康Defender13 小时前
终端安全审批体系设计:如何平衡安全管控与业务连续性
运维·服务器·安全·运维开发·学习方法·业界资讯·远程工作
luo_guibin15 小时前
Linux系统下OpenSSL升级全流程,新旧版本切换
linux·运维·服务器
71777715 小时前
支持混合云的 DevOps 平台有哪些:主流方案对比与选型指南
运维·devops
看着博客敲代码15 小时前
No space left on device:服务器被 SSH 爆破到日志写满的完整排查与止血
linux·运维·服务器·安全·ssh
编程序的员15 小时前
使用OpenTelemetry来监控Rust应用
运维·rust·monitoring·opentelemetry
实战派K8S&DB15 小时前
TDSQL 核心模块与进程体系
运维·数据库·分布式·sql·mysql
Rooting++15 小时前
用友打包的APP壳子怎么获取SHA1码?
运维·服务器