Zabbix开源监控的全面详解!

一、zabbix的基本概述

zabbix,这款企业级监控软件,能全方位监控各类网络参数,确保企业服务架构的安全稳定运行。它提供了灵活多样的告警机制,帮助运维人员迅速发现并解决问题。此外,zabbix还具备分布式监控功能,能应对复杂架构下的监控挑战,并配备了web页面,以直观的方式展示主机监控信息。

二、zabbix的架构组成

zabbix的架构主要由以下五个核心组件构成:

1、Server

zabbix server作为其核心组件,承担着存储所有配置信息、统计数据以及操作数据的重任。通过zabbix agent的定期汇报,server能够实时了解各监控对象的可用性、完整性及其他相关统计信息。
2、Web页面

Web页面作为Zabbix系统的重要组成部分,通常与Zabbix Server部署在同一物理设备上,但在某些特殊情境下,也可以进行分离配置。它主要职能是呈现直观的监控信息,从而便于运维人员对系统进行实时监控与管理。
3、数据库

Zabbix数据库是系统的核心组件之一,负责存储Zabbix的配置信息、统计数据以及其他关键内容。通过数据库,运维人员可以方便地查询、管理和分析这些数据,以实现对系统状态的深入了解和精准监控。
4、Proxy

Zabbix Proxy可以根据实际生产环境的需求进行选择性地使用。当Zabbix Proxy被启用时,它可以替代Zabbix Server进行数据采集,从而有效减轻Zabbix Server的负担。这种组件特别适用于架构庞大、Zabbix Server负载过重,或者企业设备跨机房、跨网段,以及Zabbix Server无法直接与Zabbix Agent通信的复杂场景。
5、Agent

Zabbix Agent通常被部署在被监控的目标设备上,它负责主动监控本地的资源和应用程序,并实时将收集到的监控数据发送给Zabbix Server。

三、Zabbix的监控范围

Zabbix能够监控多种系统平台,涵盖Linux和Windows等主流操作系统。它还支持通过SNMP和SSH协议对路由交换设备进行监控。当Zabbix部署在服务器上时,它可以实时监控服务器的硬件参数,如CPU、内存和网络性能,同时也能深入监控具体服务和应用程序的运行状况及性能。

此外,Zabbix提供了多种监控接口,包括IPMI接口用于硬件监控,Agent接口用于系统监控,以及JMX接口用于Java监控。对于网络设备,如路由器和交换机,无法直接安装agent,但Zabbix通过SNMP协议与之通信,实现网络设备的监控。另外,Zabbix还提供了UserParameter功能,使得用户可以自定义监控项,以满足特定的监控需求。

总的来说,Zabbix提供了全面的监控解决方案,能够满足各种复杂的监控场景。无论是硬件、系统、Java应用还是网络设备,Zabbix都能通过合适的接口和协议进行实时监控和报警。

四、Zabbix的常用术语

在深入学习Zabbix的过程中,掌握一些常用的术语是必不可少的。以下是一些Zabbix的关键术语,它们将帮助你更有效地理解和使用Zabbix:

通过熟悉这些术语,你将能够更流畅地与Zabbix系统进行交互,从而充分利用其强大的监控功能。
1、主机(host)

在Zabbix中,主机指的是需要被监控的设备,它可以通过IP地址或可解析的主机名来指定。
2、主机组(host group)

主机组在Zabbix中扮演着逻辑容器的角色,它汇聚了主机和模板。当需要为用户或用户组分配监控权限时,主机组便派上了用场。
3、监控项(item)

监控项是用于收集特定监控指标相关数据的单位,例如内存容量、CPU利用率或服务运行状态等。这些数据均来自被监控的对象,且每个监控项都通过一个独特的key进行标识。
4、触发器(trigger)

触发器是一种表达式,用于评估监控项的数据值是否处于预期的合理范围内。一旦监控项的值超出了触发器的设定界限,系统便会认为发生了故障;而当该值重新回到触发器的规定范围内时,系统则判定为正常状态。
5、事件(event)

事件是触发器触发所产生的特定情况,或者是Zabbix系统自动定义的,关于主机上线注册的自动事件。
6、动作(action)

动作是Zabbix系统针对触发器触发的特定事件所采取的具体应对措施。这些措施可以根据预先的配置进行,例如执行特定的脚本、向管理员的邮箱发送警告邮件等。
7、报警升级(escalation)

报警升级是指在触发器触发后,根据预设策略,采取更高级别的应对措施,如发送警报或执行远程命令等。

8、媒介(media)

媒介是用于发送通知(告警)的手段,如微信、邮件、钉钉等,这些手段可以根据实际需求进行灵活配置。
9、通知发送(notification dissemination)

通过预先设定的媒介,向用户传递关于特定事件的信息。
10、远程命令(remote command)

运维人员预先编写好的指令,当被监控主机触发特定事件时,可实现远程执行。
11、模板(template)

模板是一种预先定义好的被监控主机的预设条目集合,它涵盖了监控项、触发器、应用等关键信息。通过模板,运维人员可以快速且直接地将相关设置与特定主机相链接,简化了监控配置的过程。
12、应用(application)

应用是一组监控项的集合,用于全面监控特定应用程序的性能和状态。

13、web 场景(web scenario)

web 场景是用于检测 web 站点可用性的一组或多个 HTTP 请求,通过模拟用户行为来评估站点的响应速度和功能完整性。
14、前端(frontend)

在 Zabbix 的监控体系中,前端主要指的是其 web 接口部分。这一术语将在后续的内容中频繁出现,无论是企业技术交流还是日常使用,都是不可或缺的关键概念。

五、Zabbix 的工作流程

在 Zabbix 的监控系统中,其工作流程可概括为以下几个步骤:首先,Zabbix 客户端需要安装在被监控的设备上,负责定期收集各种数据,并将这些数据发送至 Zabbix 服务端;接着,Zabbix 服务端,通常安装在监控设备上,负责接收客户端发送的数据,并将其存储至数据库中;最后,Zabbix web 前端根据从数据库中获取的数据,在前端进行展示和绘图,以便用户能够直观地查看监控信息。

此外,Zabbix 的数据收集过程包括两种主要模式:主动模式和被动模式。
1、主动模式

在主动模式下,Zabbix 客户端会主动向 Zabbix 服务端发起请求,获取需要监控的项列表,并随后主动将监控项所需的数据提交给 Zabbix 服务端。
2、被动模式

在被动模式下,Zabbix 服务端会主动向 Zabbix 客户端发出请求,要求其提供特定监控项的数据。随后,Zabbix 客户端会响应服务端的请求,并提交所需的数据。这种模式下,数据流动的方向是由 Zabbix 服务端发起的。

六、Zabbix 进程详解

在默认配置下,Zabbix 包含六个工作进程:zabbix_agentd、zabbix_get、zabbix_proxy、zabbix_sender、zabbix_server 和 zabbix_gateway。值得注意的是,zabbix_java_gateway 是一个可选进程。这些进程各自承担着特定的任务,共同构成了Zabbix的监控体系。
1、zabbix_agentd

zabbix_agentd作为Zabbix的客户端守护进程,其核心职责是负责收集客户端的监控项数据。
2、zabbix_server

zabbix_server作为Zabbix的服务端守护进程,其核心任务是负责收集来自Zabbix客户端的监控数据。该进程监听在10051端口上,等待客户端数据的传入。
3、zabbix_proxy

zabbix_proxy作为Zabbix的代理程序,其功能与zabbix_server相似,扮演着一个数据中转站的角色。它负责收集数据,并将这些数据最终提交给zabbix_server进行进一步处理。
4、zabbix_get

zabbix_get是Zabbix的一个实用工具,它通常在zabbix_server或zabbix_proxy上运行。这个工具的主要功能是远程获取客户端的信息,常被用于故障排查和问题解决。
5、zabbix_sender

zabbix_sender是Zabbix的另一个重要工具,它通常在Zabbix的客户端上运行。这个工具特别适用于需要较长检测时间的场景,它能够主动将收集到的数据发送给Zabbix服务器。
6、zabbix_java_gateway

zabbix_java_gateway是Zabbix在20.0版本后新增的一项功能,专为支持JAVA设备而设计。它具备主动获取数据的能力,却无法进行被动数据收集。

七、zabbix的监控框架

在实际应用中,zabbix的监控框架会根据网络环境和监控规模的不同而有所差异。它主要包含三种架构:server_client架构、master_node_client架构以及server_proxy_client架构。这些架构各自适应不同的应用场景,确保zabbix能够灵活地满足各种监控需求。
1、server_client架构

这是zabbix最简单的架构形式,其中监控设备和被监控设备直接相连,实现zabbix_server与zabbix_client之间的直接数据交互。
2、zabbix_proxy_client架构

在zabbix的这种架构中,proxy充当了server和client之间的桥梁角色。它并不直接存储数据,而是暂时保留从zabbix_agent端传来的数据,随后再将其转发给server。这种设计特别适用于需要跨机房或跨网络连接的中型网络架构。

然而,在server_proxy_client架构中,一旦server设备发生故障,整个系统可能会陷入瘫痪状态,无法正常工作。
3、master_node_client架构

master_node_client架构是zabbix中最为复杂的架构模式。它通常被部署在跨机房、跨网络的大型网络环境中,监控设备数量众多。与server_proxy_client架构相比,其核心差异在于node与proxy的角色定位。

在master_node_client架构中,每个node都具备server端的某些功能,拥有独立的配置文件和数据库。这些node节点能够直接与下游的client进行连接,或者通过proxy代理后进行连接。此外,当master设备发生故障时,并不会影响到node节点的正常运作。
7.1 三种架构模式的架构图展示如下:
7.2 各模块功能详解:

1、Zabbix_Server:作为Zabbix的核心组件,主要负责收集agent的存活情况和监控数据。所有关于Zabbix的配置、统计和操作数据都会通过server存入database。

2、Zabbix_Database:作为存储所有Zabbix配置信息和监控数据的数据库,其重要性不言而喻。

3、Zabbix_Web:这是Zabbix的web管理界面,管理员可以通过它来配置Zabbix并查看相关监控信息。通常,它与Zabbix_server运行在同一台主机上,但也可以独立部署在另一台服务器上。

4、Zabbix_Proxy:在分布式监控场景中,Zabbix_Proxy会代理Zabbix_server收集部分被监控主机的数据,并统一发送给server端。这种设置通常适用于需要监控超过500台主机的情况。

5、Zabbix_Agent:它需要部署在被监控的主机上,主要负责收集该主机的数据,并将其发送给server端或proxy端。每个组件都有其特定的配置文件和日志文件,其中包含的重要参数需要在这些文件中进行配置。接下来,我们将详细介绍这些组件的配置方法和相关参数。

相关推荐
SeaTunnel12 小时前
如何将SeaTunnel MySQL-CDC与Databend 高效整合?格式与方案全解析
数据库·mysql·开源·数据集成·seatunnel·databend
算家计算12 小时前
Meta开源V-JEPA 2:杨立昆颠覆生成式AI,世界模型性能碾压英伟达30倍
人工智能·开源
FIT2CLOUD飞致云13 小时前
干货分享|JumpServer PAM特权账号管理功能详解
开源
时序数据说14 小时前
时序数据库IoTDB数据模型建模实例详解
大数据·数据库·开源·时序数据库·iotdb
ajassi200014 小时前
开源 java android app 开发(十二)封库.aar
android·java·linux·开源
时序数据说14 小时前
时序数据库IoTDB结合SeaTunnel实现高效数据同步
大数据·数据库·开源·时序数据库·iotdb
天天打码14 小时前
Bootstrap Table开源的企业级数据表格集成
前端·开源·bootstrap
竹66816 小时前
群晖NAS如何使用docker安装雷池防火墙?
架构·开源
不念霉运16 小时前
开源生态新势能: 驱动国产 DevSecOps 与 AI 工程新进展
人工智能·开源·github·devops