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

部署 Zabbix 企业级分布式监控

目录

一、监控系统的功能概述

1、监控的定义

2、监控的五个层次

(1)基础设施监控

(2)系统层监控

(3)应用层监控

(4)业务监控

(5)端用户体验监控

二、监控系统的实现原理

1、模块组成

2、采集协议

3、监控模式

4、代理架构

三、监控系统的开源产品

四、Zabbix 系统概述

1、初识 Zabbix

2、Zabbix 的功能特性

3、Zabbix 角色及架构

五、部署流程

1、资源清单

2、基础环境配置(所有节点)

3、部署 Zabbix Server(04)

4、Zabbix 页面配置

5、部署 Proxy(03)

6、部署 Agent

​编辑

7、扩展:解决图像字体显示问题


一、监控系统的功能概述

1、监控的定义

监控在中文字义上包含 “检测” 和 “预防”,对应英文 “Monitoring”。在计算机领域,监控可划分为 5 种类型:

  • 应用性能监控
  • 业务交易监控
  • 网络性能监控
  • 操作系统监控
  • 网络站点监控

2、监控的五个层次

(1)基础设施监控

  • 负责人员:运维人员。
  • 监控对象:网络、交换机、路由器等低层硬件设备。
  • 核心指标:网络流量、丢包情况、错包情况、连接数等。
  • 重要性:设备可靠性直接影响上层服务应用稳定性。

(2)系统层监控

  • 涵盖对象:物理机、虚拟机、操作系统等。
  • 核心指标:CPU 使用率、内存占用率、磁盘 IO、网络带宽情况。

(3)应用层监控

  • 关联对象:与服务紧密相关,涉及 URL 访问、服务性能、SQL、Cache 等。
  • 监控指标:URL 访问性能、调用数、延迟;服务错误率;慢 SQL;缓存命中率、性能;服务响应时间等。

(4)业务监控

  • 定义:针对直接影响业务交易的关键环节。
  • 示例(交易网站):用户登录、注册、下单、支付情况等。
  • 作用:为运营和高管提供数据支持,辅助战略决策。

(5)端用户体验监控

  • 监控对象:用户通过 app、h5、pc 端使用应用程序的体验。
  • 监控内容:用户端性能、返回码;用户所在城市地区、运营商情况;接入渠道问题;客户端操作系统及浏览器版本等。
  • 重要性:及时感知因 BUG 或性能问题导致的用户体验差问题。

二、监控系统的实现原理

1、模块组成

监控系统基本模型由两部分构成:

  • 数据采集部分
  • 数据存储、分析告警、展示部分

2、采集协议

按照支持的协议方式,监控 IT数据采集可以分为两种:专用客户端采集和公用协议采集。

分类包含内容
专用客户端采集私有协议、专有客户端
公用协议采集SNMP、IPMI、SSH、Telnet

3、监控模式

 监控系统数据采集的工作模式可以分为被动模式和主动模式。被动模式指的是服务器端到客户端采集数据;主动模式是客户端主动上报数据到服务器。

模式数据流向适用场景服务端负载
主动模式Agent → Server大规模分布式环境
被动模式Server → Agent小规模集中式环境

4、代理架构

  1. 适用场景:大规模监控环境,被监控节点多、监控类型多,数据和网络连接开销大。
  2. 作用:分摊服务器端性能开销,支持跨地域、跨网络分布式监控。
  3. 常见架构:C/S/P 架构(Client/Proxy/Server)。

三、监控系统的开源产品

产品名称特点及功能
Zabbix企业级运维监控平台,支持监控服务器、网络设备、Web 应用等;适配多系统(Linux、AIX、Windows 等);基于 GPLv2 许可证,开源免费。
Prometheus+GrafanaPrometheus 为开源系统监控和警报工具包,主要监控基础设施(服务器、数据库、Web 服务等)。
Cacti网络流量监测图形分析工具,连接 RRDToo1 生成网络数据图表;具备强大数据和用户管理功能,支持与 LDAP 结合验证,可自定义模板。
Nagios监控系统运行状态和网络信息,支持监控本地 / 远程主机及服务,提供异常通知;可监控网络协议、操作系统、应用程序等多种组件。
Checkmk高可扩展监控工具,支持服务器、网络、资产等监控;分基础版(开源免费无限制)和企业版(附加功能);部署快、自动化程度高、配置灵活。
OpenNMS企业级基于 Java/XML 的分布式监控平台,显示网络终端和服务器状态配置;专为 Linux 设计,支持多系统;可通过 JMX、WMI、SNMP 等多种协议收集指标。
NetdataLinux 性能实时监测工具,支持 Linux 系统、应用程序、SNMP 服务等实时监控;运行于物理机、虚拟机等多种设备;监控指标多、收集速度快,支持数万指标并发监控。
LibreNMS开源网络监控系统,易安装配置,支持多平台;功能广泛(协议支持、性能监控、警报等);支持多供应商设备及协议,可自动发现网络。

四、Zabbix 系统概述

1、初识 Zabbix

  1. 定义:企业级分布式开源监控系统解决方案,基于 Web 界面提供分布式系统及网络监控功能。
  2. 开发者:由 Alexei Vladishev 创建,目前由 Zabbix SIA 主导开发和支持。
  3. 监控对象:网络参数、服务器、虚拟机、应用程序、服务、数据库、网站、云等的健康和完整性。
  4. 核心功能:灵活通知机制(电子邮件告警)、报告和数据可视化(支持容量规划)、支持轮询和 trapping、Web 前端访问、免费开源(GPLv2 许可证)。

2、Zabbix 的功能特性

  1. 数据收集:支持可用性及性能检测;兼容 SNMP、IPM、MX 监控;支持自定义检测和间隔收集数据;包含 Server、Proxy、Agent 三种角色。
  2. 灵活的阈值定义:自定义问题阀值(触发器),存储于后端数据库。
  3. 高级告警配置:支持告警升级、自定义接收者及方式;告警信息可配置,支持宏变量;通过远程命令实现自动化动作。
  4. 实时绘图:内置绘图方法实现监控数据实时绘图。
  5. 扩展的图形化显示:支持自定义多监控项视图;生成网络拓扑、自定义面板和幻灯片(支持 dashboard 显示);生成监控报告。
  6. 历史数据存储:数据存储于数据库;历史数据可配置;内置数据清理机制。
  7. 配置简单:一次配置长期监控(除非调整或删除);支持通过模板添加监控设备。
  8. 模板使用:模板可添加组监控;支持继承。
  9. 网络自动发现:自动发现网络设备、Agent 自动注册;自动发现文件系统、网卡设备、SNMP OID 等。
  10. 快速的 Web 接口:Web 前端基于 PHP 编写,访问无障碍。
  11. Zabbix API:提供程序级访问接口,方便第三方程序接入。
  12. 权限系统:安全权限认证;用户可限制允许维护的列表。
  13. 全特性、Agent 易扩展:可部署于监控目标;支持 Linux 及 Windows。
  14. 二进制守护进程:C 语言开发,高性能、低内存消耗;易移植。
  15. 应对复杂环境:通过 Zabbix Proxy 实现远程监控。

3、Zabbix 角色及架构

  1. Zabbix Server:服务端守护进程,接收 Zabbix Agentd、Zabbix Proxy 提交的数据,也可主动获取数据。
  2. Zabbix Agent:客户端守护进程,负责收集客户端数据(如 CPU 负载、内存、硬盘使用情况等)。
  3. Zabbix Proxy:代理守护进程,功能类似 Server,作为中转站将收集的数据提交给 Server。
  4. Zabbix Web:Web 界面,管理员通过其管理配置和查看监控信息,可与 Server 同机或独立部署。
  5. 整体架构:包含监控客户端(Zabbix Agent)、监控代理服务器(Zabbix Proxy)、监控服务器(Zabbix Server)及前端界面(PHP 编写);支持主动 / 被动模式,涉及端口 10050(Agent)、10051(Server/Proxy)、80(Web);数据库支持 MySQL、Oracle、PostgreSQL、SQLite 等;支持无 Agent 监控(通过 Telnet、SNMP、IPMI、SSH 等)。

五、部署流程

1、资源清单

操作系统配置主机名IP 地址角色
openEuler 24.032C4Gserver01(01)192.168.10.101Zabbix 服务端
openEuler 24.032C4Gserver02(02)192.168.10.102Zabbix proxy
openEuler 24.032C4Gproxy(03)192.168.10.103被监控节点
openEuler 24.032C4Gzabbix(04)192.168.10.104被监控节点

2、基础环境配置(所有节点)

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

关闭 SELinux

setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config 

修改主机名

01
hostnamectl set-hostname server01
bash02
hostnamectl set-hostname server02
bash03
hostnamectl set-hostname proxy
bash04
hostnamectl set-hostname zabbix
bash

3、部署 Zabbix Server(04)

添加 Zabbix 源

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-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
dnf -y install mysql
dnf -y install mysql-server-8.0.41
dnf -y install https://w.rpmfind.net/linux/centos-stream/9-stream/AppStream/x86_64/os/Packages/net-snmp-libs-5.9.1-17.el9.x86_64.rpm

备注:Zabbix 6.4.8 要求软件版本:

MySQL 8.0.30-8.1.X、MariaDB 10.5.00-11.1.X、Nginx 1.20 或更高、PHP 7.4.0-8.2.X。

配置数据库

systemctl start mysqld
systemctl enable mysqld
mysql -uroot

执行 SQL 语句:

sql

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
create database zabbix character set utf8mb4 collate utf8mb4_bin;
create user zabbix@localhost identified by 'zabbix';
grant all privileges on zabbix.* to zabbix@localhost;
create database zabbix_proxy character set utf8mb4 collate utf8mb4_bin;
create user zabbix@localhost identified by 'zabbix';
create user zabbix@'%' identified by 'zabbix';
grant all privileges on zabbix_proxy.* to zabbix@localhost;
grant all privileges on zabbix_proxy.* to zabbix@'%';
set global log_bin_trust_function_creators=1;
quit;

导入数据

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
[root@zabbix ~]# mysql -uroot -p
Enter password: 123456

执行 SQL 语句:

set global log_bin_trust_function_creators= 0;
quit;

配置 Zabbix Server

修改/etc/zabbix/zabbix_server.conf文件,

#在大约 129 行取消注释并修改密码
DBPassword=zabbix。

配置 Zabbix 页面

修改/etc/nginx/conf.d/zabbix.conf文件,

#取消注释
server {listen          8080;server_name     _;

启动服务

systemctl restart zabbix-server zabbix-agent nginx php-fpm 
systemctl enable zabbix-server zabbix-agent nginx php-fpm

4、Zabbix 页面配置

登录 Zabbix:访问http://192.168.10.104:8080/

设置语言:选择合适语言(如中文)。

检查环境:通过 “检查必要条件” 页面确认环境是否满足。

配置数据库连接:按页面提示填写数据库连接信息。

主机名设置:保持默认即可,确认时区(系统默认 UTC+0000,可根据需求调整)。

安装前汇总:检查配置参数,无误后点击 “下一步”。

完成安装:提示 “Zabbix 前端已经配置好了” 即完成。

登录:默认账号Admin,默认密码zabbix

5、部署 Proxy(03)

添加 Zabbix 源

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-proxy-mysql zabbix-sql-scripts zabbix-selinux-policy mysql
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

导入数据

Zabbix Server 节点执行(04):
mysql -uroot -p123456
set global log_bin_trust_function_creators=1;
exit
Proxy 节点执行(IP 地址修改为 Zabbix Server 的 IP)(03):
[root@proxy ~]# cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix_proxy -h 192.168.10.104
Enter password: zabbix
Zabbix Server 节点执行(04):
mysql -uroot -p123456
set global log_bin_trust_function_creators=0;
exit

配置 Zabbix Proxy:修改/etc/zabbix/zabbix_proxy.conf文件

Server=192.168.10.104    #32行,Zabbix Server 节点 IP。
Hostname=Zabbix proxy    #42行,后续 Web 页面添加时需保持一致,可默认不修改。
DBHost=192.168.10.104    #157行,Zabbix Server 节点 IP。
DBPassword=zabbix    #194行,数据库密码。

启动服务

systemctl start zabbix-proxy
systemctl enable zabbix-proxy

Web 页面添加 Proxy:路径为 “管理 -->Proxy--> 创建 agent 代理”,选择主动式(默认)。

6、部署 Agent

添加 Zabbix 源

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

配置 Agent:修改/etc/zabbix/zabbix_agentd.conf文件

Server=192.168.10.104    #上报目标 IP,Server 或 Proxy 的 IP
ServerActive=192.168.10.104    #通常与 Server 行配置一致
Hostname=server01    #需与 Server 端 Web 页面主机名称一致,可自定义

    启动服务

    systemctl start zabbix-agent
    systemctl enable zabbix-agent
    

    添加主机

    • 路径:“数据采集 -- 主机 -> 创建主机”。

    • 配置项:主机名称(与 Agent 配置文件中 Hostname 一致);
    • 选择模板(可使用自带或自定义模板);
    • 选择主机群组(已有或新建);
    • 添加接口Agent节点(填写被监控节点 IP)。

    通过 Proxy 上报:步骤类似直接添加主机,需选择之前创建的 Proxy。

    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-agentvim /etc/zabbix/zabbix_agentd.conf
    Server=192.168.10.103
    ServerActive=192.168.10.103
    Hostname=server02systemctl start zabbix-agent
    systemctl enable zabbix-agent

    注:不要忘记将server02添加到proxy,然后应用

    7、扩展:解决图像字体显示问题

    查找 Zabbix 定义字体的 PHP 文件

    [root@zabbix ~]# find / -name defines.inc.php
    /usr/share/zabbix/include/defines.inc.php
    

    查看 Zabbix 字体文件中用的字体

    [root@zabbix~]# grep "ZBX_FONTPATH" /usr/share/zabbix/include/defines.inc.php
    define('ZBX_FONTPATH', realpath('assets/fonts'));//where to search for font(GD>2.0.18)
    [root@zabbix~]# grep "ZBX_GRAPH_FONT_NAME" /usr/share/zabbix/include/defines.inc.php
    define('ZBX_GRAPH_FONT_NAME','graphfont');//fontfile name
    

    查找 Zabbix 的字体文件位置

    [root@zabbix ~]# find / -name graphfont.ttf
    /usr/share/zabbix/assets/fonts/graphfont.ttf
    

    替换字体

    # 上传msyhl.ttc文件到/usr/share/zabbix/assets/fonts目录
    [root@zabbix ~]# cd /usr/share/zabbix/assets/fonts
    [root@zabbix fonts]# ls
    graphfont.ttf msyh1.ttc
    [root@zabbix fonts]# ln -snf msyh1.ttc graphfont.ttf
    
    • 备注:-s表示创建软连接;-f表示强行删除已存在目标文件;-n表示把符号连接的目的目录视为一般文件。
    • 操作后刷新页面观察效果。
    http://www.xdnf.cn/news/1161739.html

    相关文章:

  • Levels checking (filtering) in logging module
  • 大腾智能国产3D CAD软件正式上架华为云云商店
  • Pytorch01:深度学习中的专业名词及基本介绍
  • Linux的磁盘存储管理实操——(中)——逻辑卷管理实战
  • JavaScript的引入方式和基础语法的快速入门与学习
  • 【Linux】重生之从零开始学习运维之Mysql安装
  • Linux下SPI设备驱动开发
  • 管理项目环境和在环境中使用conda或pip里如何查看库版本———Linux命令行操作
  • 装饰器模式分析
  • Android Studio 的 Gradle 究竟是什么?
  • 在 Conda 中删除环境及所有安装的库
  • ElasticSearch:不停机更新索引类型(未验证)
  • 【iOS】锁[特殊字符]
  • 归并排序:优雅的分治排序算法(C语言实现)
  • Spring Boot05-热部署
  • 设计模式六:工厂模式(Factory Pattern)
  • Trae开发uni-app+Vue3+TS项目飘红踩坑
  • 数据结构自学Day11-- 排序算法
  • 迁移科技3D视觉系统:赋能机器人上下料,开启智能制造高效新纪元
  • react-window 大数据列表和表格数据渲染组件之虚拟滚动
  • GoLang教程005:switch分支
  • Git核心功能简要学习
  • 面试总结第54天微服务开始
  • Neo4j graph database
  • 【数据结构与算法】数据结构初阶:详解二叉树(二)——堆
  • Vue3 面试题及详细答案120道 (1-15 )
  • Node.js的Transform 流
  • 2x2矩阵教程
  • 亚马逊自养号测评实战指南:从环境搭建到安全提排名
  • G1垃圾回收器