1.1、Zabbix
Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供各种通知机制以让系统管理员快速定位/解决存在的各种问题。
Zabbix主要由2部分构成,zabbix server与可选组件zabbix agent。zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台上。

1.2、监控工具选型经验
1.2.1 中小企业传统监控选择Zabbix
Zabbix是一款综合了数据收集、数据展示、数据提取、监控报警配置、用户展示等方面的一款综合运维监控平台。 Zabbix学习入门较快,功能也很强大,是一个可以迅速用起来的监控软件,能够满足中小企业的监控报警需求,因此是中小型企业运维监控的首选平台。
1.2.2 云原生监控选择Prometheus
Prometheus是一套开源的监控&报警&时间序列数据库的组合,因为Kubernetes的流行带动了Prometheus的发展,所以,Prometheus更适合对docker、云服务、k8s等云原生应用进行监控。
2、zabbix版本发布与安装需求
2.1、zabbix版本发布计划
zabbix目前发布的版本有标准版和长期支持版(LTS)两种,LTS为Long Term Support的简写。
Zabbix LTS版本,将为客户提供5年的支持服务。前三年完全支持与后两年有限制支持。前三年包括一般、关键、安全性问题解决,后两年包括关键、安全性问题解决。超出时间不提供技术支持服务。
Zabbix标准版,发布计划周期为六个月,每六个月将有一个新的Zabbix稳定版本发布。
目前Zabbix LTS最新版本为Zabbix7.0 LTS,支持服务支持到2030年。Zabbix标准版最新版本为zabbix7.4.
2.2、zabbix安装要求
(1)、硬件要求
| 规模 | 监控指标 | CPU内核 | 内存 (GiB) | 数据库 |
|---|---|---|---|---|
| 小 | 1 000 | 2 | 8 | MySQL 服务器, Percona 服务器, MariaDB 服务器, PostgreSQL |
| 中 | 10 000 | 4 | 16 | MySQL 服务器, Percona 服务器, MariaDB 服务器, PostgreSQL |
| 大 | 100 000 | 16 | 64 | MySQL 服务器, Percona 服务器, MariaDB 服务器, PostgreSQL, Oracle |
| 非常大 | 1 000 000 | 32 | 96 | MySQL 服务器, Percona 服务器, MariaDB 服务器, PostgreSQL, Oracle |
(2)支持的操作系统平台
由于服务器操作的安全性要求和任务关键性,UNIX/Linux 是唯一能够始终如一地提供必要性能、容错和弹性的操作系统。
Zabbix server/agent 也可以在各种Unix/Linux操作系统上运行。自XP以来,所有Windows desktop 和 server 版本都支持Zabbix agent,但windows不支持安装Zabbix server。
(3)、后端数据库要求
有强制性要求。 特定功能的支持需要可选需求。
| 软件 | 支持版本 | 注释 |
|---|---|---|
| MySQL/Percona | 8.0.30 或以后版本 | 如果 MySQL(或 Percona)用作 Zabbix 后端数据库,则为必需。 需要 InnoDB 引擎。 建议使用 MariaDB Connector/C 库来构建server/proxy。 |
| MariaDB | 10.5.00-10.10.X | InnoDB 引擎是必需的。 建议使用 MariaDB Connector/C 库来构建server/proxy。 |
| Oracle | 19c – 21c | 如果将 Oracle 用作 Zabbix 后端数据库,则为必需。 |
| PostgreSQL | 13.0-15.X | 如果将 PostgreSQL 用作 Zabbix 后端数据库,则为必需。 自 Zabbix 6.0.10 起支持 PostgreSQL 15。 |
2.3、zabbix7.x LTS新特性介绍
(1)、主机向导(Host Wizard)
Web 界面一键完成 Agent 安装、模板绑定、PSK 加密、阈值与宏设置,无需手动干预
(2)、监控指标卡片(Item Card)
Dashboard 新增卡片组件,可集中展示关键 Item 的实时值、单位、状态与描述;同时提供 History 小组件,在同一面板内即可查看指标趋势
(3)、Map 增强
支持组件层级叠放;连线可绑定 Item,按阈值变色,实现更直观的拓扑状态展示
(4)、无限嵌套发现
低级别发现(LLD)与主机原型发现取消层级限制,可链式发现“集群→主机→数据库→表空间”等复杂对象,大幅简化多层监控配置
(5)、前后端 TLS 加密
Zabbix Server 与 Web 前端之间可启用 TLS(证书或 PSK),满足“零信任”内网或公网安全要求,安装或后期均可开启
3、zabbix应用组件介绍
Zabbix主要有几个组件构成,这些组件的功能介绍如下:
(1)、Zabbix Server
Zabbix Server是Zabbix的核心组件,是所有配置信息、统计信息和操作数据的核心存储器。 它主要负责接收客户端发送的报告和信息,同时,所有配置、统计数据及配置操作数据均由其组织进行。
(2)、Zabbix Database Storage
主要用于存储数据,所有配置信息和Zabbix收集到的数据都被存储在数据库中。常用的存储设备有MySQL、Oracle、SQLite等。
(3)、Zabbix Web 界面
这是Zabbix提供的GUI接口,通常(但不一定)与Zabbix Server运行在同一台物理机器上。
(4)、Zabbix Proxy代理服务器
这是一个可选组件,常用于分布监控环境中,代理Server可以替Zabbix Server收集性能和可用性数据,汇总后统一发往Zabbix Server端。
(5)、Zabbix Agent监控代理
Zabbix Agent部署在被监控主机上,能够主动监控本地资源和应用程序,并负责收集数据发往Zabbix Server端或Zabbix Proxy端。从zabbix5版本开始,zabbix_agent分为zabbix_agent和zabbix_agent2,zabbix_agent2是第二个agent版本,功能更加强大,采用go语言编写,支持zabbix_agent所有功能。使用zabbix_agent2可监控docker容器、ceph、mysql、oracle、redis等。
4、Zabbix服务进程介绍
根据功能和用途,默认情况下zabbix包含5个进程,分别是zabbix_agentd/zabbix_agent2、zabbix_get、zabbix_proxy、zabbix_sender、zabbix_server,另外还有一个zabbix_java_gateway是可选的功能,需要另外安装。下面分别介绍下它们各自的作用。
(1)、zabbix_agentd/zabbix_agent2
zabbix_agentd/agent2是Zabbix Agent监控代理端守护进程,此进程收集客户端数据,例如cpu负载、内存、硬盘、网络使用情况等,推荐使用zabbix_agent2。
(2)、zabbix_get
zabbix提供的一个工具,通常在Zabbix server或者Zabbix proxy端执行用来获取远程客户端信息,这其实是Zabbix server去Zabbix Agent端拉取数据的过程,此工具主要用来进行用户排错。例如在Zabbix server端获取不到客户端的监控数据时,可以使用zabbix_get命令测试获取客户端数据来做故障排查。
(3)、zabbix_sender
zabbix提供的一个工具,用于发送数据给Zabbix server或者Zabbix proxy,这其实是Zabbix Agent端主动推送监控数据到Zabbix Server端的过程,通常用于耗时比较长的检查或者有大量主机(千台以上)需要监控的场景。此时通过主动推送数据到Zabbix server,可以在很大程度上减轻Zabbix server的压力和负载。
(4)、zabbix_proxy
Zabbix Proxy的代理守护进程。功能类似Zabbix server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交或者被提交到Zabbix server上。
(5)、zabbix_java_gateway
Zabbix2.0之后引入的一个功能。顾名思义:Java网关,主要用来监控JAVA应用环境,类似zabbix_agentd进程。需要特别注意的是,它只能主动去推送数据,而不能等待zabbix server或者zabbix proxy来拉取数据。它的数据最终会给到zabbix server或者zabbix proxy上。
(6)、zabbix_server
Zabbix server是整个Zabbix系统的核心进程。其它进程zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的数据最终都是提交到Zabbix server来统一进行处理。
(7)、Zabbix web service
Zabbix web service 是一个用来连接外部网站服务的进程。现在,Zabbix web service 用来收集和发送定时报告,Zabbix web service 模块在预编译的Zabbix安装包中提供。通过源码包中编译Zabbix web service时,需要指定--enable-webservice配置参数。
(8)、zabbix默认端口号
以下每个组件的开放端口列表适用于默认配置:
| Zabbix 组件 | 端口号 | 协议 | 连接类型 |
|---|---|---|---|
| Zabbix agent | 10050 | TCP | on demand |
| Zabbix agent 2 | 10050 | TCP | on demand |
| Zabbix server | 10051 | TCP | on demand |
| Zabbix proxy | 10051 | TCP | on demand |
| Zabbix Java gateway | 10052 | TCP | on demand |
| Zabbix web service | 10053 | TCP | on demand |
| Zabbix frontend | 80 | HTTP | on demand |
| 443 | HTTPS | on demand | |
| Zabbix trapper | 10051 | TCP | on demand |
注意,端口号应在防火墙中打开以启用 Zabbix 通信。
5、zabbix运行架构

6、多种方式安装zabbix监控平台
zabb
发表回复