三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

别再踩坑了!CentOS 7上Zabbix 5.0 LTS保姆级安装与配置全记录

别再踩坑了!CentOS 7上Zabbix 5.0 LTS保姆级安装与配置全记录

CentOS 7下Zabbix 5.0 LTS避坑指南:从零到监控专家

第一次在CentOS 7上部署Zabbix 5.0 LTS时,我几乎踩遍了所有可能的坑。从SELinux的莫名拦截到PHP时区配置的诡异报错,再到Nginx配置文件的神秘消失——这些看似简单却令人抓狂的问题,往往让新手运维人员望而却步。本文将分享一套经过实战验证的完整安装流程,特别针对那些网上教程从未提及的"隐藏陷阱"。

1. 环境准备:避开权限与安全机制的暗礁

在开始安装前,我们需要先解决CentOS 7的两个"守护者":防火墙和SELinux。它们本是系统安全的基石,却常常成为Zabbix安装路上的绊脚石。

关键操作顺序

  1. 临时禁用SELinux(重启后生效永久配置):
    setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
  2. 停止并禁用防火墙(生产环境请谨慎):
    systemctl stop firewalld systemctl disable firewalld

注意:如果后续需要重新启用防火墙,必须记得为Zabbix服务添加例外规则:

firewall-cmd --add-service=http --permanent firewall-cmd --add-port=10050/tcp --permanent firewall-cmd --add-port=10051/tcp --permanent firewall-cmd --reload

2. 软件仓库配置:解决依赖地狱的终极方案

Zabbix官方仓库与SCL(Software Collections)仓库的配合使用是确保依赖关系正确的关键。以下是经过优化的仓库配置方法:

# 添加Zabbix官方仓库 rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm # 添加SCL仓库(为Nginx和PHP提供新版支持) yum install -y centos-release-scl # 清理缓存 yum clean all

常见问题排查表

错误现象可能原因解决方案
找不到zabbix-web包SCL仓库未启用检查/etc/yum.repos.d/下是否有centos-scl.repo
依赖冲突系统已有旧版PHP使用yum remove php*清除旧版后再试
GPG密钥错误仓库密钥过期执行rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

3. 数据库部署:MariaDB的精细调优

Zabbix对数据库配置有特殊要求,标准的MariaDB安装往往需要针对性优化:

# 安装MariaDB服务器 yum install -y mariadb-server # 启动并设置开机自启 systemctl start mariadb systemctl enable mariadb # 安全初始化(交互式) mysql_secure_installation

Zabbix专用数据库配置

CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin; CREATE USER 'zabbix'@'%' IDENTIFIED BY 'ComplexPassword123!'; GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'%'; FLUSH PRIVILEGES;

重要提示:生产环境务必使用强密码替代'ComplexPassword123!',并考虑限制zabbix用户的访问IP。

4. 服务组件安装:顺序就是一切

Zabbix各组件的安装顺序直接影响最终成功率。以下是经过验证的最佳实践:

  1. 先安装核心组件:

    yum install -y zabbix-server-mysql zabbix-agent
  2. 再安装前端依赖:

    yum install -y zabbix-web-mysql-scl zabbix-nginx-conf-scl
  3. 导入数据库架构(注意密码提示):

    zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

版本兼容性对照表

组件推荐版本备注
Zabbix Server5.0 LTS长期支持版最稳定
MariaDB10.2+5.5版本可能性能不足
PHP7.2-7.48.0+不支持
Nginx1.16+来自SCL仓库

5. 配置文件调校:那些教程没告诉你的细节

配置文件是Zabbix安装过程中最容易出错的部分,每个参数都关乎系统能否正常运行。

zabbix_server.conf关键修改

vi /etc/zabbix/zabbix_server.conf # 修改以下参数: DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=ComplexPassword123!

Nginx配置的隐藏陷阱

vi /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf # 确保包含以下内容: server { listen 80; server_name your_server_ip; root /usr/share/zabbix; # 其他保持默认... }

诡异现象处理:如果发现配置文件为空,不要惊慌。这是因为SCL环境的特殊路径导致的。直接手动创建完整配置即可。

6. PHP配置:时区问题的终极解决方案

PHP时区配置错误是导致Zabbix前端报错的常见原因,必须精确设置:

vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf # 找到并修改以下行: php_value[date.timezone] = Asia/Shanghai

验证PHP配置的有效性

# 测试PHP配置 scl enable rh-php72 'php -i | grep timezone' # 应该输出类似: date.timezone => Asia/Shanghai => Asia/Shanghai

7. 服务启动:顺序与依赖的微妙关系

服务的启动顺序不仅影响成功率,还关系到监控数据的完整性:

# 正确的启动顺序 systemctl restart mariadb systemctl restart zabbix-server systemctl restart zabbix-agent systemctl restart rh-nginx116-nginx systemctl restart rh-php72-php-fpm # 设置开机自启 systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm

服务状态检查清单

  • MariaDB:systemctl status mariadb
  • Zabbix Server:tail -f /var/log/zabbix/zabbix_server.log
  • Nginx:nginx -t && systemctl status rh-nginx116-nginx
  • PHP-FPM:systemctl status rh-php72-php-fpm

8. 前端初始化:那些令人困惑的默认凭证

完成安装后,通过浏览器访问服务器IP,将进入Zabbix初始化界面。这里有几个关键点需要注意:

  1. 第一步检查:确保所有前提条件都是"OK"状态

  2. 数据库配置

    • 数据库类型:MySQL
    • 数据库主机:localhost
    • 端口:保持3306
    • 名称:zabbix
    • 用户:zabbix
    • 密码:之前设置的复杂密码
  3. Zabbix服务器详情

    • 主机:localhost
    • 端口:10051
    • 名称:自定义您的监控环境名称
  4. 登录凭证

    • 默认管理员账号:Admin (注意大小写)
    • 默认密码:zabbix

安全提醒:首次登录后,立即更改Admin密码!Zabbix默认凭证是公开信息,不改密码等于敞开大门。

9. 监控第一台主机:正确添加本地Agent

许多新手会忽略一个事实:安装Zabbix Server的机器本身也需要被监控。以下是正确配置方法:

  1. 在Zabbix前端:配置 → 主机 → 创建主机

  2. 关键参数:

    • 主机名称:Zabbix server
    • 可见名称:Zabbix server
    • 群组:选择Linux servers
    • Agent接口:IP地址127.0.0.1,端口10050
  3. 模板关联:

    • 点击"模板"标签
    • 搜索并添加"Template OS Linux by Zabbix agent"
  4. 保存后,等待几分钟查看最新数据

监控项状态解读

状态图标含义应采取的行动
绿色正常无需操作
红色不支持检查监控项配置
灰色禁用按需启用
黄色异常查看具体错误信息

10. 日常维护与故障排查技巧

Zabbix安装只是开始,保持系统稳定运行需要掌握一些实用技巧:

日志文件定位

# Zabbix Server日志 tail -f /var/log/zabbix/zabbix_server.log # Zabbix Agent日志 tail -f /var/log/zabbix/zabbix_agentd.log # 前端错误日志 tail -f /var/log/nginx/error.log

性能优化参数

# 编辑zabbix_server.conf vi /etc/zabbix/zabbix_server.conf # 推荐调整的参数: StartPollers=20 StartPollersUnreachable=10 StartTrappers=15 StartPingers=10 CacheSize=256M

数据库维护命令

-- 清理历史数据(保留30天) 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;

经过这套完整流程,您的Zabbix监控系统应该已经稳定运行。记住,监控系统本身也需要被监控——这是我在一次深夜故障排查后得到的深刻教训。建议为Zabbix Server本身设置外部健康检查,当它出现问题时能通过其他渠道告警。

← 返回列表