CentOS搭建:Zabbix

12/31/2025 运维LinuxCentOS

目录


参考:


# CentOS搭建:Zabbix

# 概要说明

# 常用命令


1

# 环境依赖

# 版本依赖

软件/系统 版本 架构 包名 安装方式 备注
Linux CentOS7.X x86_64
MySQL 5.7+
Zabbix 5.0 在线源安装(yum)

# 配置要求

软件/应用 CPU 内存 备注
MySQL 2C 至少2核2G,推荐2核4G
Zabbix-server 2C 至少 2G,推荐 4G

# 安装搭建:服务端

# 包下载

配置zabbix下载源,参考:CentOS配置:自定义源【yum】

# 下载
sudo wget https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
# 安装
sudo rpm -ivh zabbix-release-5.0-1.el7.noarch.rpm
# 查看
ls -al /etc/yum.repos.d
# 编辑
cd /etc/yum.repos.d
# 将源替换为阿里云源
sudo sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo
# 将源禁用0替换为启用1
sudo sed -i 's#enabled=0#enabled=1#' /etc/yum.repos.d/zabbix.repo

1
2
3
4
5
6
7
8
9
10
11
12
13
  • s#原地址#新地址#使用#作为分隔符替代常规的/,避免URL中的斜杠冲突。
  • 全局替换将enabled=0(禁用)修改为enabled=1(启用)。
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/debuginfo/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=1

[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 清除缓存并加载
yum clean all && yum makecache && yum repolist
1
2

配置SCL仓库源,参考:CentOS配置:自定义源【yum】

SCL仓库的作用:centos-release-scl 提供了对 Software Collections (SCL) 的支持,允许在CentOS中安装多版本共存的开发工具(如Python 3.6、Node.js 14等)。配置SCL仓库源是为便于后续安装高版本的 php,默认 yum 安装的 php 版本为 5.4,zabbix要求php版本为7.2以上。

查看仓库是否启用

# 查看
yum repolist enabled | grep SCL
1
2

若没有启用则需要安装

#安装scl
yum install -y centos-release-scl 
1
2

验证安装结果

# 检查包是否安装成功
yum list installed | grep centos-release-scl
1
2

将源替换为阿里云源可参考:CentOS配置:自定义源【yum】中的SCLo-scl镜像部分。

# 环境检查

关闭防火墙

# 查看防火墙运行状态
systemctl status firewalld
# 永久关闭并现在立即关闭防火墙
systemctl disable --now firewalld
1
2
3
4

关闭SELinux(临时),参考:CentOS程序:SELinux

# 临时关闭selinux
sudo setenforce 0
# 验证模式应为 Permissive(记录违规但不阻止)
getenforce
1
2
3
4

更改主机名称(可选),参考:CentOS配置:主机名【hostname】

# 更改主机名
sudo hostnamectl set-hostname zbx-server
1
2

# 进行安装

安装服务端、客户端、前端

# 安装zabbix服务端和客户端
sudo yum install -y zabbix-server-mysql zabbix-agent
1
2
# 安装 Zabbix前端软件包(web+nginx)或(web+apache(zabbix-apache-conf-scl))
sudo yum install -y zabbix-web-mysql-scl zabbix-nginx-conf-scl
1
2

初始化数据库(MySQL)

-- 创建库 zabbix
CREATE DATABASE IF NOT EXISTS `zabbix` CHARACTER SET utf8 COLLATE utf8_bin;
-- 创建账户,用户/密码:zabbix/zabbix@123456
CREATE USER 'zabbix'@'%' IDENTIFIED BY 'zabbix@123456';  
-- 授权数据库
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'%';  
-- 刷新生效
FLUSH PRIVILEGES;
1
2
3
4
5
6
7
8

导入初始数据

# 查询zabbix数据库脚本
rpm -ql zabbix-server-mysql
1
2

image-20250331160027059

# 解压缩,并执行脚本
sudo gzip -d /usr/share/doc/zabbix-server-mysql-5.0.46/create.sql.gz
1
2

配置数据库

# 配置数据库
sudo vi /etc/zabbix/zabbix_server.conf
1
2
DBHost=192.168.1.100  # 远程数据库IP
DBPort=3306           # 数据库端口
DBName=zabbix               
DBPassword=zabbix@123456
1
2
3
4

配置web服务器(nginx版)

# 编辑rh-nginx配置
sudo vi /etc/opt/rh/rh-nginx116/nginx/nginx.conf
1
2
  • 注释掉nginx.confserver块,禁用默认服务。
# 编辑rh-nginx子配置:zabbix.conf
sudo vi /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf
1
2
  • 放开listenserver_name的注释并设置值,启用zabbix服务。

配置PHP进程管理

# 编辑zabbix进程池配置
sudo vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
1
2
# 添加nginx用户到listen.acl_users
listen.acl_users = apache,nginx
# 设置正确的时区
php_value[date.timezone] = Asia/Shanghai
1
2
3
4
  • listen.acl_users = apache,nginx:定义了允许访问的用户列表,apachenginx 用户被允许访问。

安装字体(解决Web页面中文乱码问题)

# 安装
sudo yum install -y wqy-microhei-fonts
# 复制覆盖
sudo cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
1
2
3
4

# 启停操作

# 查看zabbix服务运行状态
sudo systemctl status zabbix-server
# 启动zabbix服务
sudo systemctl start zabbix-server
# 停止zabbix服务
sudo systemctl stop zabbix-server
1
2
3
4
5
6
# 查看zabbix客户端运行状态
sudo systemctl status zabbix-agent
# 启动zabbix客户端
sudo systemctl start zabbix-agent
# 停止zabbix客户端
sudo systemctl stop zabbix-agent
1
2
3
4
5
6
# 查看nginx运行状态
sudo systemctl status rh-nginx116-nginx
# 启动nginx
sudo systemctl start rh-nginx116-nginx
# 停止nginx
sudo systemctl stop rh-nginx116-nginx
1
2
3
4
5
6
# 查看php-fpm运行状态
sudo systemctl status rh-php72-php-fpm
# 启动php-fpm
sudo systemctl start rh-php72-php-fpm
# 停止php-fpm
sudo systemctl stop rh-php72-php-fpm
1
2
3
4
5
6

# 安装搭建:客户端

# 包下载

同上,配置zabbix下载源

# 环境检查

同上,防火墙、SELinux、主机名

# 进行安装

# 安装zabbix
sudo yum -y install zabbix-agent
1
2
# 修改配置文件
sudo vi /etc/zabbix/zabbix_agentd.conf
1
2
# 指定监控服务器的IP地址(被动模式,表示哪些主机可以到本机取数据)
Server=192.168.102.229
# (可选)指定监控服务器的IP地址(主动模式,客户端主动发送数据给服务端)
ServerActive=192.168.102.229
# 指定客户端主机的名称(在web界面上显示的名字)
Hostname=g1server2
1
2
3
4
5
6
  • ServerActive配置可选,因为要想开启主动模式,还要结合StartAgents配置,设置为0表示禁止被动模式。

    • StartAgents是Zabbix Agent配置中的一个重要参数,用于设置Zabbix Agent在被动模式下启动时创建的收集数据进程的数量,默认值是3。
  • 注意检查hostname的解析

    # 查看
    cat /etc/hosts
    
    1
    2

# 启停操作

# 启动服务并设置服务随机自启
systemctl start zabbix-agent
systemctl enable zabbix-agent 
1
2
3

# 一键安装脚本

环境检查

# 编辑
sudo vi zabbix_agent_env_check.sh
1
2
#!/bin/bash
# 环境检查(Zabbix客户端前置条件)
# 用法:./zabbix_agent_env_check.sh <客户端主机名> <管理端IP>
# 示例:./zabbix_agent_env_check.sh zbx-client 192.168.102.229

# 定义颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
NC='\033[0m' # 恢复默认颜色

# ========== 参数校验 ==========
if [ $# -lt 2 ]; then
  echo -e "${RED}错误:必须提供客户端主机名和管理端IP参数!${NC}"
  echo -e "正确用法:$0 <客户端主机名> <管理端IP>"
  echo -e "示例:$0 zbx-client 192.168.102.229"
  exit 1
fi

CLIENT_HOSTNAME=$1
ZABBIX_SERVER_IP=$2

# ========== 权限检查 ==========
if [ "$(id -u)" != "0" ]; then
  echo -e "${RED}错误:必须使用root权限执行此脚本!${NC}"
  exit 1
fi

# ========== 最终状态汇总 ==========
echo -e "\n===== 环境检查报告 ====="
echo -e "防火墙状态:$(systemctl is-active firewalld)"
echo -e "SELinux模式:$(getenforce || echo '未知')"
echo -e "客户端主机名:$(hostname)"
echo -e "客户端Hosts解析:$(grep "$CLIENT_HOSTNAME" /etc/hosts || echo '未配置客户端')"
echo -e "管理端Hosts解析:$(grep "$ZABBIX_SERVER_IP" /etc/hosts || echo '未配置管理端')"
echo -e "========================\n"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 赋权
sudo chmod +x zabbix_agent_env_check.sh
# 执行
sudo bash zabbix_agent_env_check.sh <客户端主机名> <管理端IP>
1
2
3
4

自动化安装

# 编辑
sudo vi zabbix_agent_install.sh
1
2
#!/bin/bash
# Zabbix客户端自动化安装脚本(CentOS 7)
# 使用前需确保具备root权限或sudo权限
# 用法:./zabbix_agent_install.sh <客户端主机名> <管理端IP>
# 示例:./zabbix_agent_install.sh zbx-client 192.168.102.229

# ========== 参数校验 ==========
if [ $# -lt 2 ]; then
  echo -e "${RED}错误:必须提供客户端主机名和管理端IP参数!${NC}"
  echo -e "正确用法:$0 <客户端主机名> <管理端IP>"
  echo -e "示例:$0 zbx-client 192.168.102.229"
  exit 1
fi

CLIENT_HOSTNAME=$1
ZABBIX_SERVER_IP=$2

# ========== 配置Zabbix YUM源 ==========
echo "===== 配置阿里云Zabbix源 ====="
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
yum clean all && yum makecache

# ========== 安装Zabbix客户端 ==========
echo "===== 安装zabbix-agent ====="
yum install -y zabbix-agent

# ========== 修改客户端配置 ==========
echo "===== 更新zabbix_agentd.conf ====="
CONFIG_FILE="/etc/zabbix/zabbix_agentd.conf"
cp $CONFIG_FILE ${CONFIG_FILE}.bak  # 备份原始配置

sed -i "s/^Server=127.0.0.1/Server=$ZABBIX_SERVER_IP/" $CONFIG_FILE
sed -i "s/^ServerActive=127.0.0.1/ServerActive=$ZABBIX_SERVER_IP/" $CONFIG_FILE
sed -i "s/^Hostname=Zabbix server/Hostname=$CLIENT_HOSTNAME/" $CONFIG_FILE

# ========== 启动服务 ==========
echo "===== 启动并启用zabbix-agent ====="
systemctl restart zabbix-agent
systemctl enable zabbix-agent
systemctl status zabbix-agent

# ========== 安装验证 ==========
echo "===== 验证服务状态 ====="
echo "服务状态:"
systemctl status zabbix-agent | grep "Active:"
echo "端口监听:"
netstat -tunlp | grep 10050

echo "===== 测试客户端数据采集 ====="
# 需在Zabbix服务端执行以下命令测试:
echo "在服务端运行: zabbix_get -s 客户端IP -k 'system.hostname'"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# 赋权
sudo chmod +x zabbix_agent_install.sh
# 执行
sudo bash zabbix_agent_install.sh <客户端主机名> <管理端IP>
1
2
3
4

# 访问配置及验证

# 联通性检测

# 基础环境检查

# 验证Agent服务状态
systemctl status zabbix-agent
1
2
# 检查端口监听
netstat -tunlp | grep 10050
1
2
# 防火墙关闭状态
systemctl status firewalld
1
2
# SELinux状态
getenforce
1
2

# Agent配置排查

# 检查配置文件
cat /etc/zabbix/zabbix_agentd.conf
1
2

确认以下参数:

Server=192.168.102.229        # 允许连接的Zabbix Server IP
ServerActive=192.168.102.229  # 主动监控的Server IP
ListenPort=10050              # 监听端口
Hostname=实际主机名             # 需与Zabbix Web中配置一致
1
2
3
4

# 测试两端通信‌

  • 从Zabbix Server执行:

    telnet 192.168.102.231 10050
    
    1

    若不通,检查网络路由或安全组规则‌。

    zabbix_get -s 192.168.102.231 -p 10050 -k "system.hostname"
    
    1

    若返回主机名则表示成功‌。

    • -s:指定Zabbix代理或Zabbix服务器的IP地址

    • -p:指定Zabbix代理或Zabbix服务器的端口号

    • -k:指定要获取数据的键名

    • 安装zabbix_get

      # 查看当前yum提供的zabbix-get版本
      yum list zabbix-get* --showduplicates | sort
      # 安装zabbix-get
      sudo yum -y install zabbix-get
      
      1
      2
      3
      4
  • 在Agent本机测试:

    zabbix_agentd -t "system.hostname"
    
    1

    若返回数据正常,则问题可能出在Server与Agent的网络层‌。

# 查看报错日志

  • 查看Server日志‌

    tail -f /var/log/zabbix/zabbix_server.log
    
    1

    关注日志中的连接拒绝或权限错误‌。

  • 查看Agent日志‌

    tail -f /var/log/zabbix/zabbix_agentd.log
    
    1

    关注日志中的连接拒绝或权限错误‌。

# 其他常见问题场景

场景 解决方案
IP白名单未配置‌ 在Agent配置中补充Server=Zabbix_Server_IP‌。
Agent版本不兼容‌ 确保Server和Agent版本一致(如Zabbix 6.4需匹配6.x Agent)‌。

# Web初始安装

http://IP:PORT/zabbix

默认的登录账号和密码为:Admin/zabbix

①浏览器输入地址,进入配置页面

image-20250402111747449

②点击下一步检查zabbix配置,所有状态都要为ok,若有问题则需要去服务器侧检查配置

image-20250402111815475

③所有配置都正常则继续点击下一步使用数据库账户登录数据库

image-20250402111824128

④连接数据库后下一步配置Zabbix server信息

image-20250402111832180

⑤ 配置完成后检查配置项然后点击下一步保存安装

image-20250402111844743

⑥信息检查完成后点击结束安装完成

image-20250402111858702

⑦结束后登录验证,默认账户为:Admin 默认密码为:zabbix

image-20250402111911392

⑧登录完成后主页面如下

image-20250402111927871

⑨修改zabbix语言为中文,点击user settings然后选择语言为中文,点击update保存即可

image-20250402111939774

image-20250402111955972

# Web添加主机

注意:被添加的主机必须在配置文件中设置好监控的方式及服务端的IP

①配置->主机->创建主机,填充你主机的名称、IP、端口->添加完成

image-20250402112626991

image-20250402112659644

image-20250402112412259

注意:在没有添加监控项之前,监控方式(可用性)的灯是不会亮起来的。

②为主机添加监控项

image-20250402112902795

image-20250402112910814

image-20250402112928478

上次更新时间: 4/3/2025, 2:31:40 AM