CentOS8.5下Zabbix6.0监控系统部署全攻略:从MySQL配置到前端优化

在CentOS 8.5上构建企业级Zabbix 6.0监控平台:从零到精通的深度实践

最近在帮一个朋友的公司搭建一套服务器监控系统,他们之前用的是几款零散的脚本工具,服务器一多就完全顾不过来,经常是业务挂了半小时才有人发现。我评估了几个方案,最终还是选择了Zabbix——这个老牌但依然强大的开源监控解决方案。Zabbix 6.0 LTS版本带来了不少实用的新特性,比如原生支持TimescaleDB、改进的UI,还有更灵活的权限管理,对于中小型企业来说,它几乎能满足所有的监控需求。

不过,在CentOS 8.5上部署Zabbix 6.0时,我遇到了几个比较棘手的问题。CentOS 8官方支持已经停止,默认的软件源无法使用,这给安装过程增加了一些额外的步骤。更重要的是,MySQL 8.0的配置和Zabbix的性能调优,如果设置不当,后期监控数据量一大,系统就会变得异常缓慢。这篇文章就是基于我最近几次实际部署的经验,从系统准备、数据库优化、服务配置到前端调优,一步步带你搭建一个稳定、高效的Zabbix监控平台。

1. 系统环境准备与基础配置

在开始安装Zabbix之前,我们需要先解决CentOS 8.5的软件源问题。由于CentOS 8已经在2021年底停止维护,官方的AppStream和BaseOS仓库已经无法直接使用。如果不解决这个问题,后续的所有安装步骤都会失败。

1.1 配置可用的YUM源

我通常的做法是切换到CentOS的vault源,这是官方归档的旧版本仓库,虽然不提供更新,但至少能保证基础软件的安装。同时,为了获得更好的下载速度,我会结合阿里云的镜像源。

# 备份原有的repo文件
cd /etc/yum.repos.d/
mkdir backup
mv *.repo backup/

# 下载阿里云的CentOS 8.5 vault源配置
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

# 清理缓存并重建
yum clean all
yum makecache

注意:如果你需要安装一些较新的软件包,可能需要额外配置EPEL(Extra Packages for Enterprise Linux)仓库。不过对于Zabbix 6.0来说,官方仓库已经包含了所有必要的依赖。

1.2 系统基础优化

在部署监控系统之前,对操作系统进行一些基础优化是很有必要的。这些优化不仅能提升Zabbix的运行效率,还能减少后续维护中的各种奇怪问题。

首先,设置一个有意义的主机名,并确保本地解析正常工作:

# 设置主机名
hostnamectl set-hostname zabbix-monitor

# 编辑hosts文件,确保能解析自身
echo "127.0.0.1   zabbix-monitor localhost localhost.localdomain" > /etc/hosts
echo "::1         localhost localhost.localdomain localhost6 localhost6.localdomain6" >> /etc/hosts

接下来是安全策略的调整。对于内部监控服务器,我通常会把SELinux设置为permissive模式,这样既不会完全禁用安全功能,又能避免各种权限问题:

# 临时设置为permissive模式
setenforce 0

# 永久修改SELinux配置
sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

防火墙的配置需要更加谨慎。Zabbix需要开放多个端口,包括Web服务的80/443端口,以及Zabbix Server的10051和Agent的10050端口:

# 如果使用firewalld
systemctl start firewalld
systemctl enable firewalld

# 开放必要端口
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --permanent --add-port=10051/tcp
firewall-cmd --reload

# 验证端口开放状态
firewall-cmd --list-all

1.3 系统参数调优

对于监控服务器来说,文件描述符和进程数的限制往往需要调整。Zabbix在监控大量主机时,会创建很多子进程,默认的系统限制可能不够用。

编辑/etc/security/limits.conf文件,在末尾添加:

zabbix soft nofile 65535
zabbix hard nofile 65535
zabbix soft nproc 16384
zabbix hard nproc 16384
* soft nofile 65535
* hard nofile 65535

同时,修改/etc/systemd/system.conf中的默认限制:

DefaultLimitNOFILE=65535
DefaultLimitNPROC=16384

修改后需要重启系统或者重新登录才能生效。这些调整对于后续Zabbix处理大量并发连接至关重要。

2. MySQL 8.0数据库的深度配置与优化

数据库是Zabbix的核心,所有的监控数据、配置信息都存储在这里。如果数据库配置不当,随着监控数据的积累,系统性能会急剧下降。我见过太多因为数据库问题而不得不重建整个Zabbix系统的案例。

2.1 MySQL 8.0的安装与安全加固

虽然CentOS 8自带了MariaDB,但我更推荐使用MySQL 8.0。Zabbix官方对MySQL 8.0的支持更好,而且在性能方面也有一些优化。

# 下载MySQL 8.0的官方仓库配置
rpm -ivh https://repo.mysql.com/mysql80-community-release-el8.rpm

# 安装MySQL服务器和客户端
dnf install mysql-community-server mysql-community-client -y

# 启动并设置开机自启
systemctl enable --now mysqld

安装完成后,MySQL会生成一个临时root密码,我们需要先修改这个密码:

# 查看临时密码
grep 'temporary password' /var/log/mysqld.log

# 使用临时密码登录并修改
mysql -uroot -p

在MySQL提示符下执行:

-- 修改root密码,注意MySQL 8.0的密码策略比较严格
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourStrongPassword123!';

-- 刷新权限
FLUSH PRIVILEGES;

提示:MySQL 8.0默认启用了密码验证插件,要求密码包含大小写字母、数字和特殊字符,长度至少8位。如果觉得太麻烦,可以调整密码策略,但生产环境不建议这么做。

2.2 为Zabbix创建专用数据库

为Zabbix创建独立的数据库和用户是个好习惯,这样既能提高安全性,也便于后续的维护和迁移。

-- 创建Zabbix数据库,使用utf8mb4字符集
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

-- 创建Zabbix专用用户
CREATE USER 'zabbix'@'localhost' IDENTIFIED WITH mysql_native_password BY 'ZabbixSecurePass123!';

-- 授予所有权限
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';

-- 刷新权限
FLUSH PRIVILEGES;

这里有几个关键点需要注意:

  1. 字符集选择:一定要使用utf8mb4而不是utf8,因为utf8在MySQL中最多只支持3字节,无法存储一些特殊字符(如emoji)。
  2. 认证插件:MySQL 8.0默认使用caching_sha2_password插件,但有些老版本的Zabbix可能不支持,所以这里显式指定使用mysql_native_password
  3. 权限控制:虽然这里授予了所有权限,但在生产环境中,可以根据实际情况进行更细粒度的控制。

2.3 MySQL性能优化配置

Zabbix数据库的优化是一个持续的过程,但基础的配置可以在部署时就做好。下面是我经过多次实践总结出的一个比较平衡的配置方案。

创建配置文件/etc/my.cnf.d/zabbix.cnf

[mysqld]
# 基础配置
character-set-server = utf8mb4
collation-server = utf8mb4_bin
default_authentication_plugin = mysql_native_password

# 连接相关
max_connections = 500
max_connect_errors = 1000000
connect_timeout = 60
wait_timeout = 28800
in
内容概要:本文围绕含氢气氨气的综合能源系统优化调度展开研究,提出了一种基于Matlab的仿真建模与优化方法,旨在实现多能互补、高效利用与低碳运行。研究构建了包含风能、太阳能、电解水制氢、氢气储存、氢合成氨、氨储存及能源转换设备在内的综合能源系统架构,重点考虑了氢、氨作为二次能源载体在能量存储与转化中的关键作用。通过建立系统各组件的数学模型,如电解槽效率模型、合成氨反应动力学模型、储氢储氨容量模型等,并结合可再生能源出力不确定性、负荷需求波动等因素,构建了以系统运行成本最小化、碳排放最小化或多目标综合最优为目标的优化调度模型。采用智能优化算法(如改进粒子群算法、多目标优化算法等)对模型进行求解,实现了对系统中各类设备出力、储能充放电状态、能量交互功率等变量的精细化调度,有效提升了能源利用效率与系统经济性。; 适合人群:具备一定电力系统、能源工程或自动化专业背景,熟悉Matlab/Simulink仿真工具,从事新能源、综合能源系统、氢能等领域研究的研发人员、研究生及高年级本科生。; 使用场景及目标:① 为含氢、氨等新型能源载体的综合能源系统规划设计提供理论依据和技术支撑;② 实现对风光等波动性可再生能源的高效消纳,提高系统灵活性与可靠性;③ 通过优化调度降低系统运行成本与碳排放强度,服务于“双碳”战略目标。; 阅读建议:此资源以Matlab代码实现为核心,提供了完整的仿真模型与优化算法代码,学习者应结合相关专业知识,深入理解模型构建的物理意义与数学表达,调试并运行代码以掌握其工作流程,进而可根据实际需求对模型进行扩展与改进。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值