# Zabbix监控系统详解

> 作者/来源: UCloud 运营管理员
> 发布时间: 2023-01-11T05:20:00.000Z
> 分类: 云主机
> 标签: 数据库, CDN, Docker
> 原文链接: http://117.50.162.249:3000/yun/articles/1053

---

# Zabbix监控系统详解

> 来源: https://www.ucloud.cn/yun/129793.html
> 作者: IT那活儿
> 发布日期: 发布于2023-01-11 13:20

Zabbix监控系统详解

Zabbix 是一个企业级的分布式开源监控方案。

Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制，允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。

Zabbix支持主动轮询和被动捕获。Zabbix所有的报告、统计信息和配置参数都可以通过基于Web的前端页面进行访问。基于Web的前端页面可以确保您从任何方面评估您的网络状态和服务器的健康性。

## 

一. zabbix组件

**Zabbix server**：是整个Zabbix软件的核心程序，Server通过轮询和捕获数据，计算是否满足触发器条件，向用户发送通知。是agent程序报告系统可用性、系统完整性和统计数据的核心组件，是所有配置信息、统计信息和操作数据的核心存储器；

**数据库存储**：所有配置信息和Zabbix收集到的数据都被存储在数据库；

**web界面**：为了从任何地方和任何平台都可以轻松的访问Zabbix, 提供基于Web的Zabbix界面。该界面是Zabbix Server的一部分，通常(但不一定)跟Zabbix Server运行在同一台物理机器上。

**Zabbix proxy**：可以替Zabbix Server收集性能和可用性数据，Proxy代理服务器是Zabbix软件可选择部署的一部分，也可以帮助单台Zabbix Server分担负载压力。

**Zabbix agents**：部署在监控目标上，能够主动监控本地资源和应用程序，并将收集到的数据报告给Zabbix Server。

## 

二. zabbix原理

**1. zabbix整体架构图**

**![](https://ucloud-blog.cn-bj.ufileos.com/articles/129793/images/129793_000.png)**

**2. zabbix监控系统大概的工作流程：**

agentd需要安装到被监控的主机上，它负责定期收集各项数据，并发送到zabbix server端，zabbix server将数据存储到数据库中，zabbix web根据数据在前端进行展现和绘图。这里agentd收集数据分为主动和被动两种模式：

**主动：**agent请求server获取主动的监控项列表，并主动将监控项内需要检测的数据提交给server/proxy

**被动：**server向agent请求获取监控项的数据，agent返回数据。

【主动监测】通信过程如下：

zabbix首先向ServerActive配置的IP请求获取active items，获取并提交active tiems数据值server或者proxy。很多人会提出疑问：zabbix多久获取一次active items？它会根据配置文件中的**RefreshActiveChecks**的频率进行，如果获取失败，那么将会在60秒之后重试。分两个部分：

获取ACTIVE ITEMS列表

- Agent打开TCP连接（主动检测变成Agent打开）
- Agent请求items检测列表
- Server返回items列表
- Agent 处理响应
- 关闭TCP连接
- Agent开始收集数据

主动检测提交数据过程如下：

- Agent建立TCP连接
- Agent提交items列表收集的数据
- Server处理数据，并返回响应状态
- 关闭TCP连接

【被动监测】通信过程如下：

- Server打开一个TCP连接
- Server发送请求agent.ping
- Agent接收到请求并且响应1
- Server处理接收到的数据1
- 关闭TCP连接

这里，有人可以看出来，被动模式每次都需要打开一个tcp连接，这样当监控项越来越多时，就会出现server端性能问题了。

还有人会问，那实际监控中是用主动的还是被动的呢？这里主要涉及两个地方：

- 新建监控项目时，选择的是**zabbix代理**还是**zabbix端点代理程式（主动式），**前者是被动模式，后者是主动模式。
- agentd配置文件中StartAgents参数的设置，如果为0，表示禁止被动模式，否则开启。一般建议不要设置为0，因为监控项目很多时，可以部分使用主动，部分使用被动模式。

## 

三. zabbix常用监控架构

**1. server-agentd模式：**

这个是最简单的架构了，常用于监控主机比较少的情况下。

**2. server-proxy-agentd模式：**

这个常用于比较多的机器，使用proxy进行分布式监控，有效的减轻server端的压力。

## 

四. zabbix的优缺点

**1. zabbix的优点：**

- 开源,无软件成本投入；
- Server 对设备性能要求低；
- 支持设备多,自带多种监控模板；
- 支持分布式集中管理,有自动发现功能,可以实现自动化监控；
- 开放式接口,扩展性强,插件编写容易；
- 当监控的 item 比较多服务器队列比较大时可以采用主动状态,被监控客户端主动 从server 端去下载需要监控的 item 然后取数据上传到 server 端。这种方式对服务器的负载比较小；
- Api 的支持,方便与其他系统结合；

**2. zabbix的缺点：**

- 需在被监控主机上安装 agent,所有数据都存在数据库里, 产生的数据据很大,瓶颈主要在数据库；
- 项目批量修改不方便；
- 社区虽然成熟，但是中文资料相对较少，服务支持有限；
- 入门容易，能实现基础的监控，但是深层次需求需要非常熟悉Zabbix并进行大量的二次定制开发难度较大；
- 系统级别报警设置相对比较多，如果不筛选的话报警邮件会很多；并且自定义的项目报警需要自己设置，过程比较繁琐；
- 缺少数据汇总功能，如无法查看一组服务器平均值，需进行二次开发。

## 

五. zabbix支持的监控对象

zabbix常见的一些支持监控的对象，包含但不仅限于如下：

- 数据库：MySQL,MariaDB,Oracle,SQL Server -- agent方式
- 应用软件：Nginx,Apache,PHP,Tomcat – agent方式
- 集群：LVS,Keepalived,HAproxy,RHCS,F5 – agent方式
- 虚拟化：VMware,KVM,XEN ,docker,k8s – agent方式
- 操作系统：Linux,Unix,Windows性能参数 – agent方式
- 硬件：服务器，存储，网络设备 – IPMI、SNMP方式
- 网络：网络环境（内网环境，外网环境）-- SNMP方式

## 

六. zabbix安装包获取

## zabbix安装包获取途径及一些支持网站：

**1. 包安装方式：**

包获取地址：http://repo.zabbix.com/zabbix/

zabbix支持针对于不同类型操作系统的包安装方式，使用者可在包获取地址选择对应版本的zabbix程序来安装自己想要安装的版本。

**2. 源码安装方式：**

对于新版的zabbix，可在其官方网站下载最新的源码包进行编译安装；对于较老历史版本，可在：https://cdn.zabbix.com/zabbix/sources/oldstable/ 网站下载对应的版本进行编译安装。

**3. 安装手册：**

zabbix官方网站提供了中英文的安装使用手册，其中英文手册的地址如下：

中文手册地址：https://www.zabbix.com/cn/manuals

英文手册地址：https://www.zabbix.com/manuals

**4. 模版分享网站：**

Zabbix为全球使用者提供了一个模板分享网站，虽说不一定很全面，但也能为广大的使用者提供一个参考，其网站网址为：https://share.zabbix.com/

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129793/images/129793_001.png)

END

更多精彩干货分享

点击下方名片关注

IT那活儿

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129793/images/129793_002.png)