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、端口->添加完成
注意:在没有添加监控项之前,监控方式(可用性)的灯是不会亮起来的。
②为主机添加监控项