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

部署 Zabbix 企业级分布式监控

目录

一、监控系统的功能概述

二、监控系统的实现原理

三、监控系统的开源产品

四、Zabbix 系统概述

五、部署流程

2、基础环境配置:

3、部署 Zabbix Server:

4、Zabbix 页面配置:

5、部署 Proxy:

6、部署 Agent:

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


一、监控系统的功能概述

监控,从中文的字义来看,有两个内容,一是检测,二是控制。重点在第一个字眼,即检测、预防的意思。

监控,对应的英文单词是 Monitoring。在计算机领域,可以将其分为 5 种监控类型:应用性能监控、业务交易监控、网络性能监控、操作系统监控(文档中提及 5 种类型,但仅列出 4 种)。

按照逻辑层次划分,监控行为可分为 5 个层次:

  1. 基础设施监控:由运维人员负责,涉及网络、交换机、路由器等低层设备,需监控网络流量、丢包情况、错包情况、连接数等核心指标。
  2. 系统层监控:涵盖物理机、虚拟机、操作系统等,主要监控 CPU 使用率、内存占用率、磁盘 IO 和网络带宽等指标。
  3. 应用层监控:与服务紧密相关,包括 URL 访问性能、调用数、延迟、服务错误率、慢 SQL、缓存命中率、服务响应时间等。
  4. 业务监控:针对业务交易相关情况,如交易网站的用户登录、注册、下单、支付等,可为运营和高管提供数据支持,辅助战略决策。
  5. 端用户体验监控:监控用户端使用性能、返回码、地区分布、运营商连接情况、客户端操作系统及浏览器版本等,及时发现影响用户体验的问题。

二、监控系统的实现原理

  1. 模块组成:主要分为数据采集部分和数据存储、分析告警、展示部分。
  2. 采集协议:分为专用客户端采集(私有协议)和公用协议采集(如 SNMP、IPMI、SSH、Telnet)。
  3. 监控模式
    • 被动模式:服务器端到客户端采集数据,对监控端服务器开销较大,适合小规模监控环境。
    • 主动模式:客户端主动上报数据到服务器,对监控端服务器开销较小,适合大规模监控环境。
  4. 代理架构:对于大规模监控环境,除主动模式外,可采用代理架构(如 C/S/P 架构)分摊服务器性能开销,支持跨地域、跨网络分布式监控。

三、监控系统的开源产品

产品名称特点及适用场景
Zabbix企业级运维监控平台,可监控服务器、网络设备、Web 应用等,适配多种操作系统,开源免费
Prometheus+Grafana开源监控和警报工具包,主要用于基础设施监控,可监控服务器、数据库、Web 服务等
Cacti网络流量监测图形分析工具,连接 RRDToo1 生成网络数据图表,具有强大的数据和用户管理功能
Nagios监控系统运行状态和网络信息,可监控本地或远程主机及服务,提供异常通知,支持多种组件监控
Checkmk高可扩展监控工具,可整合监控服务器、网络等,有基础版(开源免费)和企业版,部署快、自动化程度高
OpenNMS基于 Java/XML 的分布式网络和系统监控平台,支持多种系统,可通过多种协议收集系统指标
NetdataLinux 性能实时监测工具,监控指标多且广、收集速度快,支持多种运行环境,可即时诊断异常
LibreNMS开源网络监控系统,易于安装配置,功能丰富,支持多种供应商、设备和协议,可自动发现网络

四、Zabbix 系统概述

  1. 初识 Zabbix
    • 企业级分布式开源监控系统,基于 Web 界面,可监控服务器、网络设备等的性能和可用性。
    • 由 Alexei Vladishev 创建,目前由 Zabbix SIA 主导开发,基于 GPL 通用公共许可证第 2 版,开源免费。
    • 支持轮询和 trapping,提供 Web 前端访问,适配不同规模组织的 IT 基础设施监控需求。
  2. Zabbix 的功能特性:包括数据收集(支持多种检测方式、自定义检测等)、灵活的阈值定义(触发器)、高级告警配置(自定义升级、宏变量等)、实时绘图、扩展图形化显示、历史数据存储、配置简单、模板使用、网络自动发现、快速 Web 接口、Zabbix API、权限系统、Agent 易扩展、二进制守护进程(高性能)、应对复杂环境(远程监控)等至。
  3. Zabbix 角色及架构
    • Zabbix Server:服务端守护进程,接收 Agent、Proxy 提交的数据或主动获取数据。
    • Zabbix Agent:客户端守护进程,收集客户端数据(如 CPU 负载、内存使用等)。
    • Zabbix Proxy:代理守护进程,作为中转站,将收集的数据提交到 Server。
    • Zabbix Web:Web 界面,用于管理配置和查看监控信息,可与 Server 同机或单独部署。

五、部署流程

1、资源清单

操作系统配置主机名IP 地址用途
openEuler 24.032C4Gzabbix192.168.207.137Zabbix 服务端
openEuler 24.032C4Gproxy192.168.207.138Zabbix proxy
openEuler 24.032C4Gserver01192.168.207.139被监控节点
openEuler 24.032C4Gserver02192.168.207.140被监控节点

2、基础环境配置:

#关闭防火墙:执行systemctl stop firewalld和systemctl disable firewalld。
[root@localhost~]#systemctl stop firewalld
[root@localhost ~]#systemctl disable firewalld
```{insert\_element\_0\_}
#关闭 Selinux:执行setenforce 0。
[root@localhost ~]#setenforce0
```{insert\_element\_1\_}
#时间同步:设置时区为 Asia/Shanghai,执行chronyc sources -v同步时间。
[rootelocalhost ~]#timedatectl set-timezone Asia/Shanghai
[root@localhost~]#chronyc sources -v
```{insert\_element\_2\_}
#修改主机名:分别设置为 zabbix、proxy、server01、server02。
[root@localhost ~]#hostnamectl set-hostname zabbix
[root@localhost~]#hostnamectl set-hostname proxy
[root@localhost ~]#hostnamectl set-hostname server01
[root@localhost~]#hostnamectl set-hostname server02
```{insert\_element\_3\_}

3、部署 Zabbix Server:

  • 添加 Zabbix 源并清理缓存。
[root@zabbix~]#rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-latest-6.4.el9.noarch.rpm
[root@zabbix ~]#dnf clean all
```{insert\_element\_4\_}
  • 安装相关软件包(如 zabbix-server-mysql、mysql-server 等)。
[root@zabbix ~]#dnf-y install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
[root@zabbix ~]#dnf-y install mysql-server-8.0.41 mysql
[root@zabbix ~]#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
```{insert\_element\_5\_}
  • 配置数据库:初始化数据库,创建用户并授权,设置相关参数。
[root@zabbix ~]#systemctl enable mysqld--now
[root@zabbix ~]# mysql -uroot
(进入 MySQL 后执行的 SQL 语句):
ALTER USER 'root'@'localhost' IDENTIFED 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;
```{insert\_element\_6\_}
  • 导入数据:通过 zcat 命令导入 SQL 数据。
[root@zabbix ~]#zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz|mysql--default-character-set=utf8mb4 -uzabbix -p zabbix
```{insert\_element\_7\_}
  • 配置 Zabbix Server 和页面相关文件,启动服务并设置开机自启。
systemctl restart zabbix-server zabbix-agent nginx php-fpm
systemctl enable zabbix-server zabbix-agent nginx php- fpm
```{insert\_element\_8\_}

4、Zabbix 页面配置:

通过指定 URL 登录,设置语言、检查环境、配置数据库连接等,默认账号 Admin,密码 zabbix。

5、部署 Proxy:

添加源、安装软件包、导入数据、配置 Proxy 文件、启动服务,在 Web 页面添加 Proxy至。

​#添加 Zabbix 源
[root@proxy~]#rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-latest-6.4.el9.noarch.rpm
[root@zabbix ~]#dnf clean all
#安装软件包
[root@proxy ~]#dnf-y install zabbix-proxy-mysql zabbix-sql-scripts zabbix-selinux-policy mysql
[root@proxy~]#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
#启动服务
systemctl start zabbix-proxy
systemctl enable zabbix-proxy

6、部署 Agent:

添加源、安装软件包、配置 Agent 文件(指定 Server 等信息)、启动服务,在 Web 页面添加主机(可直接添加或通过 Proxy 上报)至。

#添加 Zabbix 源
[root@server01~]#rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-latest-6.4.el9.noarch.rpm
[root@server01~]#dnf clean all
#安装软件包
[root@server01 ~]#dnf-y install zabbix-agent
#启动服务
systemctl start zabbix-agent
systemctl enable zabbix-agent

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

  1. 查找 zabbix 定义字体的 php 文件(defines.inc.php)。
  2. 查看字体文件相关配置(如字体路径和字体名称)。
  3. 查找 zabbix 字体文件位置(graphfont.ttf)。
  4. 上传替换字体文件,创建软链接。
  5. 刷新页面观察效果。
#查找 zabbix 定义字体的 php 文件
[root@zabbix ~]#find /-name defines.inc.php
#查看 zabbix 字体文件中用的字体
[root@zabbix~]#grep"ZBX_-FONTPATH"/usr/share/zabbix/include/defines.inc.php
[root@zabbix~]#grep "ZBX_GRAPH_FONTAME"/usr/share/zabbix/include/defines.inc.php
#查找 zabbix 的字体文件位置
[root@zabbix ~]#find /-name graphfont.ttf
#替换字体相关操作
[root@zabbix ~]#cd /usr/share/zabbix/assets/fonts
[root@zabbix fonts]#ln -snf msyh1.ttc graphfont.ttf

http://www.dtcms.com/a/290061.html

相关文章:

  • 【图像处理基石】什么是相机的内外参数?
  • 在Windows Server 2012 R2中安装与配置IIS服务并部署mssql靶机教程
  • 在Web API 开发中践行Security by Default原则
  • 【操作篇】群晖NAS用root权限直接访问系统分区文件
  • 4x4矩阵教程
  • channel_up和lane_up
  • OpenLayers 入门指南【三】:API概要
  • MetaGPT源码剖析(三):多智能体系统的 “智能角色“ 核心实现——Role类
  • GoLang教程005:switch分支
  • wordle game(猜词游戏)小demo【react + ts】
  • 子网划分核心原理 (网络原理1)
  • 配置 Nginx 反向代理
  • 微信小程序服务端快速对接指南(java版)
  • 本地生活服务 app 同城信息发布系统搭建
  • 文件的写出操作|文件的追加写入操作|文件操作的综合案例
  • BERT 的“池化策略”
  • 基于SpringBoot和leaflet-timeline-slider的历史叙事GIS展示-以哪吒2的海外国家上映安排为例
  • 技能学习PostgreSQL中级专家
  • 云原生安全工具:数字基础设施的免疫长城
  • 解码视觉体验:视频分辨率、屏幕尺寸、屏幕分辨率与观看距离的科学关系
  • 【Linux庖丁解牛】— 线程控制!
  • iOS 加固工具有哪些?快速发布团队的实战方案
  • 个人中心产品设计指南:从信息展示到用户体验的细节把控
  • SQLite以及Room框架的学习:用SQLite给新闻app加上更完善的登录注册功能
  • Lua:小巧而强大的脚本语言,游戏与嵌入式的秘密武器
  • 遇到偶现Bug(难以复现)怎么处理?
  • uni-app 开发小程序项目中实现前端图片压缩,实现方式
  • taro+pinia+小程序存储配置持久化
  • 健身管理小程序|基于微信开发健身管理小程序的系统设计与实现(源码+数据库+文档)
  • 【Unity基础】Unity中2D和3D项目开发流程对比