当前位置: 首页 > news >正文

部署 Zabbix 企业级分布式监控

文档目录

  1. 监控系统基础:从概念到核心价值
  2. 主流开源监控产品对比:为什么选择 Zabbix?
  3. Zabbix 系统深度解析:特性、架构与核心组件
  4. Zabbix 部署全流程:环境准备与基础配置
  5. Zabbix Server 部署实战:从安装到 Web 初始化
  6. Zabbix Proxy 部署:分布式监控的关键节点
  7. Zabbix Agent 部署:被监控节点接入方案
  8. Zabbix 可视化与优化:字体显示及监控效果提升
  9. 常见问题与解决方案:部署中的避坑指南

1. 监控系统基础:从概念到核心价值

在 IT 运维领域,监控是保障系统稳定运行的 “神经中枢”。按行业经验,监控工作在运维总工作量中占比可达 30%,其核心价值在于 “提前发现问题、快速定位故障、支撑业务决策”。无论是中小公司的服务器集群,还是大型企业的分布式架构,没有监控的 IT 系统就像 “盲人走钢丝”—— 故障发生时毫无感知,直到业务中断才被动应对。

1.1 监控的五大层次:从硬件到用户体验

监控并非单一维度的工作,而是覆盖 IT 系统全链路的体系化工程。按逻辑层次可分为 5 层,每层对应不同的监控目标和指标:

  • 基础设施监控:最底层的 “硬件防线”,由运维人员直接负责。监控对象包括网络设备(交换机、路由器)、物理服务器等,核心指标有网络流量、丢包率、错包率、设备端口连接数等。例如,路由器的端口流量突然飙升可能预示 DDoS 攻击,需立即告警。

  • 系统层监控:覆盖操作系统及虚拟化层,是 “系统健康度” 的直接反映。监控对象包括物理机、虚拟机(如 KVM、VMware),核心指标有 CPU 使用率(单核心及整体负载)、内存占用率(实际使用与缓存区分)、磁盘 IO(读写速率、IOPS)、网络带宽(出入站流量)等。例如,CPU 持续 100% 可能导致服务响应延迟,内存溢出会直接引发进程崩溃。

  • 应用层监控:贴近业务的 “服务性能监控”,需结合应用特性定制。监控对象包括 Web 服务、数据库、缓存、API 接口等,核心指标有:

    • Web 服务:URL 访问延迟、调用成功率、错误码(如 4xx/5xx 占比);
    • 数据库:慢 SQL 数量、连接池使用率、事务提交成功率;
    • 缓存(如 Redis):命中率(低于 80% 可能需优化)、内存碎片率;
    • 服务接口:响应时间(P95/P99 分位值)、并发调用数。
  • 业务监控:直接关联企业营收的 “核心数据看板”,面向运营和管理层。以电商平台为例,需监控用户登录量、注册转化率、下单数、支付成功率、订单金额等。这些数据不仅用于故障告警(如支付成功率突降为 0),还能支撑战略决策(如某地区下单量增长可考虑新增节点)。

  • 端用户体验监控:最贴近用户的 “最后一公里监控”。监控对象包括用户使用的终端(PC、APP、H5)、网络环境(运营商、地区),核心指标有页面加载时间、客户端错误率、不同地区 / 运营商的访问延迟等。例如,某地区用户打开 APP 耗时超过 5 秒,可能是 CDN 节点故障或运营商链路问题,需优先修复。

1.2 监控系统的核心原理

一个完整的监控系统需实现 “数据采集 - 存储 - 分析 - 告警 - 展示” 全链路,其核心原理可拆解为 3 部分:

1.2.1 模块组成:两大核心模块支撑全流程
  • 数据采集部分:通过 Agent(客户端)或协议对接(如 SNMP)从被监控对象获取数据,是监控的 “数据源入口”。
  • 数据处理部分:包括数据存储(如 MySQL、InfluxDB)、分析(指标计算、阈值判断)、告警(邮件、短信、企业微信)、展示(可视化图表、仪表盘),是监控的 “大脑与输出端”。
1.2.2 采集协议:两类协议覆盖不同场景
  • 专用客户端采集:通过部署 Agent(如 Zabbix Agent)实现数据采集,优势是支持深度定制(如自定义脚本采集),适合需高频、高精度监控的场景(如系统层指标)。
  • 公用协议采集:无需部署 Agent,通过通用协议对接,适合网络设备、第三方硬件等场景。常见协议包括:
    • SNMP(简单网络管理协议):主流网络设备(如华为、Cisco 交换机)默认支持,可采集设备端口、CPU 等基础指标;
    • IPMI(智能平台管理接口):用于监控物理服务器的硬件状态(如硬盘健康、风扇转速);
    • SSH/Telnet:通过远程登录执行命令采集数据(如在无 Agent 的服务器上执行df -h获取磁盘使用率)。
1.2.3 采集模式:主动与被动的选择
  • 被动模式:Server 主动向 Agent 请求数据(如 Zabbix Server 定期轮询 Agent)。优势是部署简单,劣势是 Server 压力随被监控节点增加而增大,适合节点数少于 100 的小规模场景。
  • 主动模式:Agent 主动向 Server 上报数据(如 Agent 按配置间隔推送指标)。优势是 Server 压力小,适合节点数超过 500 的大规模场景(如分布式集群)。
1.2.4 代理架构:大规模监控的 “减压方案”

当被监控节点超过 1000 个,或跨地域、跨网络(如多机房)时,需引入 Proxy(代理)架构(C/S/P 架构:Client/Proxy/Server)。Proxy 就近采集本地 Agent 数据,再汇总到 Server,可大幅减少 Server 的网络开销和计算压力。例如,跨地域部署时,北京机房的 Proxy 采集本地服务器数据,再统一发送到上海的 Zabbix Server,避免跨地域网络延迟影响监控精度。

1.3 监控的核心价值:从 “被动救火” 到 “主动预防”

  • 故障快速定位:通过全链路监控数据,可快速定位故障点(如 “用户支付失败”→“支付 API 超时”→“数据库连接池满”),缩短故障排查时间(从小时级降至分钟级)。
  • 性能瓶颈预警:通过历史数据趋势分析,提前发现潜在瓶颈(如 “内存使用量每周增长 10%,预计 30 天后溢出”),避免业务中断。
  • 资源合理规划:基于监控数据的容量规划(如 “某服务 CPU 峰值 80%,需新增服务器扩容”),避免资源浪费或不足。
  • 业务决策支撑:通过业务监控数据(如 “某地区注册量增长 200%”),辅助管理层制定扩张或优化策略。

2. 主流开源监控产品对比:为什么选择 Zabbix?

开源监控工具种类繁多,不同产品有各自的优势场景。以下是 8 款主流开源监控产品的对比,帮助你快速判断 “哪种工具适合你的需求”:

产品名称核心优势适用场景劣势
Zabbix分布式架构、全链路监控、模板丰富、Web 管理企业级分布式环境、混合云监控初期配置较复杂
Prometheus+Grafana时序数据处理强、告警灵活、适合容器监控Kubernetes 集群、微服务架构需手动搭建组件(无现成一体化方案)
Cacti网络流量绘图专业、用户权限管理细致中小网络环境(如校园网、企业内网)功能较单一(侧重绘图,告警能力弱)
Nagios轻量、插件丰富、适合简单监控中小服务器集群、基础服务监控无内置绘图,需搭配第三方工具(如 PNP4Nagios)
Checkmk部署快、自动化程度高快速搭建监控(如临时项目、中小团队)企业版功能收费
OpenNMS支持 Java 生态、网络拓扑自动发现Java 应用、复杂网络环境资源占用较高
Netdata实时性强(秒级采集)、指标覆盖广实时性能排查(如突发性能问题)历史数据存储能力弱
LibreNMS网络设备自动发现、多厂商支持多品牌网络设备监控(如 Cisco + 华为混合环境)服务器监控功能较弱

Zabbix 的核心优势:为什么成为企业级首选?

在企业级分布式监控场景中,Zabbix 的优势尤为突出:

  1. 全链路监控能力:从基础设施到端用户体验,覆盖监控 5 大层次,无需搭配其他工具即可实现 “一站式监控”。
  2. 分布式架构支持:通过 Proxy 实现跨地域、大规模监控(支持上万节点),适合企业级复杂环境。
  3. 灵活的告警机制:支持告警升级(如 “10 分钟未处理自动通知上级”)、多渠道推送(邮件、短信、API 对接企业微信),并可通过 “宏变量” 自定义告警内容(如 “服务器 {HOST.NAME} 的 CPU 使用率达到 {ITEM.VALUE}%”)。
  4. 模板化配置:内置上千个监控模板(如 Linux 服务器、MySQL 数据库),支持模板继承(如 “通用服务器模板 + Web 服务子模板”),大幅减少重复配置工作。
  5. 自动发现功能:可自动发现网络设备、服务器、文件系统等,新增节点无需手动配置即可接入监控。
  6. 开源免费:基于 GPLv2 协议,源码开放,无 License 费用,适合企业降低成本。

3. Zabbix 系统深度解析:特性、架构与核心组件

Zabbix 是一款 “企业级分布式开源监控平台”,由 Alexei Vladishev 创建,目前由 Zabbix SIA 主导开发。它支持 Linux、Windows、AIX 等多系统部署,可监控从服务器、网络设备到 Web 应用、数据库的所有 IT 资源,是企业级监控的 “全能选手”。

3.1 Zabbix 的 14 大核心功能特性

Zabbix 的功能覆盖监控全流程,以下是最核心的 14 项特性:

  1. 全面的数据收集

    • 支持可用性(如服务是否存活)和性能(如响应时间)检测;
    • 兼容多种协议(SNMP、IPMI、JMX)和自定义检测(如脚本采集);
    • 可自定义采集间隔(如 10 秒一次的高频采集或 1 小时一次的低频采集)。
  2. 灵活的阈值定义:通过 “触发器(Trigger)” 设置阈值(如 “CPU 使用率 > 90% 持续 5 分钟”),触发条件存储在数据库中,支持复杂逻辑(如 “CPU>90% 且内存 > 80%”)。

  3. 高级告警配置

    • 告警升级:可设置 “首次通知运维,10 分钟未处理通知经理”;
    • 宏变量:告警信息中插入动态变量(如 {HOST.NAME}、{ITEM.VALUE});
    • 自动动作:触发告警时执行远程命令(如 “内存溢出时自动重启服务”)。
  4. 实时绘图与可视化

    • 内置绘图工具,支持实时展示监控指标(如 CPU 趋势图);
    • 可自定义仪表盘(Dashboard),集中展示核心指标(如业务下单量 + 系统 CPU);
    • 生成网络拓扑图(Network Maps),直观展示设备连接关系及状态。
  5. 历史数据管理

    • 数据存储在关系型数据库(如 MySQL)或时序数据库(如 TimescaleDB);
    • 支持配置数据保留周期(如 “核心指标保留 1 年,非核心保留 30 天”);
    • 内置数据清理机制,自动删除过期数据,避免磁盘占满。
  6. 模板与自动化

    • 模板可包含监控项、触发器、图形等,支持 “一次配置,批量应用”;
    • 模板支持继承(如 “通用 Linux 模板” 作为父模板,“Web 服务器模板” 继承后新增 Web 指标);
    • 支持自动发现(如新增服务器时自动关联模板)。
  7. 网络自动发现

    • 自动扫描网络设备(通过 SNMP、ARP 等协议);
    • Agent 自动注册(新增节点安装 Agent 后自动上报到 Server);
    • 自动发现文件系统、网卡(如新增磁盘时自动添加监控)。
  8. Web 管理界面:基于 PHP 开发,支持多语言(含中文),可从任何设备访问,方便远程管理。

  9. API 接口:提供 RESTful API,支持第三方系统对接(如通过 Python 脚本批量添加主机)。

  10. 权限控制:支持多角色管理(如 “运维组” 可修改配置,“开发组” 仅查看数据),细粒度控制资源访问权限。

  11. 跨平台 Agent:支持 Linux、Windows、AIX 等系统,轻量(占用内存 < 10MB)、高性能(C 语言开发)。

  12. 代理架构支持:通过 Proxy 实现分布式监控,减轻 Server 压力,支持跨网络部署。

  13. 低资源消耗:Server 和 Agent 均为二进制守护进程(C 语言开发),内存占用低(单 Server 可支撑数千节点)。

  14. 开源免费:源码开放,可二次开发,无 License 费用,适合企业长期使用。

3.2 Zabbix 架构:核心组件与协作流程

Zabbix 采用模块化架构,核心组件包括 Server、Proxy、Agent、Web 前端,各组件分工明确,协同完成监控全流程。

核心组件及作用
  • Zabbix Server:监控系统的 “核心大脑”,负责接收 Agent/Proxy 发送的数据、存储数据、分析指标、触发告警、管理配置等。所有监控逻辑的最终处理都由 Server 完成。
  • Zabbix Proxy:“分布式代理节点”,用于分担 Server 压力。Proxy 采集本地 Agent 的数据,汇总后发送给 Server(支持主动 / 被动模式),适合跨地域、大规模监控场景。
  • Zabbix Agent:部署在被监控节点的 “数据采集器”,负责采集本地指标(如 CPU、内存),并按配置将数据发送给 Server 或 Proxy(主动模式),或等待 Server/Proxy 请求(被动模式)。
  • Zabbix Web 前端:基于 Web 的 “管理与展示界面”,通过 PHP 与 Server 交互,提供配置管理(如添加主机)、数据查看(如监控图表)、告警管理等功能。
  • 数据库:存储所有配置数据(如主机信息、模板)和监控历史数据(如 CPU 指标),支持 MySQL、PostgreSQL、Oracle 等。
数据流转流程

以 “Agent→Proxy→Server” 的分布式架构为例,数据流转步骤如下:

  1. Agent 采集本地数据(如每 10 秒采集一次 CPU 使用率);
  2. Agent 按配置将数据主动发送给 Proxy(主动模式);
  3. Proxy 临时存储数据,并定期汇总发送给 Server;
  4. Server 将数据写入数据库,并通过触发器判断是否触发告警(如 CPU>90%);
  5. 若触发告警,Server 按配置发送通知(如邮件给运维);
  6. 用户通过 Web 前端查看监控数据、告警信息及图表。

4. Zabbix 部署全流程:环境准备与基础配置

部署 Zabbix 前需做好环境准备,包括硬件配置、操作系统选择、基础环境优化等。以下基于文档中的 “openEuler 24.03” 环境(兼容 CentOS/RHEL),提供标准化部署流程。

4.1 资源清单与硬件要求

4.1.1 部署节点规划
节点角色操作系统配置(最低要求)主机名IP 地址备注
Zabbix ServeropenEuler 24.032C4G,50GB 磁盘zabbix192.168.207.137需安装数据库(MySQL)
Zabbix ProxyopenEuler 24.032C2G,20GB 磁盘proxy192.168.207.138需连接 Server 的数据库
被监控节点 1openEuler 24.031C1G,10GB 磁盘server01192.168.207.139部署 Zabbix Agent
被监控节点 2openEuler 24.031C1G,10GB 磁盘server02192.168.207.140部署 Zabbix Agent
4.1.2 硬件配置说明
  • Zabbix Server:作为核心节点,配置需根据监控规模调整:
    • 小规模(<100 节点):2C4G,50GB 磁盘(存储 1 个月数据);
    • 中规模(100-1000 节点):4C8G,100GB 磁盘;
    • 大规模(>1000 节点):8C16G 以上,搭配 SSD 提升数据库性能。
  • Zabbix Proxy:按监控节点数量分配,每 1000 节点建议 2C4G。
  • Agent 节点:轻量部署,1C1G 足够(Agent 本身占用资源极低)。

4.2 基础环境配置

所有节点(Server、Proxy、Agent)需先完成以下基础配置,避免部署中出现 “防火墙拦截”“时间不同步” 等问题。

4.2.1 关闭防火墙(所有节点)

Zabbix 各组件通信依赖特定端口(如 Server 端口 10051,Agent 端口 10050),临时关闭防火墙可避免端口拦截:

bash

# 停止防火墙服务
systemctl stop firewalld
# 禁止开机自启
systemctl disable firewalld

生产环境建议保留防火墙,仅开放必要端口(如 10050、10051、8080),命令参考:firewall-cmd --add-port=10050/tcp --permanent(开放 Agent 端口)。

4.2.2 关闭 SELinux(所有节点)

SELinux 可能拦截 Zabbix 的文件访问、端口通信,临时关闭可减少权限问题:

bash

# 临时关闭(立即生效)
setenforce 0
# 永久关闭(需重启,编辑/etc/selinux/config,设置SELINUX=disabled)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
4.2.3 时间同步(所有节点)

监控数据依赖时间戳,节点时间不同步会导致历史数据混乱(如 “指标顺序错误”)。需统一同步到 “Asia/Shanghai” 时区:

bash

# 设置时区为上海
timedatectl set-timezone Asia/Shanghai# 安装chrony(时间同步工具)
dnf -y install chrony# 启动并设置开机自启
systemctl start chronyd
systemctl enable chronyd# 验证同步状态(出现*号表示同步成功)
chronyc sources -v
4.2.4 修改主机名(所有节点)

主机名用于标识节点角色,便于后续管理(需与后续 Zabbix 配置中的 “Hostname” 对应):

bash

# Zabbix Server节点
hostnamectl set-hostname zabbix# Zabbix Proxy节点
hostnamectl set-hostname proxy# 被监控节点1
hostnamectl set-hostname server01# 被监控节点2
hostnamectl set-hostname server02# 查看修改结果
hostname
4.2.5 配置本地解析(可选)

为避免依赖 DNS,可在/etc/hosts中添加节点 IP 与主机名的映射:

bash

cat >> /etc/hosts << EOF
192.168.207.137 zabbix
192.168.207.138 proxy
192.168.207.139 server01
192.168.207.140 server02
EOF

5. Zabbix Server 部署实战:从安装到 Web 初始化

Zabbix Server 是监控系统的核心,需部署数据库、Server 服务、Web 前端等组件。以下按 “添加源→安装软件→配置数据库→启动服务→Web 配置” 的流程逐步操作。

5.1 添加 Zabbix 官方源

Zabbix 官方提供了 rpm 包源,通过源安装可自动解决依赖关系(推荐使用 6.4 版本,稳定性与功能平衡):

bash

# 在Zabbix Server节点执行
rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-latest-6.4.el9.noarch.rpm# 清理缓存并生成新缓存
dnf clean all
dnf makecache

5.2 安装核心软件包

Zabbix Server 需安装 Server 服务、Web 组件、数据库、Agent(可监控自身)等,具体包说明如下:

软件包名称作用
zabbix-server-mysqlZabbix Server 核心服务(MySQL 支持)
zabbix-web-mysqlZabbix Web 前端(MySQL 支持)
zabbix-nginx-confNginx 配置(Web 前端依赖)
zabbix-sql-scripts数据库初始化脚本(创建表结构)
zabbix-selinux-policySELinux 政策(避免权限问题)
zabbix-agentZabbix Agent(监控 Server 自身)
mysql-server-8.0.41 mysqlMySQL 数据库(存储配置和监控数据)
net-snmp-libsSNMP 支持(监控网络设备需用到)
执行安装命令:

bash

# 安装Zabbix相关包
dnf -y install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent# 安装MySQL(需8.0.30及以上版本)
dnf -y install mysql-server-8.0.41 mysql# 安装SNMP依赖(解决部分监控项依赖问题)
dnf -y install https://www.rpmfind.net/linux/centos-stream/9-stream/AppStream/x86_64/os/Packages/net-snmp-libs-5.9.1-17.el9.x86_64.rpm

5.3 数据库配置:初始化与权限设置

Zabbix 的所有数据(配置、监控指标)需存储在数据库中,需先初始化数据库并配置权限。

5.3.1 启动 MySQL 并设置开机自启

bash

# 启动MySQL
systemctl start mysqld# 设置开机自启
systemctl enable mysqld# 查看状态(确保Active: active (running))
systemctl status mysqld
5.3.2 初始化 MySQL(安全配置)

默认 MySQL 的 root 用户无密码,需设置密码并优化安全配置:

bash

# 登录MySQL(首次登录无密码,直接回车)
mysql -uroot# 执行以下SQL语句(复制粘贴到MySQL终端)
-- 设置root密码(替换为你的密码,如123456)
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;-- 创建Zabbix Server数据库(字符集utf8mb4支持中文)
create database zabbix character set utf8mb4 collate utf8mb4_bin;-- 创建Zabbix用户(本地访问,密码zabbix)
create user zabbix@localhost identified by 'zabbix';-- 授予Zabbix用户数据库权限
grant all privileges on zabbix.* to zabbix@localhost;-- 创建Proxy数据库(后续Proxy使用)
create database zabbix_proxy character set utf8mb4 collate utf8mb4_bin;-- 允许Zabbix用户远程访问(Proxy需连接Server的数据库)
create user zabbix@'%' identified by 'zabbix';
grant all privileges on zabbix_proxy.* to zabbix@localhost;
grant all privileges on zabbix_proxy.* to zabbix@'%';-- 允许创建存储函数(Zabbix初始化脚本需要)
set global log_bin_trust_function_creators = 1;-- 退出MySQL
quit;
5.3.3 导入 Zabbix 初始化脚本

Zabbix 提供了数据库表结构脚本,需导入到zabbix数据库(约 5 分钟,耐心等待):

bash

# 导入脚本(需输入Zabbix用户密码:zabbix)
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix# 导入完成后,关闭存储函数创建权限(安全加固)
mysql -uroot -p123456 -e "set global log_bin_trust_function_creators = 0;"

若提示 “zcat: 无此文件或目录”,检查zabbix-sql-scripts包是否安装(rpm -qa | grep zabbix-sql-scripts),未安装需重新安装。

5.4 配置 Zabbix Server

Zabbix Server 需配置数据库连接信息(密码、地址等),修改zabbix_server.conf文件:

bash

# 编辑配置文件
vim /etc/zabbix/zabbix_server.conf# 找到以下参数并修改(取消注释并填写)
DBPassword=zabbix  # 数据库密码(与创建用户时一致)
DBName=zabbix      # 数据库名(默认即可)
DBUser=zabbix      # 数据库用户(默认即可)

5.5 配置 Web 前端(Nginx)

Zabbix Web 前端通过 Nginx 提供访问,需配置端口(默认 8080,避免与其他服务冲突):

bash

# 编辑Nginx配置
vim /etc/nginx/conf.d/zabbix.conf# 找到以下参数,取消注释并设置端口
listen 8080;  # Web访问端口
server_name _;  # 服务器名(默认即可)

5.6 启动服务并验证

启动 Zabbix Server、Agent、Nginx、PHP-FPM(Web 依赖),并设置开机自启:

bash

# 启动服务
systemctl restart zabbix-server zabbix-agent nginx php-fpm# 设置开机自启
systemctl enable zabbix-server zabbix-agent nginx php-fpm# 查看状态(确保均为active)
systemctl status zabbix-server zabbix-agent nginx php-fpm

5.7 Web 前端初始化配置

通过浏览器访问 Web 前端,完成初始化配置(语言设置、数据库连接等)。

5.7.1 访问 Web 界面

在浏览器输入:http://192.168.207.137:8080/(Zabbix Server 的 IP + 端口),首次访问将进入配置向导。

5.7.2 步骤 1:选择语言

点击页面右下角 “Language”,选择 “Chinese (zh_CN)”,点击 “Next step”。

5.7.3 步骤 2:检查环境

系统会自动检查依赖(如 PHP 版本、目录权限),所有项显示 “OK” 后点击 “Next step”。若有 “Not OK”,需按提示修复(如 PHP 扩展缺失需安装对应包)。

5.7.4 步骤 3:配置数据库连接

填写 MySQL 连接信息(与之前配置一致):

  • Database type:MySQL
  • Server:localhost(数据库与 Server 同机)
  • Port:3306(MySQL 默认端口)
  • Database name:zabbix
  • User:zabbix
  • Password:zabbix(之前设置的密码)

填写完成后点击 “Next step”。

5.7.5 步骤 4:设置 Server 名称

默认名称为 “Zabbix Server”,可自定义(如 “生产环境 Zabbix”),点击 “Next step”。

5.7.6 步骤 5:安装前汇总

确认配置信息无误后,点击 “Next step”。

5.7.7 步骤 6:完成安装

显示 “Zabbix 前端已经配置好了” 表示成功,点击 “Finish”。

5.7.8 登录 Zabbix

使用默认账号密码登录:

  • 用户名:Admin
  • 密码:zabbix

首次登录建议修改密码(点击右上角 “Admin”→“Profile”→“Password”)。

6. Zabbix Proxy 部署:分布式监控的关键节点

当监控节点超过 500 个,或跨地域部署时,需通过 Proxy 分担 Server 压力。Proxy 部署流程包括 “添加源→安装包→配置数据库→启动服务→Web 注册”。

6.1 环境准备与源配置

Proxy 节点需与 Server 保持一致的源(确保版本兼容):

bash

# 在Proxy节点执行(192.168.207.138)
rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-latest-6.4.el9.noarch.rpmdnf clean all
dnf makecache

6.2 安装 Proxy 相关包

Proxy 需安装 Proxy 服务、SQL 脚本、SNMP 依赖等:

bash

# 安装Proxy核心包(MySQL支持)
dnf -y install zabbix-proxy-mysql zabbix-sql-scripts zabbix-selinux-policy mysql# 安装SNMP依赖
dnf -y install https://www.rpmfind.net/linux/centos-stream/9-stream/AppStream/x86_64/os/Packages/net-snmp-libs-5.9.1-17.el9.x86_64.rpm

6.3 初始化 Proxy 数据库

Proxy 需使用之前在 Server 的 MySQL 中创建的zabbix_proxy数据库,需导入 Proxy 专用初始化脚本。

6.3.1 导入 Proxy 表结构

bash

# 在Proxy节点执行(需连接Server的数据库,输入密码zabbix)
mysql --default-character-set=utf8mb4 -uzabbix -p zabbix_proxy -h 192.168.207.137 < /usr/share/zabbix-sql-scripts/mysql/proxy.sql

若提示 “mysql: 未找到命令”,需安装 MySQL 客户端:dnf -y install mysql;若提示 “proxy.sql 不存在”,检查zabbix-sql-scripts包是否安装。

6.4 配置 Zabbix Proxy

修改zabbix_proxy.conf,设置 Server 地址、数据库连接等关键参数:

bash

vim /etc/zabbix/zabbix_proxy.conf# 修改以下参数(按实际情况填写)
Server=192.168.207.137  # Zabbix Server的IP
Hostname=Zabbix proxy    # Proxy名称(Web注册时需一致)
DBHost=192.168.207.137   # 数据库IP(Server的IP)
DBName=zabbix_proxy      # 数据库名
DBUser=zabbix            # 数据库用户
DBPassword=zabbix        # 数据库密码
ConfigFrequency=60       # 从Server同步配置的间隔(秒)
DataSenderFrequency=5    # 向Server发送数据的间隔(秒)

6.5 启动 Proxy 服务

bash

# 启动服务
systemctl start zabbix-proxy# 设置开机自启
systemctl enable zabbix-proxy# 查看状态(确保Active: active (running))
systemctl status zabbix-proxy

6.6 在 Web 前端添加 Proxy

Proxy 需在 Server 的 Web 界面注册,步骤如下:

  1. 登录 Zabbix Web(Admin 账号);
  2. 点击左侧菜单 “管理”→“Proxies”;
  3. 点击右上角 “创建代理”;
  4. 填写配置:
    • 代理名称:Zabbix proxy(需与zabbix_proxy.conf中的 Hostname 一致);
    • 代理类型:主动式(Proxy 主动向 Server 同步配置);
    • 其他默认,点击 “添加”。

添加后约 1 分钟,Proxy 状态会显示 “在线”(绿色),表示注册成功。

7. Zabbix Agent 部署:被监控节点接入方案

被监控节点需部署 Agent,用于采集数据并发送给 Server 或 Proxy。以下以server01节点为例,提供部署流程。

7.1 添加源并安装 Agent

bash

# 在被监控节点(192.168.207.139)执行
rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-latest-6.4.el9.noarch.rpm
dnf clean all
dnf -y install zabbix-agent

7.2 配置 Zabbix Agent

修改zabbix_agentd.conf,设置数据发送目标(Server 或 Proxy):

bash

vim /etc/zabbix/zabbix_agentd.conf# 修改以下参数
Server=192.168.207.138  # 若通过Proxy采集,填写Proxy的IP;直接连Server则填Server的IP
ServerActive=192.168.207.138  # 与Server一致(主动发送数据的目标)
Hostname=server01  # 主机名(Web添加主机时需一致)

7.3 启动 Agent 服务

bash

# 启动服务
systemctl start zabbix-agent# 设置开机自启
systemctl enable zabbix-agent# 查看状态
systemctl status zabbix-agent

7.4 在 Web 前端添加被监控节点

以 “通过 Proxy 采集 server01” 为例,步骤如下:

  1. 登录 Zabbix Web,点击左侧 “数据采集”→“主机”;
  2. 点击右上角 “创建主机”;
  3. 填写配置:
    • 主机名称:server01(需与 Agent 配置的 Hostname 一致);
    • 主机群组:点击 “选择”→勾选 “Linux servers”→“选择”;
    • 代理:选择之前创建的 “Zabbix proxy”;
    • 接口:点击 “添加”→选择 “Agent”→IP 地址填写192.168.207.139→端口10050
  4. 模板:点击 “模板”→“选择”→搜索 “Linux by Zabbix agent”→勾选→“选择”;
  5. 点击 “添加”。

添加后约 1 分钟,主机状态会显示 “已启用”,监控项开始采集数据(可在 “最新数据” 中查看)。

8. Zabbix 可视化与优化:字体显示及监控效果提升

默认 Zabbix 的图表可能显示 “方块”(缺少中文字体),需替换字体;同时可通过自定义仪表盘提升监控体验。

8.1 解决中文显示乱码问题

步骤 1:查找字体配置文件

bash

# 在Zabbix Server节点执行
find / -name defines.inc.php
# 结果通常为:/usr/share/zabbix/include/defines.inc.php
步骤 2:确认字体文件名称

bash

grep "ZBX_GRAPH_FONT_NAME" /usr/share/zabbix/include/defines.inc.php
# 输出:define('ZBX_GRAPH_FONT_NAME', 'graphfont');(默认字体名)
步骤 3:替换字体
  1. 上传中文字体(如 “微软雅黑 msyh.ttc”)到/usr/share/zabbix/assets/fonts/
  2. 创建软链接替换默认字体:

bash

cd /usr/share/zabbix/assets/fonts
ln -snf msyh.ttc graphfont.ttf  # 软链接指向中文字体

  1. 刷新 Web 页面,图表中文将正常显示。

8.2 自定义仪表盘(Dashboard)

仪表盘可集中展示核心指标,步骤如下:

  1. 登录 Web,点击 “仪表盘”→“创建仪表盘”;
  2. 填写名称(如 “生产核心监控”),点击 “添加”;
  3. 点击 “添加小部件”,选择需要的组件:
    • 图形:选择监控项的趋势图(如 “CPU 使用率”);
    • 状态指示:显示主机 / 服务状态(如 “数据库是否在线”);
    • 数据聚合:展示业务指标(如 “今日下单总量”);
  4. 调整布局后点击 “保存”。

9. 常见问题与解决方案:部署中的避坑指南

9.1 数据库相关问题

  • 问题:导入 server.sql 时提示 “权限不足”?

    • 解决:检查zabbix用户对zabbix数据库的权限:mysql -uroot -p -e "show grants for zabbix@localhost;",确保有ALL PRIVILEGES
  • 问题:Proxy 连接数据库提示 “Access denied”?

    • 解决:确认zabbix用户允许远程访问:create user zabbix@'%' identified by 'zabbix';,并授予权限。

9.2 服务启动失败

  • 问题:zabbix-server 启动失败,日志提示 “Cannot connect to MySQL”?

    • 解决:检查zabbix_server.conf的 DB 参数是否正确,MySQL 是否启动,防火墙是否开放 3306 端口。
  • 问题:zabbix-proxy 状态为 “未在线”?

    • 解决:查看 Proxy 日志/var/log/zabbix/zabbix_proxy.log,常见原因:
      • Server IP 配置错误(Server参数);
      • 数据库连接失败(DBHost/DBPassword错误);
      • 与 Server 的 10051 端口不通(需开放端口)。

9.3 监控数据采集问题

  • 问题:Agent 添加后无数据,提示 “不支持的项目键值”?

    • 解决:检查模板是否匹配(如 “Linux by Zabbix agent” 需 Agent 正常运行),Agent 日志是否有 “permission denied”(需调整目录权限)。
  • 问题:Proxy 采集的数据未显示在 Server?

    • 解决:确认 Proxy 与 Server 的Hostname一致,DataSenderFrequency参数是否过小(建议≥5 秒),查看 Server 日志是否有 Proxy 连接记录。
http://www.lryc.cn/news/594916.html

相关文章:

  • WPF 初始界面启动时播放背景音乐
  • 合并pdf工具下载
  • Redis进阶--缓存
  • 如何使用python网络爬虫批量获取公共资源数据
  • 微软CEO Satya Nadella提出AI重构法则:从范式跃迁到社会盈余
  • 本地生活服务 app 同城信息发布系统搭建
  • delphi disqlite3 操作sqlite
  • C# 计算梯形面积和周长的程序(Program to calculate area and perimeter of Trapezium)
  • 在Windows Server 2012 R2中安装与配置IIS服务并部署mssql靶机教程
  • 【世纪龙科技】新能源汽车概论-汽车教学数字课程资源
  • 如何编写假设和约束---SRS软件需求规格指南系列
  • 概率论与数理统计(八)
  • 【跨国数仓迁移最佳实践2】MaxCompute SQL执行引擎对复杂类型处理全面重构,保障客户从BigQuery平滑迁移
  • java和ptyhon对比
  • C# Lambdab表达式 Var 类
  • PyQt5—QInputDialog 学习笔记
  • Iridium Certus 9704 卫星物联网开发套件
  • uniapp app pdf.js报错:Uncaught SyntaxError:Unexpected token ‘{‘
  • UART串口
  • 学习日志7.21
  • QT6 源,七章对话框与多窗体(6) 颜色对话框 QColorDialog :本类的属性,信号函数,静态成员函数,以及源代码
  • 使用AI把普通的条形柱状图,丰富成“好看高大上”的条形柱状图
  • Three.js实现银河流光粒子星空特效原理与实践
  • 基于ECharts的电商销售可视化系统(数据预测、WebsSocket实时聊天、ECharts图形化分析、缓存)
  • 【LINUX操作系统】搭建web网络服务器
  • Softhub软件下载站实战开发(二十):Docker部署全攻略
  • Golang在Web开发中的应用
  • 网络协议(四)网络层 路由协议
  • uni-app 开发小程序项目中实现前端图片压缩,实现方式
  • uniapp使用uni-ui怎么修改默认的css样式比如多选框及样式覆盖小程序/安卓/ios兼容问题