【Zabbix监控原理】

article/2025/11/7 21:31:14

一、监控介绍

1、监控目的

监控是需要站在公司的业务角度去考虑,而不是针对某个监控技术的使用。

对系统不间断实时监控

实际上是对系统不间断的实时监控

实时反馈系统当前状态

监控某个硬件、或者系统,都是需要能实时看到当前系统的状态,是正常、异常、或是故障

保证服务可靠性安全性

监控的目录就是要保证系统、服务、业务正常运行

保证业务持续稳定运行

如果监控的做的比较完善,即使出现故障,能第一时间收到故障报警,在第一时间处理解决,从而保证业务持续性的文档运行

 2、监控方法

了解监控对象

了解CPU是如何工作的

性能基准指标

监控这个东西的什么属性?比如CPU的市盈率、负载、用户态、内核太、上下文切换

报警阀值定义

怎么才算是故障,比如CPU的负载到底多少算高?内核态,用户态分别跑多少算高?
故障处理流程

收到了故障报警,那么我们怎么处理?

3、监控核心

发现问题

当系统发生故障报警,我们会收到故障报警的信息。
定位问题

故障邮件一般都会写某某主机故障、具体故障的内容,我们需要对报警内容进行分析,比如一台服务器连不上:我们就需要考虑是网络问题、还是负载太高导致长时间无法连接,又或者某开发触发了防火墙禁止的相关策略等等,我们就需要去分析故障具体原因。
解决问题

当然我们了解到故障的原因后,就需要通过故障解决的优先级去解决该故障。
总结问题

当我们解决完重大故障后,需要对故障原因以及防范进行总结归纳,避免以后重复出现。

 二、zabbix概述

1、zabbix的主要特点

安装于配置简单,学习成本低

支持多语言(包括中文)

免费开源

自动发现服务器与网络设备

分布式监视及WEB集中管理功能

可以无agent监视

用户安全认证和柔软的授权方式

通过WEB界面设置或查看监视结果

email等通知功能等等

2、Zabbix是什么 

zabbix是一个基于web界面的提高分布式系统监视以及网络监视功能的企业级开源解决方案

zabbix能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制以让系统管理来员块速定位/解决存在的各种问题。

Zabbix由两部分构成,Zabbix server与可选组件 Zabbix agent 。通过C/S模式采集数据,再通过B/S模式在web端展示和配置。

zabbix server 可以通过SNMP, Zabbix agent,ping,端口监视等方法提高对远程服务器/网络状态的监视,数据收集等功能,它可以运行在linux平台上。

zabbix agent 需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集,以及中间件的信息。

3、zabbix监控对象

zabbix支持监控各种系统平台,包括linux和windows等主流操作系统,也可以借助SNMP或者SSH协议监控路由交换设备。

zabbix如果部署在服务器上,可以监控其CPU、内存、网络等硬件参数,也可以监控具体服务或者应用程序,服务运行情况及性能

① 硬件监控(zabbix IPMI interface)

通过IPMI接口进行监控,我们可以通过标准的IPMI硬件接口,监控备监控的对象的物理特征,比如电压、温度、风扇状态、电源状态等。
② 系统监控(zabbix agent interface)

通过专用的代理程序进行监控,与常见的master/agent模型类型,如果监控对象支持对应的agent,推荐选这种方式。
③ java监控(zabbix JMX interface)

通过JMX进行监控,JMX(java management extensions,即java管理扩展),监控JMX虚拟机时,使用这种方法非常不错的选择。
④ 网络设备监控(Zabbix SNMP Interface )

通过SNMP协议与被监控对象进行通信,SNMP协议的全称为simple network management protocol,被译为简单网络管理协议,通常来说,我们无法在路由器、交换机这种硬件上安装agent,但是这些硬件都支持SNMP协议。
⑤ 应用服务监控Zabbix Agent UserParameter

⑥ MySQL数据库监控:percona-monitoring-plulgins

⑦ URL监控:Zabbix Web 监控

4、Zabbix架构

4.1 server-client架构

① 也就是zabbix的最简单的架构

② 监控机器和被监控机器之间不经过任何处理

③ 直接由zabbix-server和zabbix-agent之间进行数据交换。

④ 适用于网络比较简单,尽量在局域网内,设备比较少的监控环境。

 

 

.2 server-proxy-client架构

① 其中proxy是server、client之间沟通的一个桥梁

② proxy本身没有前端,而且本身并不存放数据,只是将agentd发来的数据暂时存放,然后再交给server。

③ 该架构经常是和master-node-client架构做比较。一般适用于跨机房、跨网络的中型网络架构的监控。

 

4.3 master-node-client架构

1、该架构是zabbix最复杂的监控架构,使用与跨机房、跨网络设备较多的大型环境。每一个弄得都会同步server端。相当于也是一个server端

2、node下面可以接proxy,也可以直接接clinet

3、node有自己的配置文件和数据库,其要做的是将配置信息和监控数据向master同步,master的故障或损不会影响对node节点的正常工作,但是会影响zabbix-server整体的完整性。

 

 4.4 zabbix支持的监控内容

1、硬件

电源状态、cpu温度、机器温度、风扇。

2、软件

HTTP接口、RPC接口的请求量、耗时、异常量等

JVM上线程数、死线程数、活跃线程数、GC耗时等

(GC是垃圾收集的意思,内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的。)

3、数据

数据库连接、QPS、TPS

并行会话数、缓存数、锁状态等

Nginx的活跃、丢弃、等待连接数、错误等

Tomcat上的线程数、请求量、耗时、内存消耗等

缓存、内存消耗、内存碎片、消息队列等数据

 

5、zabbix常用术语

主机(host)

要监控的设备,可以有ip或是主机名(必须可解析)指定。
主机组(host group)

主机的逻辑容器,包含主机和模板,主机通常在给用户或是用户组指派监控权限时使用。
监控项(item)

一个特定指定的相关数据,比如内存的大小,CPU的使用率,甚至是服务的运行状态等,监控项数据来源于被监控对象,并且每一个监控项都由一个key值来标识。
触发器(trigger)

一个表达式,用于评估监控的值是否在合理的范围,当接收的值超出触发器的规定时,就被认为是故障,如果超出后再次符合,就被认为是正常。
事件(event)

触发器触发的一个特定时间,或者zabbix定义的一个自定上限注册主机的事件,。
动作(action)

指根据配置,zabbix对于触发器触发的特定时间进行处理的具体措施,如执行某个脚本,或是向管理员邮箱发送邮件等等
报警升级(escalation)

发送警报或是执行远程命令的自定义方案。
媒介(media)

发送通知(告警)的手段,比如:电话,微信,邮件,短信,企业微信,钉钉,等等
通知(notification)

通过指定媒介,向用户发送的有关事件的信息
远程命令

指运维人员提前写好的命令,可以让被监控主机在触发事件后执行。
模板(template)

用于快速被监控主机的预设条目结合,通常包括了监控项、触发器、应用等,模板可以直接连接到某个主机
应用(application)

一组监控的集合
web场景(web scennario)

用于检测web站点可用性的一个或多个HTTP请求
前端(frontend)

zabbix的web接口

 

6、Zabbix的工作原理

Zabbix agent 安装在被监控的主机上,zabbix agent负责定期收集客户端本地各项数据,并发至 Zabbix server端,zabbix server收到数据后,将数据存储到数据库中。

用户基于Zabbix Web可以看到数据在前端展现图像。

当Zabbix监控监控某个具体项目,该项目会设置一个触发器阈值,当被监控的指标超过触发器设定的阈值,会进行一些必要的动作,动作包括: 发送信息(邮件、微信、短信、电话,钉钉)、发送命令(shell命令、rebbot、restart、install等)

当告警后,根据告警机制可以先自动处理(比如使用shell脚本启动nginx服务等),自动处理不了的,就会通知对应的运维人员进行处理。

原理总结

zbbix_server 服务端可以通过主动或被动的方式获取到zabbix_agent客户端的数据,zabbix_server拿到数据后进行分析,存放到自己的数据库中,zabbix再将数据给到web_server,然后用户通过client访问web_server的UI界面访问

 

7、Zabbix监控部署的常见5个程序

Zabbix监控部署在系统中,包含常见五个程序:zabbix_server、zabbix_agent、zabbix_proxy、zabbix_get、zabbix_sender等

① zabbix_server

zabbix服务端守护进程,其中zabbix_agent、zabbix_get、zabbix_sender、azbbix_proxy的数据最终都交给zabbix_server。
② zabbix_agent

客户端守护进程,负责收集客户端数据,例如: 收集CPU负载、内存、硬盘、中间件使用情况
③ zabbix_proxy

zabbix分布式代理守护进程,通常大于500台主机,需要进行分布式监控架构部署。
④ zabbix_get

数据接收工具,单独使用命令,通常在server或proxy端执行获取远程客户端信息的命令。
⑤ zabbix_sebder

zabbix数据发送工具,用户发送数据给server或proxy端,通常用户耗时比较长的检查

 


http://chatgpt.dhexx.cn/article/FB3mNbAi.shtml

相关文章

zabbix监控——监控应用

目录 一,Nginx 监控 二,MYSQL 三,zabbix 监控Tomcat 一,Nginx 监控 在node2上源码编译安装nginx服务并安装监控模块; 1).编译nginx [rootnode2 ~]# tar zxf nginx-1.22.0.tar.gz [rootnode2 ~]# cd nginx-1.22.0/ [roo…

zabbix监控Nginx

目录 一、环境准备 二、部署Nginx被监控端 三、自定义Nginx监控key 四、给目标主机创建监控项 一、环境准备 搭建zabbix基础环境 zabbix基础环境部署参照:zabbix基础环境部署_桂安俊kylinOS的博客-CSDN博客 以下实验部署均基于上述环境 二、部署Nginx被监控端…

zabbix监控日志

zabbix监控日志 最主要的是监控日志文件中有没有某个字符串的表达式,对应日志轮转与否,zabbix都支持。在配置Item的时候,Type选择Zabbix agent (active),这里主要需要配置的是Key。下面是监控日志的两种key——log和logtr。log[/…

使用zabbix监控VMware

概述 1、VMware本身报警可以在vcenter中获取到,但无法通过微信或者短信通知,如果不是专门人负责也不好24小时一直查看,所以使用监控软件进行实时监控,很有必要 2、zabbix是一款开源监控软件,功能强大,内置…

zabbix监控vSphere

环境介绍 本次使用测试环境为VCSA 6.7U2(ESXI版本同样为6.7U2) Zabbix版本为 4.4.10 使用的监控模板为zabbix内置Template VM Vmware VCenter创建监控账号 使用管理员账号登录Vcenter,创建监控账号,按照“菜单”→“系统管理”…

zabbix 监控 mysql

zabbix 监控 mysql 1、监控规划 在创建监控项之前要尽量考虑清楚要监控什么,怎么监控,监控数据如何存储,监控数据如何展现,如何处理报警等。要进行监控的系统规划需要对Zabbix很了解,这里只是提出监控的需求。 需求…

zabbix监控

目录 一、zabbix监控 1.1、网站可用性 2、监控什么东西 2.1、监控范畴 3、企业级监控解决方案——Zabbix 4、zabbix主要功能 5、zabbix监控范畴 6、zabbix监控组件 7、zabbix常用的监控架构平台 8、zabbix运行过程图 一、zabbix监控 1、为什么要监控 对于运维人员来说…

zabbix服务器监控

zabbix服务器监控 文章目录 zabbix服务器监控一、zabbix服务器监控概念1.服务器上安装zabbix-agent2.启动zabbix-agent服务 二、监控远程linux服务器1.将server的hosts文件复制到agent上2.agent上安装zabbix-agent3.配置agent端并启动服务4.管理界面创建监控主机 三、为zabbix …

Zabbix监控服务详解+实战

目录 一、监控体系概述 1. 为什么需要监控 2. 监控目标与流程 (1)监控的目标 (2) 监控的流程 3. 监控的对象 (1)CPU监控 (2)磁盘监控 (3)内存监控 …

Zabbix 监控(内容详细 供您参考)

目录 一、Zabbix简介 1.1 Zabbix概述 1.2 Zabbix 监控原理 1.3 zabbix监控部署在系统中,包含常见的五个程序 二、部署zabbix服务端 三、部署zabbix 客户端 在 Web 页而中添加 agent 主机 四、自定义监控内容 1.明确需要执行的linux命令 2.创建zabbix的监控…

EF框架实现增删改查

EF框架实现增删改查 1.创建数据库:先创建两张表,文章类型表以及文章详情表,设置主外键(ID,Catelogid) Catelog:文章类型表 字段:Id(自增),Name&#xff0c…

【EF框架】EF框架的开发方法

前言 EF框架具有有三种数据持久化的方式,分别为Code First,Model First,Database First.看一下它们都有什么联系? 叙述 EF框架的三种工作方式 1.Database First是基于已存在的数据库,利用某些工具(如VS提供的EF设计器&#xff09…

使用EF框架

1.创建一个控制台项目 2.创建一个EF框架 3.查询出一个表中得到所有元素 static void Main(string[] args){//创建一个EF对象var ef new DemoDatabaseEntities1();//遍历数据库Grade表中的所有元素【EF框架对象->Grade表对象->把表内所有元素转换成实体集合Li…

C#控制台EF框架增删改查

1.创建一个linq to sql 或者EF框架,引入自己数据库的表 2.创建一个上下文 3.添加 News是数据库中的一张表名。 创建一个对象,把需要添加的内容放到对象里面,往表中插入对象,提交到数据库中,刷新数据库 。 4. 修改 创…

EF框架你了解多少?

[EF框架的认识] EF教程视频大全 一、 EF简介 ADO.NET Entity Framework 以 Entity Data Model (EDM) 为主,将数据逻辑层切分为三块,分别为 Conceptual Schema, Mapping Schema 与 Storage Schema 三层,其上还有 Entity Client,…

EF-创建EF框架

文章目录 什么是EFEF的作用 EF 分类Model First(模型优先)Code First(代码优先) Database First(数据优先) 如何创建EF 安装创建 注意事项 什么是EF 实体框架(Entity Framework)是微…

EF框架是什么?

Entity Framework 实体框架EF是ADO.NET中的一组支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架。 ORM是什么? ORM的全称是Object Relational Mapping,即对象关系映射。 ORM框架有很多,EF框架是ORM框架的其中一种&a…

EF框架学习三

实例操作: Database First(数据库优先) 1.1创建一个示例数据库。 1.2打开vs2017,新建项目,如图所示 1.3添加EF框架插件 1.4添加ADO实体数据模型 1.5选择模型类型,点击下一步,然后新建连接&…

C# EF框架使用实例

EF框架 1、新增ADO.NET实体数据模型,但这样会导致新增数据库连接配置 2、选择好后,点添加 3、下一步,点新建连接 在这里如果勾上将App.Config,会自动在配置文件(App.config)中新增数据库连接字符串 4、以…

EF 框架的简介、发展历史;ORM框架概念

一、EF 框架简介 EF 全称是 EntityFramework 。 Entity Framework是ADO.NET 中的一套支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架。 ORM框架(Object Relational Mapping) 翻译过来就是对象关系映射。 如果不用ORM框架,我们一般…