zabbix基础

监控系统基本介绍:

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

运维行业有句话:“无监控、不运维”,监控俗称“第三只眼”。没了监控,什么基础运维,业务运维都是“瞎子”。所以说监控是运维这个职业的根本。尤其是在现在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.mzph.cn/pingmian/9351.shtml

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

相关文章

安全多方计算简介

安全多方计算 安全多方计算(SecureMulti-partComputation,MPC)是80年代提出的一个概念,它已成为隐私计算的核心技术之一。在密码学和区块链技术应用中占据重要地位。 MPC数学定义: 假设存在n个参与方 P 1 , P 2 , … , P n P_1,…

python实现英文短文自动分词写入文本文件

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一.前言 二.代码 三.使用 四.分析 一.前言 英文短文自动分词(Automatic Word Segmentation)在自然语言处理和文本分析中有着广泛的应用。

详解typora配置亚马逊云科技Amazon S3图床

欢迎免费试用亚马逊云科技产品:https://mic.anruicloud.com/url/1333 当前有很多不同的博客社区,不同的博客社区使用的编辑器也不尽相同,大概可以分为两种,一种是markdown格式,另外一种是富文本格式。例如华为云开发者…

深度学习基础之《TensorFlow框架(17)—卷积神经网络》

一、卷积神经网络介绍 1、背景 随着人工智能需求的提升,我们想要做复杂的图像识别,做自然语言处理,做语义分析翻译等等,多层神经网络的简单叠加显然力不从心 2、卷积神经网络与传统多层神经网络对比 (1)传…

MotionDiffuse: Text-Driven Human Motion Generation withDiffusion Model # 论文阅读

URL https://arxiv.org/pdf/2208.15001 主页:https://mingyuan-zhang.github.io/projects/MotionDiffuse.html TD;DR 22 年 8 月商汤的文章,引用量 200。基于 SD,任务是输入文本的动作描述,生成对应的动作序列。 已有的 moti…

windows 10安装 docker desktop

升级 windows 10 windows 10 升级到 20H2,如 20H2 19045.4291。 注意:需返回更新,重启计算机,确保更新完整。 bios 开启虚拟化 开启cpu虚拟化功能。 windows 启用功能 启用hyper-v 启用 wsl 安装 wsl https://learn.microso…

【环境配置】vsCode 中使用 conda 配置虚拟环境

文章目录 准备前言在 vsCode 中直接创建创建步骤测试更新环境 使用 Anaconda 建立虚拟环境创建步骤在 vsCode 中选择环境 总结 准备 在看本博客之前,希望大家有以下知识储备: 能够正确安装 vsCode,并配置好 python 环境;了解并安…

一觉醒来 AI科技圈发生的大小事儿 05月09日

📳AlphaFold 3 重磅问世,全面预测蛋白质与所有生命分子相互作用及结构,准确性远超以往水平 Google DeepMind发布了AlphaFold3模型,能够联合预测蛋白质、核酸、小分子等复合物结构,准确性显著提高,对跨生物…

Flask SQLAlchemy 技术指南

文章目录 什么是 Flask SQLAlchemy?安装 Flask SQLAlchemy创建 Flask 应用和数据库模型添加和查询数据运行 Flask 应用总结**数据库迁移(Database Migrations)****复杂查询****关系模型****事务处理****性能优化****安全性****扩展功能** Fla…

深化产教融合,泰迪智能科技助力西南林业大学提质培优

2024年5月7日,泰迪智能科技昆明分公司院校部总监查良红和数据部负责人余雄亮赴西南林业大学理学院就工作室共建事宜进行交流会谈。西南林业大学理学院院长张雁、党委副书记魏轶、副院长谢爽、就业负责人罗丽及学生代表参与本次交流会。 会议伊始,谢副院长…

邮件大附件系统如何进行安全、高效的大附件发送?

邮件大附件系统是一套解决传统电子邮件系统,在发送大文件时遇到限制的解决方案。由于传统电子邮件系统通常对附件大小有限制,这使得发送大文件变得困难。邮件大附件系统通过各种技术手段,允许用户发送超过传统限制的大文件,通常在…

07-面向对象编程(基础部分)

学习java最核心最重要的就是要理解面向对象。 1. 类与对象 1.1 介绍 类是抽象的,概念的,代表一类事物,比如人类,猫类,狗类.., 即它是数据类型。 对象是具体的,实际的,代表一个具体事物,&…

Leetcode227. 基本计算器 II

Every day a Leetcode 题目来源&#xff1a;227. 基本计算器 II 解法1&#xff1a;单栈模拟 因为没有括号&#xff0c;所以可以简化成单栈。 代码&#xff1a; class Solution { public:int calculate(string s){vector<int> nums;char preSign ;int num 0;int n …

Android 系统版本与SDK API对应关系-2024.5

官网地址&#xff1a;https://developer.android.google.cn/tools/releases/platforms?hlth

经典分类网络LeNet5和VGG16项目:实现CIFAR10分类

CIFAR10分类 v1&#xff1a;LeNet5&#xff1a;2cnn3fc 可视化结果 精确率 损失 最佳 v2&#xff1a;LeNet5&#xff1a;3cnn2fc 可视化结果 精确率 损失 最佳 v3&#xff1a;LeNet5&#xff1a;2cnnbnres3fc 可视化结果 精确率 损失 最佳 v4&#xff1a;VG…

Sarcasm detection论文解析 |基于语义知识和辅助信息增强讽刺检测方法

论文地址 论文地址&#xff1a;https://www.sciencedirect.com/science/article/abs/pii/S0306457322000139?via%3Dihub 论文首页 笔记框架 基于语义知识和辅助信息增强讽刺检测方法 &#x1f4c5;出版年份:2022 &#x1f4d6;出版期刊:Information Processing & Managem…

如何把公章盖在电子档文件上?

将公章盖在电子档文件上&#xff0c;尤其是确保其法律效力和安全性&#xff0c;通常涉及以下步骤&#xff1a; 准备工作 获取合法的电子公章&#xff1a;确保你拥有公司或机构正式授权的电子公章图像&#xff0c;且该图像经过了必要的加密或数字签名处理&#xff0c;以确保其…

使用海外云手机为亚马逊店铺引流

在全球经济一体化的背景下&#xff0c;出海企业与B2B外贸企业愈发重视海外市场的深耕&#xff0c;以扩大市场份额。本文旨在探讨海外云手机在助力亚马逊店铺提升引流效果方面的独特作用与优势。 海外云手机&#xff0c;一种基于云端技术的虚拟手机&#xff0c;能够在单一硬件上…

let命令

let 命令 let 与 var 二者区别&#xff1a; 作用域不同&#xff1a;变量提升&#xff08;Hoisting&#xff09;&#xff1a;临时性死区重复声明&#xff1a; 联系&#xff1a;举例说明&#xff1a; 块级作用域 块级作用域的关键字使用 var&#xff08;无块级作用域&#xff09;…

JavaScript手写专题——图片懒加载、滚动节流、防抖手写

图片懒加载场景&#xff1a;在一些图片量比较大的网站&#xff08;比如电商网站首页&#xff0c;或者团购网站、小游戏首页等&#xff09;&#xff0c;如果我们尝试在用户打开页面的时候&#xff0c;就把所有的图片资源加载完毕&#xff0c;那么很可能会造成白屏、卡顿等现象&a…