news 2026/6/29 23:40:47

CentOS8环境下Zabbix 6.0 LTS部署与生产级配置实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CentOS8环境下Zabbix 6.0 LTS部署与生产级配置实战

1. 环境准备与系统优化

在CentOS8上部署Zabbix 6.0 LTS之前,合理的系统配置能避免80%的后续问题。我遇到过不少案例都是因为基础环境没做好,导致监控系统运行不稳定。下面这些步骤都是经过生产环境验证的黄金配置方案。

1.1 使用国内镜像源加速部署

国内用户最头疼的就是软件包下载速度问题。实测用默认源安装Zabbix组件可能需要2小时以上,换成阿里云镜像后缩短到15分钟。具体操作时要注意几个细节:

# 备份原有源配置(重要!系统升级时可能需要还原) sudo mkdir /etc/yum.repos.d/backup && sudo mv /etc/yum.repos.d/CentOS-* /etc/yum.repos.d/backup/ # 获取阿里云CentOS8镜像源 sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo # 特别处理epel源(很多依赖包在这里) sudo dnf install -y epel-release sudo sed -i 's|^#baseurl|baseurl|g' /etc/yum.repos.d/epel* sudo sed -i 's|^metalink|#metalink|g' /etc/yum.repos.d/epel* sudo sed -i 's|//download\.fedoraproject\.org/pub|//mirrors.aliyun.com|g' /etc/yum.repos.d/epel*

更新缓存时如果遇到"package conflicts"错误,可以试试这个万能解法:

sudo dnf clean all && sudo rm -rf /var/cache/dnf sudo dnf -y update --allowerasing --skip-broken

1.2 安全策略精细化配置

完全关闭防火墙和SELinux是新手常见错误,在生产环境应该采用白名单策略:

# 防火墙放行必要端口(Zabbix Server默认10051,Web80/443) sudo firewall-cmd --permanent --add-port=80/tcp sudo firewall-cmd --permanent --add-port=10050-10051/tcp sudo firewall-cmd --reload # SELinux策略调整(比完全关闭更安全) sudo setsebool -P httpd_can_network_connect_db on sudo setsebool -P httpd_can_connect_zabbix on

建议创建专门的审计规则监控关键目录:

# 监控Zabbix配置目录变更 sudo auditctl -w /etc/zabbix/ -p wa -k zabbix_config

2. LAMP环境深度优化

Zabbix官方推荐使用Nginx,但实测Apache在中小规模监控场景下更稳定。下面这套配置方案支撑过500+节点的监控系统。

2.1 数据库选型与调优

MariaDB 10.3+的性能比MySQL社区版更适合Zabbix,关键配置参数:

[mysqld] innodb_buffer_pool_size = 1G # 建议物理内存的50% innodb_log_file_size = 256M max_connections = 200 character-set-server = utf8mb4 collation-server = utf8mb4_bin transaction-isolation = READ-COMMITTED

初始化时建议创建独立的表空间:

CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'ComplexP@ssw0rd'; GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost'; ALTER DATABASE zabbix DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

2.2 PHP性能调优

Zabbix 6.0对PHP7.4+有硬性要求,这些参数直接影响页面加载速度:

memory_limit = 256M post_max_size = 32M upload_max_filesize = 16M max_execution_time = 300 max_input_time = 300 date.timezone = Asia/Shanghai opcache.enable=1 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000 opcache.revalidate_freq=60

3. Zabbix Server生产级部署

3.1 使用清华源加速安装

官方源在国内访问不稳定,推荐使用清华镜像源:

# 替换默认源 sudo rpm -Uvh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm sudo sed -i 's|repo.zabbix.com|mirrors.tuna.tsinghua.edu.cn/zabbix|g' /etc/yum.repos.d/zabbix* # 安装核心组件(推荐使用Agent2) sudo dnf install -y zabbix-server-mysql zabbix-web-mysql \ zabbix-apache-conf zabbix-sql-scripts \ zabbix-selinux-policy zabbix-agent2

3.2 数据库初始化技巧

导入初始数据时容易卡死,这个命令加了超时和重试机制:

for i in {1..3}; do zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p'ComplexP@ssw0rd' zabbix --connect-timeout=30 && break sleep 10 done

关键配置文件/etc/zabbix/zabbix_server.conf的优化项:

DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=ComplexP@ssw0rd DBSocket=/var/lib/mysql/mysql.sock StartPollers=20 StartPollersUnreachable=10 StartTrappers=15 StartPingers=10 CacheSize=256M HistoryCacheSize=128M TrendCacheSize=128M ValueCacheSize=256M Timeout=30 LogSlowQueries=3000

4. 安全加固与监控自保护

4.1 网络层防护

修改默认端口能减少90%的自动化攻击:

# 修改Agent2端口 sudo sed -i 's/# ListenPort=10050/ListenPort=21050/g' /etc/zabbix/zabbix_agent2.conf # Server端同步修改 sudo sed -i 's/# NodeAddress=/NodeAddress=0.0.0.0:21051/g' /etc/zabbix/zabbix_server.conf

4.2 证书加密通信

自签名证书配置步骤:

# 生成CA证书 openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \ -keyout /etc/zabbix/zabbix_ca.key \ -out /etc/zabbix/zabbix_ca.crt \ -subj "/CN=Zabbix CA/O=My Company" # 生成服务器证书 openssl req -nodes -days 3650 -newkey rsa:2048 \ -keyout /etc/zabbix/zabbix_server.key \ -out /etc/zabbix/zabbix_server.csr \ -subj "/CN=zabbix-server/O=My Company" # 用CA签名 openssl x509 -req -in /etc/zabbix/zabbix_server.csr \ -CA /etc/zabbix/zabbix_ca.crt \ -CAkey /etc/zabbix/zabbix_ca.key \ -CAcreateserial \ -out /etc/zabbix/zabbix_server.crt

在Agent2配置中启用加密:

TLSConnect=psk TLSAccept=psk TLSPSKIdentity=MyPSK TLSPSKFile=/etc/zabbix/zabbix_agent2.psk

5. 高可用方案实施

5.1 数据库主从复制

主库配置:

[mysqld] server-id = 1 log_bin = /var/log/mysql/mysql-bin.log binlog_format = ROW binlog_row_image = FULL expire_logs_days = 7 sync_binlog = 1

从库配置:

CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='repl', MASTER_PASSWORD='ReplP@ssw0rd', MASTER_PORT=3306, MASTER_AUTO_POSITION=1; START SLAVE;

5.2 Zabbix Server集群

前端负载均衡配置示例(Nginx):

upstream zabbix { server 192.168.1.101:80; server 192.168.1.102:80; keepalive 16; } server { listen 80; location / { proxy_pass http://zabbix; proxy_set_header Host $host; } }

6. 性能监控与调优

6.1 基础监控项配置

这些是必须监控的关键指标:

  • 系统级:CPU负载、内存使用、磁盘IOPS、网络带宽
  • 数据库级:连接数、查询缓存命中率、慢查询数量
  • Zabbix自身:队列积压、缓存利用率、Housekeeper执行时间

6.2 自动化维护脚本

定期清理历史数据的脚本:

#!/bin/bash # 保留30天历史数据 mysql -uzabbix -p'ComplexP@ssw0rd' zabbix <<EOF DELETE FROM history WHERE clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY)); DELETE FROM history_uint WHERE clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY)); OPTIMIZE TABLE history, history_uint; EOF

7. 故障排查指南

7.1 日志分析技巧

关键日志路径:

  • /var/log/zabbix/zabbix_server.log
  • /var/log/httpd/error_log
  • /var/log/mariadb/mariadb.log

常见错误速查:

  1. "database is down":检查DBPassword配置项和MySQL socket路径
  2. "frontend access denied":确认SELinux上下文chcon -R -t httpd_sys_content_t /usr/share/zabbix
  3. "agent unreachable":验证防火墙规则和Agent进程状态

7.2 性能瓶颈定位

使用这个命令实时监控Server状态:

watch -n 5 "zabbix_server -R config_cache_reload && mysql -uzabbix -p'ComplexP@ssw0rd' -e 'SHOW STATUS LIKE \"%onn%\"; SHOW PROCESSLIST;'"

8. 生产环境验证清单

部署完成后务必检查这些项:

  1. [ ] Web界面所有菜单功能测试
  2. [ ] 模拟触发器告警测试
  3. [ ] 监控项数据采集间隔验证
  4. [ ] 备份策略实施验证
  5. [ ] 性能基准测试(建议用zabbix-bench工具)

最后提醒,Zabbix Server的Java网关如果需要监控JMX应用,要单独安装zabbix-java-gateway包,并确保10052端口通畅。实际使用中发现,对于大规模部署,将Proxy节点部署在被监控网络内能显著提升采集效率。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/29 23:34:06

BurpSuite TLS指纹伪装实战:绕过WAF/IDS精准检测

1. 为什么需要伪装TLS指纹 如果你经常用BurpSuite做安全测试&#xff0c;可能会遇到这种情况&#xff1a;明明请求都配置对了&#xff0c;但目标网站就是死活不返回数据。打开Burp的拦截记录一看&#xff0c;发现连接直接被重置了。这种情况八成是触发了WAF&#xff08;Web应用…

作者头像 李华
网站建设 2026/6/29 23:33:41

快手跳转微信合规制作后台教程,私信自动回复小钥匙链接卡片设置搭建

近期短视频私域运营赛道热度持续走高&#xff0c;指数、各大运营社群、电商商家交流圈中&#xff0c;“快手跳转微信”“私信自动回复链接卡片” 相关搜索量环比上涨超 180%。大量实体商家、带货主播、知识 IP、矩阵运营从业者都在寻找稳定、合规的公私域导流方式&#xff0c;而…

作者头像 李华
网站建设 2026/6/29 23:30:38

黄河流域pwn的wp(缺的比较多)

这个直接nc上去再cat f*就行了&#xff0c;这里我也简单讲讲我的对拿shell的看法吧&#xff0c;system这个函数里面的参数就跟我们自己在终端输命令是一样的&#xff0c;比如一直在用的system("/bin/sh")&#xff0c;跟我们在自己终端输个/bin/sh是一样的。为什么这样…

作者头像 李华
网站建设 2026/6/29 23:30:07

如何快速掌握多机位剪辑:LosslessCut完整指南

如何快速掌握多机位剪辑&#xff1a;LosslessCut完整指南 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 你是否曾为多机位视频剪辑而烦恼&#xff1f;面对多个摄像机…

作者头像 李华
网站建设 2026/6/29 23:24:44

CANopen Emergency: 搞懂 EM 运行流程

CANopen Emergency&#xff1a; 搞懂 EM 运行流程 文章目录CANopen Emergency&#xff1a; 搞懂 EM 运行流程先给结论1. 协议层&#xff1a;EMCY 解决什么问题2. 帧格式和相关 OD 对象2.1 0x1001 Error register2.2 0x1003 Pre-defined error field2.3 0x1014 COB-ID EMCY2.4 0…

作者头像 李华
网站建设 2026/6/29 23:23:59

当 leader 被隔离: etcd 网络分区深度分析

本文主要讨论网络分区等场景下各个节点&#xff0c;尤其是 leader 节点在做什么&#xff0c;以加深对 etcd-raft 模块的了解。 网络分区 如上图所示&#xff0c;假设在 t1 时刻 s1 是集群的 leader 节点&#xff0c;t2 时刻发生网络分区&#xff08;脑裂&#xff09;导致 s1/s…

作者头像 李华