zabbix基础

news2024/10/4 13:45:36

监控系统基本介绍:

企业级应用中,服务器数量众多,一般情况下需要维护人员进行长时间对服务器体系、计算机或其他网络设备(包括硬件和软件)进行长时间进行性能跟踪,保证正常稳定安全的运行,于是有了监控系统。

运维行业有句话:“无监控、不运维”,监控俗称“第三只眼”。没了监控,什么基础运维,业务运维都是“瞎子”。所以说监控是运维这个职业的根本。尤其是在现在DevOps这么火的时候,用监控数据给自己撑腰,这显得更加必要,有人说运维是背锅侠,那么,有了监控,有了充足的数据,一切以数据说话,运维还需要背锅吗,所以作为一个运维工程师,如何构建一套监控系统是你的第一件工作。

监控功能

在需要的时刻,提前预警即将出问题,避免故障发生实时监控系统和业务,当出问题之后,通过发出告警,提醒相关人员,快速可以找到问题的根源,从而及时处理问题,可以实现网站,应用或者服务器的故障自愈, 保证高可用性以图形或易观察的方式呈现当前以及过往的状态,便于分析和预测系统发展趋势

开源监控软件:cacti(监控snmp协议,流量数据)、nagios(报警系统,支持多种插件)、zabbix(支持分布式,故障自愈)、smokeping(Windows监控系统)、open-falcon(小米猎鹰)、滴滴夜莺Nightingale、Prometheus(容器和云莺监控)等

商业监控方案:http://ping.chinaz.com/     站长之家

https://www.jiankongbao.com/ 监控宝

https://www.toushibao.com/ 透视宝

https://www.tingyun.com/ 听云

监控的从业务角度,从上到下

①:业务监控(监控pv量、业务指标等)

②:应用监控

③:操作系统监控

监控模式:

①:IPMI:基于硬件的监控模式,基于IPMI,对硬件的本身做监控

②:SNMP:网络数据监控,可以监控防火墙,路由器

③:agent:普通监控模式,代理端(server-agent),被监控主机都需装agent

④:Proxy:分布式监控,每个proxy都有自己的存储体系,如:MySQL,Pgsql

⑤:API:第三方API,实现其他类型的监控

Zabbix基本介绍

Zabbix 是一个企业级解决方案,支持实时监控数千台服务器,虚拟机和网络设备,采集百万级监控指标。Zabbix 完全开源免费。

Zabbix 的主要特点有:

指标收集:从任何设备、系统、应用程序上进行指标采集

问题监测:定义智能阈值(安全线)

可视化:单一界面管理平台(UI界面统一页面管理)

告警和修复:确保及时、有效的告警

安全和认证:保护您所有层级的数据

轻松搭建部署:大批模板,开箱即用,节省您宝贵的时间

自动发现:自动监控大型动态环境

分布式监控:无限制扩展

ZABBIX API :将 Zabbix 集成到您 IT 环境的其他任何部分

Zabbix完整监控流程:

首先在被监控端安装agent应用程序,让它作为zabbix的被监控端。那么装了zabbix的被监控端就有数据采集的能力,它们会基于主动模式或者被动模式,将对应的历史数据,或者是趋势数据直接传输到zabbix服务端,其服务端会将数据进行汇集,将历史数据存储到数据库,并且会关联它的认证权限系统,将对应的趋势数据放到数据展示区,基于特定的数据格式UI展示出来。同时将其对应的数据汇集到告警策略区,一旦涉及到数据指标超阈值的行为,会触发告警策略,然后会关联到用户管理系统,认证权限系统,媒介系统,动作系统;然后将其发送告警,发送告警会关联后面的告警媒介,基于邮件、微信、电话短信来进行告警。同时将告警的event事件存储到事件管理器,在组合面板控制区展示出来。最后故障修复之后,事件管理器会重新定义事件,将对应修复的故障将其移除。

Zabbix的主要功能:

Zabbix采集到的数据分类

1:历史数据:每一个收集到的监控数据

2:趋势数据(绘图数据)

SNMP(包括主动轮询和被动捕获)、IPMI、JMX、VMware 监控

灵活的阈值定义

可以参考后端数据库定义非常灵活的告警阈值,即触发器

高度可配置化的告警

可以根据递增计划、接收者、媒介类型自定义发送告警通知;

使用宏变量可以使告警通知变得更加高效有用;

自动操作包含远程执行命令(基于root用户)。

实时图形

使用内置图形功能可以将监控项实时绘制成图形。 Web 监控功能 Zabbix可以追踪模拟鼠标在 Web 网站上的点击操作,来检查 Web 网站的功能和响应时间。

丰富的可视化选项

可以组合多个监控项到单个视图中,创建自定义图表;

网络拓扑图;

以仪表盘样式展示自定义聚合图形和幻灯片演示;

报表;

监控资源的更高层次展示视图(业务视图)。

历史数据存储

存储在数据库中的数据;

历史配置;  https://www.zabbix.com/documentation/5.0/zh/manual/introduction/features

内置数据管理机制

配置简单

将被监控设备添加为主机;

主机一旦添加到数据库中,就会采集数据用于监控;

将模板用于监控设备。

使用模板

模板中分组检查;

模板可以关联模板,继承已关联模板的属性。

网络发现

自动发现网络设备;

Zabbix Agent 发现设备后自动注册;

自动发现文件系统、网络接口和 SNMP OIDs 值。

快捷的 Web 界面

基于 PHP 的 Web 前端;

可以从任何地方访问;

可以定制自己的操作方式;

可以通过审计日志来查看你的操作。

Zabbix API

Zabbix API 为 Zabbix 提供可编程接口,用于批量操作、第三方软件集成和其他用途。

权限管理系统

安全的用户身份验证;

指定的用户只能查看指定的权限范围内的视图。

功能强大且易于扩展的 Zabbix Agent

部署于被监控对象上;

支持 Linux 和 Windows

二进制守护进程

为了更好的性能和更少的内存占用,采用 C 语言编写;便于移植。

适应更复杂的环境

使用 Zabbix Proxy 代理,可以轻松实现分布式远程监控

Zabbix架构

首先zabbix支持多种模式 ,它支持zabbix-server到zabbix-agent模式,也支持zabbix-server到zabbix-proxy模式。架构是zabbix-server同时关联多个zabbix agent,将zabbix agent对应的历史数据和趋势数据存储到它对应的database中,然后再通过zabbix-web端,也就是nginx展示出来。其次如果zabbix要支持proxy代理模式,那么我们只需要授权zabbix proxy,让其监听在特定的端口。而proxy会独立的管理下属zabbix agent,并将zabbix agent对应的数据,独立存储到proxy的database里面去。作为 zabbix server只是遥控zabbix proxy ,将其zabbix proxy 收集到的指标对应的数据,放到其zabbix server对应的zabbix web的图表展示区,zabbix server并没有存储各个代理节点数据库的功能。

同时zabbix还支持java的指标数据库监控,但其有一个缺点,因为zabbix是基于php体系开发的,不支持java的技术体系,而java技术体系是基于类和对象的方式来抽象组织数据。zabbix基于fastcgi来管理其对应的数据管理协议。也就是说zabbix在做绘图处理数据指标收集的时候,它的数据传递模式默认是基于fastcgi,但是java不支持fastcgi。为了去收集图表化展示的java数据,我们必须让java应用支持fastcgi,于是我们需要安装一个JMX的一个类(Java只要安装了jdk/jre,都支持JMX类,JMX就是面向监控系统的统一调用接口的API,有了这个API,就说明java的所有应用体系都支持zabbix的监控,但是要关联其fastcgi对应的接口,所以我们需要java getway这个网关将其抽象为fastcgi接口),也就是说一旦zabbix关联的javagetway,并且将java技术体系内部所有的应用程序支持javagetway,将其绑定起来。这时候我们基于JMX这个类收集到的指标就可以被zabbix-server所支持,最终可以被图表展示出来。

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 的配置变得更加灵活易用。

Zabbix 术语

被监控: 即 Zabbix 监控的主机或设备

监控项item:即 Zabbix 监控的相关指标,比如:CPU利用率,内存使用率,TCP连接数等

应用集Application:为方便管理众多的监控项,可将多个同类型的监控项进行归类,纳入一个集合中,即应用集

触发器Trigger:是一个表达式,或者说一个条件,如磁盘利用率超过80%等,当触发条件后,会导致一个触发事件,这个事件会执行一个或多个动作

动作Action:动作是触发器的条件被触发后的行为,可以是发送一条短信,微信或邮件,或是重启某个服务

告警:当触发器和动作二者结合起来时,就构成了的告警机制,比如cpu的使用率达到80%以上,触发了报警动作,系统将自动发送一封邮件到指定的邮箱。然后运维可以及时的去处理此错误。

Web 监测:对WEB服务进行检测,比如:访问指定网站是否可正常访问

模板 Template: 可以方便地应用于多个主机的一组实体的集合。而这些实体包括:

items(监控项)

applications(应用集)

triggers(触发器)

graphs(图形)

screens (聚合图形,自Zabbix 2.0起)

陷入器(trapper)——用于处理主动采集、陷入以及分布式节点间或服务器代理的通信

不可到达轮询器(unreachable poller)——用于轮询不可到达到的设备

vmware 收集器(vmware collector)——负责从vmware服务进程中收集数据(服务器代理端不支持这种类型的进程);

可用的mode参数包括:

avg——指定类型所有进程的平均值

count——返回创建的指定类型进程的数量

max——最大值

min——最小值

——进程号,含义参见“描述”中所述的;

可用的state参数包括:

繁忙(busy)——表示处于繁忙状态的进程;

空闲(idle)——表示处于空闲状态的进程;

low-level discovery rules (自动发现规则 ,自Zabbix 2.0起)

web scenarios (web场景, 自Zabbix 2.0起)。

 zabbix的安装和基本操作

Zabbix 安装要求

https://www.zabbix.com/documentation/6.0/zh/manual/installation/requirements

https://www.zabbix.com/documentation/5.0/zh/manual/installation/requirements

https://www.zabbix.com/documentation/4.0/zh/manual/installation/requirements

安装 Zabbix Server

Zabbix Server 安装方法介绍

二进制包安装: 官方提供了二进制包安装的方法,可以支持CentOS和Debian/Ubuntu的安装

源码编译安装: 部署繁琐,生产环境定制安装可以使用

基于容器安装: 测试环境使用

zabbix配置文件详解:

zabbix server配置文件/etc/zabbix/zabbix_server.conf

zabbix agent配置文件/etc/zabbix/zabbix_agentd.conf

zabbix  监听端口

  10051:server

  10050:agent

  10052:java gateway

日志文件所在路径

zabbix配置文件详解

日志到500M自动滚动

日志级别

默认pollers进程(预启动多少个实例数量)

预启动多少进程用于处理zabbix agent数据

启动多少进程用于检测不可达主机的运行状态

启动多少Ping进程(若检测网络设备多,可以多调)

启动多少http进程用于前端接收web页面的处理

进程的初始实例数量,用于处理动作中的自动同步步骤的进程的数量。实战环境要调

是否开启SNMP检测进程

每隔多少小时清理一次代理端数据库的history数据

每次最多删除历史数据的行数

监控缓存数量调整,根据实际内存来决定

内存缓存的数据更新周期,单位为秒

数据同步进程数量

历史数据缓存

历史数据索引缓存的大小

设置划分系统多少共享内存用于存储计算出来的趋势数据,此值可能影响数据库的压力

内存大可以多调

历史数据缓存值共享内存的大小。

获取监控数据的超时时长

当主机不可用了,多久检查一次该主机的可用性,单位为秒

监控网络设备的命令行工具

慢查询日志,单位为毫秒

开启多少proxy代理进程,用于搜集proxy代理监控数据

proxy被动模式下,server多少秒同步配置文件至proxy。

被动模式下,zabbix server间隔多少秒向proxy请求历史数据

zabbix对其他主机进行监控

在agent主机上安装zabbix-agent,并启动agent。

vim /etc/zabbix/zabbix_agentd.conf

systemctl enable --now zabbix-agent

zabbixtomcat进行监控

tomcat基于java体系,zabbix-server需要安装java-gateway中间系统才能对后台tomcat进行监控

同时需要在tomcat内开启JMX监控

CATALINA_OPTS="$CATALINA_OPTS

-Dcom.sun.management.jmxremote #启用远程监控JMX

-Dcom.sun.management.jmxremote.port=12345 #默认启用的JMX端口号,要和zabbix添加主机时候的端口一致即可

-Dcom.sun.management.jmxremote.authenticate=false  #不使用用户名和密码

-Dcom.sun.management.jmxremote.ssl=false #不使用ssl认证

-Dcom.rmi.server.hostname=192.168.10.120"

 在zabbix server端需要安装zabbix-java-gateway

yum -y install zabbix-java-gateway

对zabbix-java-gateway进行配置

vim /etc/zabbix/zabbix_java_gateway.conf

systemctl start zabbix-java-gateway

同时对zabbix server进行配置

然后在zabbix的监控页里取配置主机对应的模板

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1669649.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Bean的生命周期 五步 七步 十步 循序渐进

👨‍🏫 参考视频地址 💖 五步版 实例化 bean(构造方法)属性注入(set() 方法)初始化方法(自定义)使用bean销毁方法(自定义) 💖 七步版…

轨迹规划 | 图解纯追踪算法Pure Pursuit(附ROS C++/Python/Matlab仿真)

目录 0 专栏介绍1 纯追踪算法原理推导2 自适应纯追踪算法(APP)3 规范化纯追踪算法(RPP)4 仿真实现4.1 ROS C仿真4.2 Python仿真4.3 Matlab仿真 0 专栏介绍 🔥附C/Python/Matlab全套代码🔥课程设计、毕业设计、创新竞赛必备!详细介绍全局规划…

Embedding技术学习

可能很多人并没有关注Embedding技术,但实际上它是GPT非常重要的基础,准备的说,它是GPT模型中理解语言/语义的基础。 【解释什么是Embedding】 对于客观世界,人类通过各种文化产品来表达,比如:语言&#x…

上下左右翻转照片以及标注信息扩充数据集

目录 前言: 示例项目数据结构: 源代码: 运行代码后生成的项目结构: 效果: 前言: 使用yolo训练模型时,遇到数据集很小的情况(一两百张),训练出来的模型效…

部品图纸管理系统-部品图纸管理系统推荐

部品图纸管理系统-部品图纸管理系统推荐: 彩虹图纸管理系统是一种专门用于管理部品图纸和相关文档的软件系统。该系统旨在提供一个集中、协同、统一和高效的平台,以便企业能够轻松地存储、组织、查询、审批和共享部品图纸。 以下是彩虹图纸管理系统通常具…

关于【python中启动web服务后发送post请求时报错“500 Internal Server Error”的问题】

关于【python中启动web服务后发送post请求时报错“500 Internal Server Error”的问题】 问题描述 在原有的conda虚拟环境中运行项目的web服务时运行正常,换到一个配置好的新的虚拟环境中运行同样的项目代码时就报错“500 Internal Server Error”。 解决方案&…

Request请求数据 (** kwargs参数)

目录 🌟前言🍉request入门1. params2. data3. json4. headers5. cookies6. auth7. files8. timeout9. proxies10. allow_redirects11. stream12. verify13. cert 🌟总结 🌟前言 在Python中,发送网络请求是一项常见的任…

企业微信hook接口协议,ipad协议http,同步消息记录

同步消息记录 参数名必选类型说明uuid是String每个实例的唯一标识,根据uuid操作具体企业微信limit是int每次返回大小seq是int查询下标 请求示例 {"uuid":"ecb033af-6fcd-4ec2-880e-41f070b65eaf","limit":1000, "seq":1…

led灯哪个品牌质量好?分享五款耐用又护眼的护眼台灯

led灯哪个品牌质量好?在LED照明日益普及的今天,选择一款质量上乘、耐用且护眼的LED台灯显得尤为重要。本文将为大家推荐五款备受好评的护眼台灯品牌,这些品牌凭借其卓越的照明效果、舒适的视觉体验以及优质的售后服务,成为了市场上…

根据特定条件在列表中加一列操作,符合此条件时此列才会展示

我们想要列表中有一列数据在A环境打开是显示的,在B环境打开则不显示,这里B环境表示为默认环境 1、不能直接用环境判断加在列表的前面,否则其他环境会出现空格情况 constructor(props) {super(props)const columns [{ title: 姓名, dataInd…

英语口语打分和纠正的开发引擎

英语口语打分和纠正的开发引擎包括但不限于以下几种,这些引擎利用了深度学习、大数据分析等先进技术,能够对发音准确度、流利度、完整度、韵律特征等进行全方位评价和纠正。开发者可以根据自己的需求选择合适的引擎进行集成,以提升英语口语学…

PSO-SVM多变量回归预测|粒子群算法优化支持向量机|Matalb

目录 一、程序及算法内容介绍: 基本内容: 亮点与优势: 二、实际运行效果: 三、算法介绍: 四、完整程序下载: 一、程序及算法内容介绍: 基本内容: 本代码基于Matlab平台编译&am…

【Tello无人机】实物轨迹跟踪控制

上一篇介绍了Tello无人机仿真环境中的飞行控制,本篇将介绍tello无人机在物理系统中的轨迹跟踪,实现实物无人机的速度控制。本文采用的无人机为Tello TT,TELLO Talent由飞行器和拓展配件两部分组成。飞行器配备视觉定位系统,并集成…

618有哪些值入手的好物?盘点618值得选购好物清单

马上就要618大促了,要说618期间优惠力度最大的那肯定还是家电、数码这一类型的,下面就给大家整理了几款值得入手的家电数码好物! 好物推荐一、西圣Mike无线领夹麦克风 真的强烈推荐西圣Mike无线领夹麦克风!市场上某些制造商可能…

hadoop yarm你知道吗?

一、概念 Hadoop YARN(Yet Another Resource Negotiator)是Hadoop 2.x版本中的一个重要组件,用于资源管理和作业调度。它是Hadoop的第二代资源管理器,取代了Hadoop 1.x版本中的MapReduce作业调度器。 通俗地理解它的作用有点像一…

如何训练一个大模型:LoRA篇

目录 写在前面 一、LoRA算法原理 1.设计思想 2.具体实现 二、peft库 三、完整的训练代码 四、总结 写在前面 现在有很多开源的大模型,他们一般都是通用的,这就意味着这些开源大模型在特定任务上可能力不从心。为了适应我们的下游任务,…

高效快速 推荐这款服务器同步软件

服务器数据同步是为了确保在不同的服务器或数据中心之间能够保持数据的一致性和可用性,选择一款合适的服务器同步软件,可确保数据完整性、提高服务质量和满足业务需求的重要手段。 服务器数据同步的痛点主要包括: 1、数据一致性:…

SQL-递归查询

运行环境: Mysql8以上,递归查询功能在8以上版本被正式引入 一、SQL递归查询的概念 递归指的是通过调用函数或过程或自身来解决问题的方法,常用于一些具有规律性循环的操作。SQL递归查询是基于一组初始数据,通过递归查询&#xf…

Redis继续(黑马)

Redis持久化 RDB与AOF RDB记录是二进制数据,Redis停机时会触发保存,名称: dump.rdb 缺点:间歇式复制可能存在宕机数据更新丢失 AOF 记录的写操作命令,每秒记录一下,也存在数据更新丢失的可能,相…

【class6】人工智能初步(选择一个合适的监督学习算法。)

【昨日内容复习】 进行监督学习时,第一个步骤是提取数据集的文本特征和对应的标签。 提取文本特征的具体步骤如下: STEP1. 构造词袋模型,提取数据集中的文本特征 STEP2. 使用toarray()函数,将X转换为一个NumPy数组,方…