01.Zabbix 概述
Zabbix 概述
- Zabbix 概述
- 1. Zabbix 功能
- 2. Zabbix 架构
- 3. Zabbix Server 启动进程
- 4. Zabbix 术语
Zabbix 概述
运维行业有句话: “无监控、不运维”,监控俗称“第三只眼”。没了监控,基础运维,业务运维都是“瞎子”。 所以说监控是运维这个职业的根本。 尤其当前 DevOps 大行其道,用监控数据给自己撑腰,这显得更加必要,有人说运维是背锅侠,那么有 了监控,就有了充足的数据,一切以数据说话,所以作为一个运维工程师,如何构建一套监控系统是你的第一件工作。
监控功能
- 在需要的时刻,提前预警即将出问题,避免故障发生
- 实时监控系统和业务,当出问题之后,通过发出告警,提醒相关人员,快速可以找到问题的根源,从而及时处理问题
- 可以实现网站,应用或者服务器的故障自愈, 保证高可用性
- 以图形或易观察的方式呈现当前以及过往的状态,便于分析和预测系统发展趋势
需要监控什么
监控一切需要监控的资源,包括:服务器,网络设备,业务应用,云服务等
| 硬件监控 | 通过远程控制卡: DeLL 的 iDRAC,HP 的 ILO 和 IBM 的 IMM 等 使用 IPMI 来完成物理设备的监控工作。通常必须要监控包括温度、硬盘故障等 路由器,交换机(端口,光衰,日志),打印机等 |
|---|---|
| 系统监控 | cpu,内存,硬盘使用率,硬盘 IO,系统负载,进程数 |
| 服务监控 | nginx,apache, php-fpm,mysql,memcache,redis ,tomcat,JVM,TCP 连接数 |
| 性能监控 | 网站性能,服务器性能,数据库性能,存储性能 |
| 日志监控 | 系统会产生系统日志,应用程序会有应用的访问日志、错误日志,服务有运行日志等, 可以使用ELK 来进行日志监控 |
| 安全监控 | 用户登录数,passwd 文件变化,本地所有文件改动 Nginx + Lua 编写一个 WAF 通过 kibana 可以图形化的展示不同的攻击类型的统计。 |
| 网络 监控 | IP,端口,URL,DB,ping 包,IDC 带宽网络流量,网络流出流出速率,网络入流量,网络出流量,网络使用率,SMTP,POP3 |
zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。功能强大,成熟可靠,使用者众多
官网: https://www.zabbix.com/
Zabbix 是一个企业级分布式开源监控解决方案,支持实时监控数干台服务器,虚拟机和网络设备,采集百万级监控指标,适用于任何 IT 基础架构、服务、应用程序和资源的解决方案
Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用 户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。这些功能使得 Zabbix 成为容量规划的理想选择。
Zabbix 支持主动轮询(polling)和被动捕获(trapping)。Zabbix 所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您可以在任何地方访问您监控的网络状态和服务器健康状况。适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于有少量服务器的小型组织,还是拥有大量服务器的大企业而言,同样适用。
1. Zabbix 功能
Zabbix 是一个高度成熟完善的网络监控解决方案,包含了多种功能。
数据采集
- 历史数据, 即记录每个监控项采集到的每个监控值
- 趋势数据, 主要保留某个监控项一个小时内历史数据的最大值、最小值和平均值以及该监控项一个 小时内所采集到的数据个数
- 可用性和性能检查;
- 支持 SNMP(包括主动轮询和被动捕获)、IPMI、JMX、VMware 监控;
- 自定义检查;
- 按照自定义的时间间隔采集需要的数据;
- 通过 Server/Proxy 和 Agents 来执行数据采集。
灵活的阈值定义
- 您可以参考后端数据库定义非常灵活的告警阈值,即触发器
高度可配置化的告警
- 可以根据递增计划、接收者、媒介类型自定义发送告警通知;
- 使用宏变量可以使告警通知变得更加高效有用;
- 自动操作包含远程执行命令。
实时图形
- 使用内置图形功能可以将监控项实时绘制成图形。
Web 监控功能
- Zabbix 可以追踪模拟鼠标在 Web 网站上的点击操作,来检查 Web 网站的功能和响应时间。
丰富的可视化选项
- 可以组合多个监控项到单个视图中,创建自定义图表;
- 网络拓扑图;
- 以仪表盘样式展示自定义聚合图形和幻灯片演示;
- 报表;
- 监控资源的更高层次展示视图(业务视图)。
历史数据存储
- 存储在数据库中的数据;
- 历史配置;
- 内置数据管理机制
配置简单
- 将被监控设备添加为主机;
- 主机一旦添加到数据库中,就会采集数据用于监控;
- 将模板用于监控设备。
使用模板
- 模板中分组检查;
- 模板可以关联模板,继承已关联模板的属性。
网络发现
- 自动发现网络设备;
- Zabbix Agent 发现设备后自动注册;
- 自动发现文件系统、网络接口和 SNMP OIDs 值。
快捷的 Web 界面
- 基于 PHP 的 Web 前端;
- 可以从任何地方访问;
- 您可以定制自己的操作方式;
- 您可以通过审计日志来查看你的操作。
Zabbix API
- Zabbix API 为 Zabbix 提供可编程接口,用于批量操作、第三方软件集成和其他用途。
权限管理系统
- 安全的用户身份验证;
- 指定的用户只能查看指定的权限范围内的视图。
功能强大且易于扩展的 Zabbix Agent
- 部署于被监控对象上;
- 支持 Linux 和 Windows
二进制守护进程
- 为了更好的性能和更少的内存占用,采用 C 语言编写;
- 便于移植。
适应更复杂的环境
- 使用 Zabbix Proxy 代理,可以轻松实现分布式远程监控
2. Zabbix 架构
Zabbix SERVER
- Zabbix server 是 Zabbix 软件的核心组件
- Zabbix Agent 向其报告可用性、系统完整性信息和统计信息。
- Zabbix server 也是存储所有配置信息、统计信息和操作信息的核心存储库。
- Zabbix server 也是 Zabbix 监控系统的告警中心。在监控的系统中出现任何异常,将发出通知给管理员。
- 基本的 Zabbix Server 的功能分解成为三个不同的组件。他们是:Zabbix server、Web 前端和数据库。
- Zabbix 的所有配置信息都存储在 Server 和 Web 前端进行交互的数据库中。例如,当你通过Web前端(或者API)新增一个监控项时,它会被添加到数据库的监控项表里。然后,Zabbix server 以每分钟一次的频率查询监控项表中的有效项,接着将它存储在 Zabbix server 中的缓存里。这就是为什么 Zabbix 前端所做的任何更改需要花费两分钟左右才能显示在最新的数据段的原因。
数据库
- 所有配置信息以及 Zabbix 采集到的数据都被持久存储在数据库中
- 可以支持 MySQL,PostgreSQL,Oracle 等多种数据库
WEB 界面
- WEB 界面是 Zabbix server 的一部分,用于实现展示和配置的界面
- 通常(但不一定)和 Zabbix server 运行在同一台物理机器上
- 基于 Apache(Nginx) + PHP 实现,早期只支持 LAMP 架构,从 Zabbix5.0 开始支持 LNMP
AGENT
- Zabbix agents 部署在被监控目标上,用于主动监控本地资源和应用程序,并将收集的数据发送给 Zabbix server。从 Zabbix5.0 开始支技 Zabbix Agent2
PROXY
- Zabbix Proxy 可以代替 Zabbix Server 采集性能和可用性数据
- Zabbix Proxy 在 Zabbix 的部署是可选部分
- Zabbix Proxy 的部署可以很好的分担单个 Zabbix server 的负载
Java 网关
- Zabbix 要监控 tomcat 服务器和其它 JAVA 程序,需要使用 Java gateway 做为代理,才能从 JAVA 程序中获取数据
内部配置的数据流程
- Zabbix 内部的数据流对 Zabbix 的使用也很重要。首先,为了创建一个采集数据的监控项,就必须先创建主机。其次,在任务的另外一端,必须要有监控项才能创建触发器(trigger),必须要有触发器来创建动作(action)。因此,如果您想要收到类似“ X 个 server 上 CPU 负载过高”这样的告警, 您必须首先为 Server X 创建一个主机条目,其次创建一个用于监控其 CPU 的监控项,最后创建一 个触发器,用来触发 CPU 负载过高这个动作,并将其发送到您的邮箱里。虽然这些步骤看起来很繁琐,但是使用模板的话,实际操作非常简单。也正是由于这种设计,使得 Zabbix 的配置变得更加灵活易用。
3. Zabbix Server 启动进程
zabbix server 进程说明
Zabbix 服务器端进程有多达二十多种 当在操作系统下用 ps aux 命令来查看时,往往看到很多 zabbix 系统进程,而这些系统进程在 zabbix 内部称为实例。这些实例各处负责不同的工作,就形成了不同种类型的进程),各种类型进程的说明如下:
- 报警器(alerter)——该类型的进程是用来发送报警通知的
- 配置同步器(configuration syncer)——用于将配置文件中的配置信息同步到内存中缓存
- 数据发送器(data sender)——服务器代理节点用于发送数据的进程(服务器端没有这类进程)
- 数据库看门狗(db watchdog)——该进程用于监视 zabbix 系统的数据库状态,当数据库状态变为不可用时,发 送警告信息(服务器代理端不支持这类型进程)。
- 自动发现器(discoverer)——用于自动发现设备的进程
- 步骤(escalator)——用于处理动作中的步骤的进程
- 心跳发送器(heartbeat sender)——服务器代理端用于发送心跳信息(服务器端没有这类型的进程)
- 历史数据同步器(history syncer)——用于写历史数据表
- 管家(housekeeper)——用于清理过期的历史数据的进程
- HTTP 轮询器(http poller)——用于轮询 web 类的监控项目
- Ping 检查器(icmp pinger)——用于定期的进行 ICMP PING 检查
- ipmi 轮询器(ipmi poller)——用于定期进行 ipmi 监控项目的检查
- java 轮询器(java poller)——用于轮询 java 监控项目
- 轮询器(poller)——用于普通的被动监控项目的轮询
- 服务器代理轮询(proxy poller)——用于服务器代理的被动轮询
- 分布式节点看守器(node watcher)——用于在不同的分布式节点发送历史数据和配置信息更新的进程
- 自我监控(self-monitoring)——用于收集 Zabbix 系统内部的监控信息
- 定时器(timer)——用于处理触发器中也时间相关的函数和维护模式的进程
- 陷入器(trapper)——用于处理主动采集、陷入以及分布式节点间或服务器代理的通信
- 不可到达轮询器(unreachable poller)——用于轮询不可到达到的设备
- vmware 收集器(vmware collector)——负责从 vmware 服务进程中收集数据(服务器代理端不支持这种类型的进程)
可用的mode参数包括:
- avg——指定类型所有进程的平均值
- count——返回创建的指定类型进程的数量
- max——最大值
- min——最小值
- ——进程号,含义参见“描述”中所述的;
可用的state参数包括:
- 繁忙(busy)——表示处于繁忙状态的进程;
- 空闲(idle)——表示处于空闲状态的进程;
4. Zabbix 术语
- 被监控: 即 Zabbix 监控的主机或设备
- 监控项 item:即 Zabbix 监控的相关指标,比如:CPU 利用率,内存使用率,TCP 连接数等
- 应用集 Application:为方便管理众多的监控项,可将多个同类型的监控项进行归类,纳入一个集合中, 即应用集
- 触发器 Trigger:是一个表达式,或者说一个条件,如磁盘利用率超过 80% 等,当触发条件后,会导致一个触发事件,这个事件会执行一个或多个动作
- 动作 Action:动作是触发器的条件被触发后的行为,可以是发送一条短信,微信或邮件,或是重启某个服务
- 告警:当触发器和动作二者结合起来时,就构成了的告警机制,比如 cpu 的使用率达到 80% 以上,触发了报警动作,系统将自动发送一封邮件到指定的邮箱。然后运维可以及时的去处理此错误。
- Web 监测:对 WEB 服务进行检测,比如:访问指定网站是否可正常访问
- 模板 Template: 可以方便地应用于多个主机的一组实体的集合。而这些实体包括:
- items(监控项)
- applications(应用集)
- triggers(触发器)
- graphs(图形)
- screens (聚合图形,自Zabbix 2.0起)
- low-level discovery rules (自动发现规则 ,自 Zabbix 2.0 起)
- web scenarios (web 场景, 自 Zabbix 2.0 起)
由于现实中的许多主机是相同或类似的,所以,为一个主机创建的一组实体(项目,触发器,图 形,…)可能对许多人有用。虽然可以将它们复制到每个新的主机上,但过程很繁琐。可以将需要的实体都复制到一个模板,然后根据需要将模板应用于尽可能多的主机。
当模板链接到主机时,模板的所有实体(项目,触发器,图形,…)都将添加到主机。
模板通常用于为特定服务或应用程序(如Apache,MySQL,PostgreSQL,Postfix …)分组实体,然后应用于运行这些服务的主机。
使用模板的另一个好处是当所有主机都需要更改时。只需要在模板上更改某些内容将会将更改应用到所有链接的主机。
创建新模板时,链接的模板选项卡允许将一个或多个“嵌套”模板链接到此模板。所有实体(项目,触发 器,图表等)将从链接的模板继承。
因此,使用模板是减少工作量并简化 Zabbix 配置的好方法。
模板分为内置模板和自定义模板
相关文章:
01.Zabbix 概述
Zabbix 概述 Zabbix 概述1. Zabbix 功能2. Zabbix 架构3. Zabbix Server 启动进程4. Zabbix 术语 Zabbix 概述 运维行业有句话: “无监控、不运维”,监控俗称“第三只眼”。没了监控,基础运维,业务运维都是“瞎子”。 所以说监控是运维这个职…...
MongoDB 数据库简介
MongoDB 数据库简介 引言 随着互联网技术的飞速发展,数据已经成为企业的重要资产。为了高效地管理和处理这些数据,数据库技术应运而生。MongoDB作为一种流行的NoSQL数据库,因其灵活的数据模型和高效的数据处理能力,受到了广泛的关注。本文将为您详细介绍MongoDB的基本概念…...
易基因:RNA甲基化修饰和R-loop的交叉调控:从分子机制到临床意义|深度综述
大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 R-loop(RNA-DNA杂合结构)是转录调控、DNA复制和修复等关键细胞过程的重要组成部分。但R-loop异常积累可能会破坏基因组完整性,从而导致多种疾病的发生…...
八、Spring Boot:RESTful API 应用
创建第一个 Spring Boot RESTful API 应用 在现代 Web 开发中,RESTful API 是一种非常流行的设计风格,它基于 HTTP 协议,提供了简单、灵活的方式来构建网络应用。Spring Boot 作为一款强大的微服务框架,提供了丰富的工具和支持&a…...
NLP的预处理数据
处理文本数据的主要工具是Tokenizer。Tokenizer根据一组规则将文本拆分为tokens。然后将这些tokens转换为数字,然后转换为张量,成为模型的输入。模型所需的任何附加输入都由Tokenizer添加。 如果您计划使用预训练模型,重要的是使用与之关联的…...
取消票证会把指定的票证从数据库中删除,同时也会把票证和航班 等相关表中的关联关系一起删除。但在删除之前,它会先检查当前用户是否拥有这张票
在做航班智能客服问答系统时会遇到取消票证的场景,这里涉及数据库的操作时会把指定的票证从数据库中删除,同时也会把票证和航班等相关表中的关联关系一起删除。但在删除之前,需要先检查当前用户是否拥有这张票,只有票主才有权限取…...
Linux相关知识(文件系统、目录树、权限管理)和Shell相关知识(字符串、数组)
仅供自学,请去支持javaGuide原版书籍。 1.Linux 1.1.概述 Linux是一种类Unix系统。 严格来讲,Linux 这个词本身只表示 Linux内核,单独的 Linux 内核并不能成为一个可以正常工作的操作系统。所以,就有了各种 Linux 发行版&#…...
7种内外网数据交换方案全解析 哪种安全、高效、合规?
内外网数据交换方案主要解决了企业跨网络数据传输中的安全、效率与合规性问题。通过采用先进的加密技术、高效的数据传输协议以及严格的审批和审计机制,该方案确保了数据在内外网之间的安全交换,同时提高了传输效率,并满足了企业对数据合规性…...
深入解析React useEffect与useLayoutEffect:区别、原理与实践
🌌 深入解析React useEffect与useLayoutEffect:区别、原理与实践 在React函数组件中,useEffect和useLayoutEffect是处理副作用的两个核心Hook。它们看似相似,但在执行时机和应用场景上有本质区别。本文将通过原理剖析、对…...
VMware中的linux常用指令
常用 Linux 基础命令 文件与目录操作 ls:查看当前目录的文件和子目录,ls -a显示所有文件,包括隐藏文件。cd:切换目录,如 **cd ~** 切换到个人家目录。pwd:查看当前目录。mkdir:创建文件夹&#…...
基于 Python 的项目管理系统开发
基于 Python 的项目管理系统开发 一、引言 在当今快节奏的工作环境中,有效的项目管理对于项目的成功至关重要。借助信息技术手段开发项目管理系统,能够显著提升项目管理的效率和质量。Python 作为一种功能强大、易于学习且具有丰富库支持的编程语言&…...
【论文学习】DeepSeek-R1 总结
文章目录 Abstract1. Introduction2. Approach2.1. Overview2.2. DeepSeek-R1-Zero: Reinforcement Learning on the Base Model2.3. DeepSeek-R1: Reinforcement Learning with Cold Start2.4. Distillation: Empower Small Models with Reasoning Capability 3. Experiment3.…...
在linux中利用conda安装blast
在 Linux 中使用 conda 安装 BLAST 非常简单。conda 是一个流行的包管理工具,可以轻松安装和管理生物信息学工具,包括 BLAST。以下是具体步骤: 1. 确保已安装 Conda 如果你还没有安装 conda,可以参考以下步骤安装 Miniconda&…...
Siddon算法参数说明及通俗解释
Siddon算法是一种用于快速精确计算三维CT数组中射线路径的算法。以下是该算法中每个参数的含义说明以及整个过程的通俗解释。 一、参数说明 参数含义X1,Y1,Z1射线的起点坐标。X2,Y2,Z2射线的终点坐标。X(a), Y(a), Z(a)射线的参数化表示,其中a是参数&…...
在 Windows 下的 Docker 中安装 R语言
以下是在 Windows 系统的 Docker 中安装 R 语言的详细教程,包括 Docker 的安装、配置以及如何在容器中运行 R 语言的步骤。 步骤 1:安装 Docker 下载 Docker Desktop 访问 Docker 官方网站:Docker Desktop: The #1 Containerization Tool for…...
电子科技大学考研复习经验分享
电子科技大学考研复习经验分享 本人情况:本科就读于电科软院,24年2月开始了解考研,24年3月开始数学,9月决定考本院(开始全天候图书馆学习)并开始专业课学习,11月底开始政治学习,最后…...
python 引用父目录:层级的模块
from pathlib import Path import sys 获取 project 目录 project_dir Path(file).resolve().parent.parent 将 project 目录添加到 sys.path 中 sys.path.append(str(project_dir)) 导入 support 模块 import support support.print_func(“Runoob”)...
git 查询包含某个文件夹的步骤
步骤 1:拉取最新的远程分支信息 确保本地缓存的远程分支信息是最新的: bash 复制 git fetch --all 步骤 2:遍历所有远程分支并检查目标文件夹 使用 git ls-tree 检查每个分支是否包含目标文件夹。以下脚本会列出所有包含 your_folder_pa…...
Linux中的查看命令
路径分为相对路径(行相对当前工作目录开始的路径)和绝对路径(不管是)#:命令提示符,从这个位置可以开始输入命令,另一个提示符为$,如果是root,则提示为#;如果是…...
DeepSeek技术提升,Linux本地部署全攻略
文章目录 1.Ollama部署1.1 安装Ollama1.2 配置Ollama1.3 下载deepseek模型 2.安装MaxKB可视化页面2.1 下载镜像2.2 运行容器2.3 配置MaxKB 3.配置Chatbox AI可视化页面 1.Ollama部署 Ollama下载地址 根据自己需求选择版本下载 1.1 安装Ollama 下载安装脚本并执行 curl -fs…...
在 Mac mini M2 上 MaxKb配置ollama,API域名无效的解决方案
环境说明 docker方案安装与使用的maxkb 本地ollama安装deekseek r1 解决方案 参考https://bbs.fit2cloud.com/t/topic/4165 mac m1用户,根据github的以下回复,成功绑定域名api 如果你想调用本地的ollama 中的大模型,域名试试:…...
使用torch.compile进行CPU优化
在PyTorch中,使用torch.compile可以自动地将模型转换成优化的执行代码,这对于提升模型在CPU上的运行效率尤其有用。torch.compile是基于TorchDynamo实现的,它可以将Python代码转换为高效的TorchScript代码。这对于那些在CPU上运行的大型模型尤…...
Java进阶(vue基础)
目录 1.vue简单入门 ?1.1.创建一个vue程序 1.2.使用Component模板(组件) 1.3.引入AXOIS ?1.4.vue的Methods(方法) 和?compoted(计算) 1.5.插槽slot 1.6.创建自定义事件? 2.Vue脚手架安装? 3.Element-UI的…...
B站pwn教程笔记-3
栈知识、部分保护措施 GDB显示的栈地址有时候并不是可靠的地址,gdb也是用特殊的进程映像来拿地址的。且gdb默认关闭栈地址随机化。但是,偏移量是没有错误的。目前还没学到咋解决 第一个栈帧是main函数栈帧,之前的一些系统函数什么的没有栈帧…...
论文笔记(七十二)Reward Centering(四)
Reward Centering(四) 文章概括摘要附录A 伪代码 文章概括 引用: article{naik2024reward,title{Reward Centering},author{Naik, Abhishek and Wan, Yi and Tomar, Manan and Sutton, Richard S},journal{arXiv preprint arXiv:2405.09999…...
【Python量化金融实战】-第1章:Python量化金融概述:1.1量化金融的定义与发展历程
本小节学习建议:掌握Python编程、统计学(时间序列分析)、金融学基础(资产定价理论)三者结合,是进入量化领域的核心路径。 👉 点击关注不迷路 👉 点击关注不迷路 文章目录 1.1 量化金…...
Java常见设计模式(中):结构型模式
🌈 引言:设计模式就像乐高积木 适配器:让不同形状的积木完美拼接装饰器:给积木添加炫酷灯光效果代理:遥控积木完成复杂动作组合:将小积木搭建成宏伟城堡 结构型模式 主要用于描述对象之间的关系ÿ…...
C#快速调用DeepSeek接口,winform接入DeepSeek查询资料 C#零门槛接入DeepSeek C#接入DeepSeek源代码下载
下载地址<------完整源码 在数字化转型加速的背景下,企业应用系统对智能服务的需求日益增长。DeepSeek作为先进的人工智能服务平台,其自然语言处理、图像识别等核心能力可显著提升业务系统的智能化水平。传统开发模式下,C#开发者需要耗费大…...
Para-Lane: 首个真实世界多车道数据集,目的评估自动驾驶系统中的新型视角合成能力。
2025-02-22,阿里巴巴集团菜鸟自动驾驶实验室和百度研究院共同创建了一个名为 Para-Lane 的真实世界多车道数据集。该数据集目的评估自动驾驶系统中的新型视角合成(NVS)能力,通过提供大量真实世界的数据,弥补了现有合成…...
STM32--SPI通信讲解
前言 嘿,小伙伴们!今天咱们来聊聊STM32的SPI通信。SPI(Serial Peripheral Interface)是一种超常用的串行通信协议,特别适合微控制器和各种外设(比如传感器、存储器、显示屏)之间的通信。如果你…...
