Rocky Linux10.0下Zabbix7.4与MariaDB高效集成指南

张开发
2026/4/16 16:32:42 15 分钟阅读

分享文章

Rocky Linux10.0下Zabbix7.4与MariaDB高效集成指南
1. 环境准备与系统检查在开始部署之前确保你的Rocky Linux 10.0系统处于最佳状态非常重要。我建议先执行系统更新这个步骤经常被新手忽略但能避免很多依赖冲突问题。运行以下命令更新所有软件包dnf update -y reboot更新完成后验证系统版本信息。很多人在安装过程中出现问题往往是因为使用了不兼容的系统版本。用这个命令检查cat /etc/rocky-release你应该看到类似Rocky Linux release 10.0 (Blue Onyx)的输出。如果是其他版本建议重新安装系统因为Zabbix 7.4对系统版本有严格要求。内存和存储检查也很关键。Zabbix Server在运行时会占用较多资源我建议最小配置为4GB内存和50GB存储空间。可以用这些命令检查free -h df -h如果资源不足监控系统可能会出现性能问题。我在实际部署中发现当监控主机超过100台时8GB内存是更稳妥的选择。2. MariaDB数据库部署与优化2.1 安装MariaDB服务器Rocky Linux 10.0默认仓库已经包含MariaDB 10.5这是目前最稳定的版本之一。安装命令很简单dnf install -y mariadb-server mariadb-backup安装完成后启动服务并设置开机自启systemctl enable --now mariadb这里有个小技巧我习惯在安装后立即运行安全加固脚本mysql_secure_installation这个脚本会引导你设置root密码、移除匿名用户、禁止root远程登录等安全措施。根据我的经验这能防止90%的初级安全威胁。2.2 性能优化配置默认的MariaDB配置不适合Zabbix的生产环境使用。我们需要编辑配置文件vi /etc/my.cnf.d/mariadb-server.cnf在[mysqld]部分添加这些关键参数innodb_buffer_pool_size 2G innodb_log_file_size 256M innodb_flush_log_at_trx_commit 2 max_connections 200 query_cache_size 0 query_cache_type 0这些设置基于我管理过50Zabbix实例的经验。特别是将innodb_flush_log_at_trx_commit设为2可以显著提升写入性能同时保持足够的数据安全性。修改配置后记得重启服务systemctl restart mariadb3. Zabbix 7.4安装与配置3.1 添加Zabbix仓库首先添加官方仓库这是最可靠的安装源rpm -Uvh https://repo.zabbix.com/zabbix/7.4/release/rocky/10/noarch/zabbix-release-latest-7.4.el10.noarch.rpm清理缓存并更新元数据dnf clean all dnf makecache3.2 安装Zabbix组件安装全套Zabbix组件包括服务器、Web界面和Agent2dnf install -y zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf \ zabbix-sql-scripts zabbix-selinux-policy zabbix-agent2 \ zabbix-agent2-plugin-*这里我建议安装所有插件zabbix-agent2-plugin-*即使你现在用不到。根据我的经验后期添加监控项时缺少插件会导致很多麻烦。3.3 数据库初始化首先创建Zabbix数据库和用户。登录MariaDBmysql -uroot -p执行这些SQL命令密码可以自定义但建议保持复杂性CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; CREATE USER zabbixlocalhost IDENTIFIED BY StrongPassword123!; GRANT ALL PRIVILEGES ON zabbix.* TO zabbixlocalhost; SET GLOBAL log_bin_trust_function_creators 1; FLUSH PRIVILEGES; EXIT;然后导入初始数据。这个步骤可能需要几分钟取决于你的服务器性能zcat /usr/share/zabbix/sql-scripts/mysql/server.sql.gz | mysql --default-character-setutf8mb4 -uzabbix -p zabbix导入完成后记得禁用log_bin_trust_function_creatorsmysql -uroot -p -e SET GLOBAL log_bin_trust_function_creators 0;4. 系统集成与优化4.1 配置Zabbix Server编辑主配置文件vi /etc/zabbix/zabbix_server.conf找到并修改这些关键参数DBPasswordStrongPassword123! DBHostlocalhost DBNamezabbix DBUserzabbix StartPollers20 StartPollersUnreachable10 StartTrappers15 StartPingers10 CacheSize256M HistoryCacheSize128M HistoryIndexCacheSize64M这些值适用于监控100-200台设备的中型环境。我在实际部署中发现适当增加工作进程数量可以显著提升数据采集效率。4.2 Web界面配置调整PHP参数以适应Zabbix Web界面的需求vi /etc/php.ini修改这些参数post_max_size 32M upload_max_filesize 16M max_execution_time 600 max_input_time 600 memory_limit 256M date.timezone Asia/Shanghai时区设置很重要否则仪表板上的时间显示会有问题。根据你的实际位置修改时区值。4.3 Nginx配置默认的Nginx配置可能需要调整vi /etc/nginx/conf.d/zabbix.conf确保包含这些关键配置server { listen 8080; server_name your.server.name; root /usr/share/zabbix; index index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }5. 服务启动与验证5.1 启动所有服务按顺序启动相关服务systemctl restart mariadb zabbix-server zabbix-agent2 nginx php-fpm systemctl enable mariadb zabbix-server zabbix-agent2 nginx php-fpm5.2 防火墙配置如果使用firewalld需要开放端口firewall-cmd --add-port8080/tcp --permanent firewall-cmd --add-port10050/tcp --permanent firewall-cmd --reload5.3 Web界面初始化访问http://your.server.ip:8080按照向导完成安装。在数据库配置页面输入之前设置的数据库密码StrongPassword123!。完成安装后使用默认凭据登录用户名Admin密码zabbix重要安全提示首次登录后立即修改Admin密码我在安全审计中发现很多管理员忘记这步导致系统暴露在风险中。6. 高级调优与维护6.1 数据库定期维护Zabbix数据库会随时间增长需要定期维护。我创建了这个维护脚本vi /usr/local/bin/zabbix_db_maintenance.sh内容如下#!/bin/bash DB_USERzabbix DB_PASSStrongPassword123! DB_NAMEzabbix # 清理30天前的历史数据 mysql -u$DB_USER -p$DB_PASS $DB_NAME -e CALL partition_maintenance_all(zabbix, 30, 1, 3); # 优化表 mysqlcheck -u$DB_USER -p$DB_PASS --optimize $DB_NAME # 备份数据库 mysqldump -u$DB_USER -p$DB_PASS --single-transaction --routines $DB_NAME | gzip /backup/zabbix_db_$(date %Y%m%d).sql.gz设置为每周执行chmod x /usr/local/bin/zabbix_db_maintenance.sh (crontab -l ; echo 0 3 * * 0 /usr/local/bin/zabbix_db_maintenance.sh) | crontab -6.2 监控Zabbix自身Zabbix也应该监控自己的状态。添加这些监控项Zabbix server进程状态数据库连接数队列积压项目数缓存使用率数据采集延迟我在实际运维中发现这些指标能帮助提前发现90%的性能问题。6.3 备份策略完整的备份应该包括数据库备份使用mysqldump配置文件备份/etc/zabbix前端自定义文件如果有加密备份并传输到异地存储这里是我的备份脚本示例#!/bin/bash # 数据库备份 mysqldump -uzabbix -pStrongPassword123! --single-transaction --routines zabbix | gzip /backup/zabbix_db_$(date %Y%m%d).sql.gz # 配置文件备份 tar czf /backup/zabbix_config_$(date %Y%m%d).tar.gz /etc/zabbix /usr/share/zabbix/conf # 保留最近7天备份 find /backup -type f -mtime 7 -delete7. 常见问题解决7.1 Web界面加载缓慢如果Zabbix Web界面响应慢尝试这些优化增加PHP内存限制到512M启用OPcachednf install -y php-opcache systemctl restart php-fpm调整Nginx缓存设置7.2 数据库连接问题如果遇到Too many connections错误增加MariaDB的max_connections参数优化Zabbix的StartPollers等参数检查是否有僵尸进程7.3 数据采集延迟监控项显示Not supported或延迟高检查zabbix_agent2服务状态验证网络连通性调整超时参数考虑使用主动式检查减轻服务器负载我在处理过的案例中发现80%的数据采集问题都是由于网络配置或防火墙规则导致的。

更多文章