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

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端。每个组件都有其特定的配置文件和日志文件,其中包含的重要参数需要在这些文件中进行配置。接下来,我们将详细介绍这些组件的配置方法和相关参数。

http://www.xdnf.cn/news/569395.html

相关文章:

  • 论文阅读:Auto-Encoding Variational Bayes
  • 信奥赛-刷题笔记-栈篇-T3-P1901发射站0521
  • 在 Windows 系统部署对冲基金分析工具 ai-hedge-fund 的笔记
  • 科普: 天然气蓝牙卡充值流程
  • CST软件基础四:电场和电导的设置
  • Unity基础学习(五)Mono中的重要内容(1)延时函数
  • Model 是 Agent 的大脑(以camel为例)
  • 补充Depends 和 request: Request 依赖注入用法的注意事项
  • 【C++ Primer 学习札记】智能指针
  • 构建 PyMNN
  • Halcon窗口的基本操作
  • Elasticsearch生产环境性能调优指南
  • Spring Boot + +小程序, 快速开发零工市场小程序
  • 如何使用 Docker Compose 部署 Immich
  • 《棒球百科知识》世界棒球十强国家是如何发展·棒球1号位
  • WordPress Madara插件存在文件包含漏洞(CVE-2025-4524)
  • 实验分享|基于千眼狼sCMOS科学相机的流式细胞仪细胞核成像实验
  • XCOSnTh-fatfsShell
  • 腾讯位置服务地点搜索开发指南
  • [Min-Max Normalization] [Z-Score Normalization]
  • 使用vue2做一个生成二维码的案例【可当组件使用】
  • JC/T 2848-2024 玻璃纤维增强石膏(GRG)装饰制品检测
  • VS2022:使用命令行启动项目
  • 2023 睿抗机器人开发者大赛CAIP-编程技能赛-本科组(国赛) 解题报告 | 珂学家
  • vscode连接WSL卡住
  • js不同浏览器标签页、窗口或 iframe 之间可以相互通信
  • 虚拟机下的OpenWrt磁盘Overlay扩容
  • genicamtl_lmi_gocator_objectmodel3d
  • 掌握HTTPX:从基础到高并发工程实践
  • 自由开发者计划 001:创建一个用于查看 Jupyter Notebook 的谷歌浏览器插件