Zabbix Server 7 + MySQL 8.4 单机版生产环境部署指南

Zabbix Server 7 + MySQL 8.4 单机版生产环境部署指南

1. 系统准备与环境配置

1.1 系统要求检查

# 检查系统版本
cat /etc/centos-release

# 更新系统
sudo dnf update -y
sudo reboot

# 安装基础依赖
sudo dnf install -y curl wget vim tel*** ***-tools

1.2 防火墙配置

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

2. MySQL 8.4 安装与配置

2.1 安装 MySQL 8.4

# 添加 MySQL 8.4 官方仓库
sudo rpm -Uvh https://dev.mysql.***/get/mysql84-***munity-release-el9-1.noarch.rpm
sudo dnf module disable mysql -y

# 安装 MySQL
sudo dnf install -y mysql-***munity-server mysql-***munity-client mysql-***munity-devel

# 启动 MySQL
sudo systemctl enable --now mysqld
sudo systemctl status mysqld

2.2 安全配置与初始化

# 获取临时 root 密码
sudo grep 'temporary password' /var/log/mysqld.log

# 运行安全配置脚本(使用上一步获取的临时密码)
sudo mysql_secure_installation

# 创建 Zabbix 数据库和用户
mysql -u root -p <<EOF
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'ZabbixSecurePassword123!';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
FLUSH PRIVILEGES;
SET GLOBAL log_bin_trust_function_creators = 1;
EOF

2.3 MySQL 性能优化配置

sudo vi /etc/my.***f.d/mysql-server.***f

[mysqld] 部分添加以下优化配置:

[mysqld]
# 基础配置
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# 内存优化
innodb_buffer_pool_size = 2G
innodb_buffer_pool_instances = 2
innodb_log_file_size = 512M
innodb_log_buffer_size = 64M

# 性能优化
innodb_flush_log_at_trx_***mit = 2
innodb_flush_method = O_DIRECT
innodb_file_per_table = ON
max_connections = 200
thread_cache_size = 20

# 查询优化
query_cache_size = 0
query_cache_type = 0
table_open_cache = 2000

# 分区支持
log_bin_trust_function_creators = 1

重启 MySQL 应用配置:

sudo systemctl restart mysqld

3. Zabbix Server 7 安装与配置

3.1 安装 Zabbix 仓库

# 安装 Zabbix 7 仓库
sudo rpm -Uvh https://repo.zabbix.***/zabbix/7.0/centos/9/x86_64/zabbix-release-latest-7.0.el9.noarch.rpm
sudo dnf clean all

3.2 安装 Zabbix 组件

sudo dnf install -y \
    zabbix-server-mysql \
    zabbix-web-mysql \
    zabbix-apache-conf \
    zabbix-sql-scripts \
    zabbix-agent \
    zabbix-get

3.3 导入数据库架构

# 导入初始数据库架构
sudo zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p'ZabbixSecurePassword123!' zabbix

3.4 配置 Zabbix Server

sudo vi /etc/zabbix/zabbix_server.conf

修改以下配置项:

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=ZabbixSecurePassword123!

# 性能优化配置
StartPollers=20
StartPreprocessors=10
StartHistoryPollers=10
StartDiscoverers=5
StartHTTPPollers=5

# 缓存配置
HistoryCacheSize=256M
HistoryIndexCacheSize=128M
TrendCacheSize=128M
ValueCacheSize=256M

# Housekeeping 配置
HousekeepingFrequency=1
MaxHousekeeperDelete=50000

4. Web 服务与 PHP 配置

4.1 安装 PHP 及相关组件

sudo dnf install -y \
    httpd \
    php php-mysqlnd php-gd php-bcmath php-mbstring php-ldap php-xml

4.2 配置 PHP

sudo vi /etc/php.ini

修改以下参数:

max_execution_time = 300
memory_limit = 256M
post_max_size = 32M
upload_max_filesize = 16M
max_input_time = 300
date.timezone = Asia/Shanghai

4.3 配置 Apache

# 启用 Zabbix 前端配置
sudo ln -s /etc/zabbix/web/zabbix.conf /etc/httpd/conf.d/zabbix.conf

# 启动服务
sudo systemctl enable --now httpd
sudo systemctl status httpd

5. 启动与验证服务

5.1 启动所有服务

sudo systemctl enable --now zabbix-server zabbix-agent httpd
sudo systemctl status zabbix-server zabbix-agent httpd

5.2 验证服务状态

# 检查端口监听
sudo ss -tulpn | grep -E '10050|10051|80'

# 检查服务日志
sudo tail -f /var/log/zabbix/zabbix_server.log
sudo tail -f /var/log/httpd/error_log

6. 基本分区配置(可选)

6.1 简单分区策略

-- 登录 MySQL
mysql -u zabbix -p'ZabbixSecurePassword123!' zabbix

-- 创建基本分区管理存储过程
DELIMITER $$

CREATE PROCEDURE `simple_partition_maintenance`(IN schema_name VARCHAR(64))
BEGIN
    -- 历史数据保留30天,每天一个分区
    CALL partition_maintenance(schema_name, 'history', 30, 24, 7);
    CALL partition_maintenance(schema_name, 'history_uint', 30, 24, 7);
    CALL partition_maintenance(schema_name, 'history_str', 30, 24, 7);
    
    -- 趋势数据保留2年,每周一个分区
    CALL partition_maintenance(schema_name, 'trends', 730, 168, 4);
    CALL partition_maintenance(schema_name, 'trends_uint', 730, 168, 4);
END$$

DELIMITER ;

-- 执行分区
CALL simple_partition_maintenance('zabbix');

6.2 自动化分区维护

# 创建每日维护脚本
sudo vi /etc/cron.daily/zabbix-partition-maintenance

#!/bin/bash
mysql -uzabbix -p'ZabbixSecurePassword123!' zabbix -e "CALL simple_partition_maintenance('zabbix');"

# 设置执行权限
sudo chmod +x /etc/cron.daily/zabbix-partition-maintenance

7. 访问与初始配置

7.1 访问 Zabbix Web 界面

http://服务器IP地址/zabbix

7.2 按照安装向导完成配置:

  1. 检查所有前提条件是否满足
  2. 配置数据库连接:
    • Database type: MySQL
    • Database host: localhost
    • Database name: zabbix
    • User: zabbix
    • Password: ZabbixSecurePassword123!
  3. 设置服务器详情
  4. 预览配置并完成安装

7.3 登录默认账户:

用户名: Admin
密码: zabbix

8. 基本监控配置

8.1 配置自监控

# 编辑 Agent 配置
sudo vi /etc/zabbix/zabbix_agentd.conf

# 修改以下参数:
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=zabbix-server

# 重启 Agent
sudo systemctl restart zabbix-agent

8.2 添加本地主机监控

  1. 在 Web 界面中进入 “Configuration” → “Hosts”
  2. 点击 “Create host”
  3. 添加本地主机:
    • Host name: Zabbix server
    • Visible name: Zabbix server
    • Groups: Linux servers
    • Agent interfaces: IP 127.0.0.1, Port 10050
  4. 链接模板:Template OS Linux by Zabbix agent

9. 备份与维护

9.1 数据库备份脚本

sudo vi /opt/scripts/zabbix-backup.sh

#!/bin/bash
# Zabbix 数据库备份脚本
BACKUP_DIR="/backup/zabbix"
DATE=$(date +%Y%m%d_%H%M%S)
RETENTION_DAYS=7

# 创建备份目录
mkdir -p $BACKUP_DIR

# 执行备份
mysqldump -uzabbix -p'ZabbixSecurePassword123!' \
    --single-transaction --routines zabbix \
    > $BACKUP_DIR/zabbix_backup_$DATE.sql

# 压缩备份
gzip $BACKUP_DIR/zabbix_backup_$DATE.sql

# 清理旧备份
find $BACKUP_DIR -name "*.gz" -mtime +$RETENTION_DAYS -delete

# 设置定时任务(每天凌晨2点执行)
sudo echo "0 2 * * * root /opt/scripts/zabbix-backup.sh" > /etc/cron.d/zabbix-backup

9.2 配置文件备份

# 备份重要配置文件
sudo tar -czf /backup/zabbix-config-$(date +%Y%m%d).tar.gz \
    /etc/zabbix \
    /etc/httpd/conf.d/zabbix.conf \
    /etc/php.ini \
    /etc/my.***f.d/mysql-server.***f

10. 故障排查与监控

10.1 常见问题排查

# 检查服务状态
sudo systemctl status zabbix-server zabbix-agent httpd mysqld

# 检查日志错误
sudo tail -f /var/log/zabbix/zabbix_server.log | grep -i error
sudo tail -f /var/log/httpd/error_log

# 测试数据库连接
mysql -uzabbix -p'ZabbixSecurePassword123!' -e "SELECT version();"

# 测试前端连接
curl -I http://localhost/zabbix

10.2 性能监控项目

在 Zabbix 中添加以下监控项:

  • MySQL 连接数: mysql.get_status[Connections]
  • Zabbix 队列: zabbix[queue,10m]
  • 服务器内存使用: vm.memory.size[available]
  • 磁盘空间: vfs.fs.size[/,pfree]

这个单机版部署方案提供了稳定可靠的 Zabbix 监控环境,适合大多数中小型生产环境使用。方案包含了必要的性能优化和安全配置,同时保持了简单易维护的特点。

转载请说明出处内容投诉
CSS教程网 » Zabbix Server 7 + MySQL 8.4 单机版生产环境部署指南

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买