CentOS搭建:Zabbix
目录
参考:
- Zabbix5部署并添加主机 (opens new window)
- zabbix介绍及部署(超级详细讲解) (opens new window)
- zabbix介绍及部署(超详细讲解) (opens new window)
- 不得不学的Zabbix监控系统,最细搭建详解 (opens new window)
- Centos7 安装zabbix agent2并测试与zabbix server的连通性 (opens new window)
- 在Zabbix界面添加agent被监控端三种方式(手动添加+自动发现+自动注册) (opens new window)
# CentOS搭建:Zabbix
# 概要说明
# 常用命令
# 环境依赖
# 版本依赖
软件/系统 | 版本 | 架构 | 包名 | 安装方式 | 备注 |
---|---|---|---|---|---|
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
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
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
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
2
若没有启用则需要安装
#安装scl
yum install -y centos-release-scl
2
验证安装结果
# 检查包是否安装成功
yum list installed | grep centos-release-scl
2
将源替换为阿里云源可参考:CentOS配置:自定义源【yum】中的SCLo-scl镜像部分。
# 环境检查
关闭防火墙
# 查看防火墙运行状态
systemctl status firewalld
# 永久关闭并现在立即关闭防火墙
systemctl disable --now firewalld
2
3
4
关闭SELinux(临时),参考:CentOS程序:SELinux
# 临时关闭selinux
sudo setenforce 0
# 验证模式应为 Permissive(记录违规但不阻止)
getenforce
2
3
4
更改主机名称(可选),参考:CentOS配置:主机名【hostname】
# 更改主机名
sudo hostnamectl set-hostname zbx-server
2
# 进行安装
安装服务端、客户端、前端
# 安装zabbix服务端和客户端
sudo yum install -y zabbix-server-mysql zabbix-agent
2
# 安装 Zabbix前端软件包(web+nginx)或(web+apache(zabbix-apache-conf-scl))
sudo yum install -y zabbix-web-mysql-scl zabbix-nginx-conf-scl
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;
2
3
4
5
6
7
8
导入初始数据
# 查询zabbix数据库脚本
rpm -ql zabbix-server-mysql
2
# 解压缩,并执行脚本
sudo gzip -d /usr/share/doc/zabbix-server-mysql-5.0.46/create.sql.gz
2
配置数据库
# 配置数据库
sudo vi /etc/zabbix/zabbix_server.conf
2
DBHost=192.168.1.100 # 远程数据库IP
DBPort=3306 # 数据库端口
DBName=zabbix
DBPassword=zabbix@123456
2
3
4
配置web服务器(nginx版)
# 编辑rh-nginx配置
sudo vi /etc/opt/rh/rh-nginx116/nginx/nginx.conf
2
- 注释掉
nginx.conf
中server
块,禁用默认服务。
# 编辑rh-nginx子配置:zabbix.conf
sudo vi /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf
2
- 放开
listen
和server_name
的注释并设置值,启用zabbix
服务。
配置PHP进程管理
# 编辑zabbix进程池配置
sudo vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
2
# 添加nginx用户到listen.acl_users
listen.acl_users = apache,nginx
# 设置正确的时区
php_value[date.timezone] = Asia/Shanghai
2
3
4
listen.acl_users = apache,nginx
:定义了允许访问的用户列表,apache
和nginx
用户被允许访问。
安装字体(解决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
2
3
4
# 启停操作
# 查看zabbix服务运行状态
sudo systemctl status zabbix-server
# 启动zabbix服务
sudo systemctl start zabbix-server
# 停止zabbix服务
sudo systemctl stop zabbix-server
2
3
4
5
6
# 查看zabbix客户端运行状态
sudo systemctl status zabbix-agent
# 启动zabbix客户端
sudo systemctl start zabbix-agent
# 停止zabbix客户端
sudo systemctl stop zabbix-agent
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
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
2
3
4
5
6
# 安装搭建:客户端
# 包下载
同上,配置zabbix下载源
# 环境检查
同上,防火墙、SELinux、主机名
# 进行安装
# 安装zabbix
sudo yum -y install zabbix-agent
2
# 修改配置文件
sudo vi /etc/zabbix/zabbix_agentd.conf
2
# 指定监控服务器的IP地址(被动模式,表示哪些主机可以到本机取数据)
Server=192.168.102.229
# (可选)指定监控服务器的IP地址(主动模式,客户端主动发送数据给服务端)
ServerActive=192.168.102.229
# 指定客户端主机的名称(在web界面上显示的名字)
Hostname=g1server2
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
2
3
# 一键安装脚本
环境检查
# 编辑
sudo vi zabbix_agent_env_check.sh
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"
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>
2
3
4
自动化安装
# 编辑
sudo vi zabbix_agent_install.sh
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'"
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>
2
3
4
# 访问配置及验证
# 联通性检测
# 基础环境检查
# 验证Agent服务状态
systemctl status zabbix-agent
2
# 检查端口监听
netstat -tunlp | grep 10050
2
# 防火墙关闭状态
systemctl status firewalld
2
# SELinux状态
getenforce
2
# Agent配置排查
# 检查配置文件
cat /etc/zabbix/zabbix_agentd.conf
2
确认以下参数:
Server=192.168.102.229 # 允许连接的Zabbix Server IP
ServerActive=192.168.102.229 # 主动监控的Server IP
ListenPort=10050 # 监听端口
Hostname=实际主机名 # 需与Zabbix Web中配置一致
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
①浏览器输入地址,进入配置页面
②点击下一步检查zabbix配置,所有状态都要为ok,若有问题则需要去服务器侧检查配置
③所有配置都正常则继续点击下一步使用数据库账户登录数据库
④连接数据库后下一步配置Zabbix server信息
⑤ 配置完成后检查配置项然后点击下一步保存安装
⑥信息检查完成后点击结束安装完成
⑦结束后登录验证,默认账户为:Admin 默认密码为:zabbix
⑧登录完成后主页面如下
⑨修改zabbix语言为中文,点击user settings然后选择语言为中文,点击update保存即可
# Web添加主机
注意:被添加的主机必须在配置文件中设置好监控的方式及服务端的IP
①配置->主机->创建主机,填充你主机的名称、IP、端口->添加完成
注意:在没有添加监控项之前,监控方式(可用性)的灯是不会亮起来的。
②为主机添加监控项