Zabbix和Prometheus

news2024/11/23 23:11:41

1.Zabbix

1.1 Zabbix监控获取数据的方式

zabbix-agent 适用于服务器,主机监控
SNMP协议 适用于网络设备(交换机、路由器、防火墙)
IPMI协议 适用于监控硬件设备信息(温度、序列号)
JMX协议 适用于Java应用监控

1.2 Zabbix server部署

添加epel源、添加Zabbix镜像仓库、下载数据库
在数据库创建Zabbix需要的表、授权用户
编辑zabbix server 配置文件,指定数据库连接

1.3 Zabbix-agent监控的三种方式

链接模板
利用自带的key监控数据
自定义key监控数据

1.3.1 常用的key

监控网卡流量
net.if.in[if,]
⇒ net.if.in[eth0,errors]
⇒ net.if.in[eth0]
监控TCP服务状态
net.tcp.listen[port]
⇒ net.tcp.listen[80]

监控UDP服务状态
net.udp.listen[port]
=> net.udp.listen[123]

进程数量
proc.num[,]
⇒ proc.num[]
⇒ proc.num[redis_server,]
⇒ proc.num[nginx,www]
=> proc.num[,zomb]

进程所消耗的内存
proc.mem[,]
=> proc.mem[httpd]

进程所消耗的CPU使用率
proc.cpu.util[,]
=> proc.cpu.util[httpd]

磁盘空间
vfs.fs.size[fs,]
=> vfs.fs.size[/webdata, free]

内存大小
vm.memory.size[]
=> vm.memory.size[free]

文件内容变化
vfs.file.cksum[file]
⇒ vfs.file.cksum[/etc/passwd]

1.3.2 自定义key监控

在被监控端, 注意:命令、脚本只能返回一个结果
UnsafeUserParameters=1
UserParameter=,

1.4 zabbix分布式监控

被监控主机数量过多时,通过zabbix proxy代理来缓解server的压力负载

监控远程位置,解决跨机房
监控主机多,性能跟不上,延迟大
解决网络不稳定
在这里插入图片描述

1.4.1 zabbix proxy部署

创建Proxy需要的库,导入表
编辑zabbix proxy配置文件、指定数据库连接

2.Zabbix相关问题

Zabbix监控的优缺点有哪些
优点:开源、无软件成本、server端对设备性能要求低、支持的设备多,自带多种监控模板、能实现自动化监控、开放式接口,扩展性强。

缺点:需在被监控主机上安装agent, 所有数据都存在数据库里,产生的数据量很大,瓶颈主要在数据库。

Zabbix分布式监控有什么优点?
缓解服务器压力,提高可用性和灵活性,减少网络负载,提高监控系统的性能和效率,更好的处理大量的监控数据。

zabbix的分布式监控有什么作用?
部署Proxy是可选的,,但是可能非常有益于分散单个Zabbix sever的负载。 如果只有proxy收集数据,sever上的进程就会减少CPU消耗和磁盘I / O负载。

3.Prometheus

  • Prometheus Server

Prometheus 生态最重要的组件,主要用于抓取和存储时间 序列数据,同时提供数据的查询和告警策略的配置管理。

  • Alertmanager
    Prometheus 生态用于告警的组件,Prometheus Server 会将告警发送给 Alertmanager,Alertmanager 根据路由配置,将告警信息发送给指定的人或组。Alertmanager 支持邮件、Webhook、微信、钉钉、短信等媒介进行告警通知
  • Grafana

用于展示数据,便于数据的查询和观测。

  • Push Gateway

Prometheus 本身是通过 Pull 的方式拉取数据,但是有些监控数 据可能是短期的,如果没有采集数据可能会出现丢失。Push Gateway 可以用来 解决此类问题,它可以用来接收数据,也就是客户端可以通过 Push 的方式将数据推送到 Push Gateway,之后 Prometheus 可以通过 Pull 拉取该数据。

  • Exporter

主要用来采集监控数据,比如主机的监控数据可以通过 node_exporter 采集,MySQL 的监控数据可以通过 mysql_exporter 采集,之后 Exporter 暴露一 个接口,比如/metrics,Prometheus 可以通过该接口采集到数据

  • PromQL

PromQL 其实不算 Prometheus 的组件,它是用来查询数据的一种语法,比如查询数据库的数据,可以通过SQL语句,查询Loki的数据,可以通过LogQL,查询 Prometheus 数据的叫做 PromQL

  • Service Discovery

用来发现监控目标的自动发现,常用的有基于 Kubernetes、 Consul、Eureka、文件的自动发现等。
在这里插入图片描述

4.Prometheus相关问题

1. Prometheus 是什么?它有哪些主要功能?
Prometheus 是一个开源的系统和服务监控工具集,用于收集、存储和查询各种指标数据。它具有强大的数据模型、灵活的查询语言(PromQL)、不依赖分布式存储并且通过拉模式(Pull)和推模式(Push)收集时间序列数据。
2. Prometheus 的工作流程是怎样的?
Prometheus 通过定时拉取(Pull)或服务推送(Push)的方式,从被监控的目标(如服务器、服务等)收集指标数据,然后将这些数据存储在本地的时序数据库中,用户可以通过 Prometheus 的 Web UI 或 API 进行数据查询和可视化。
3. Prometheus 的组件有哪些?
主要组件包括 Prometheus 服务器、Alertmanager、Exporters、Pushgateway 等。
4. Prometheus 的监控数据是如何采集的?
Prometheus 主要通过拉模式(Pull)来采集监控数据,它也可以通过 Pushgateway 来接收服务推送的监控数据。
5. Prometheus 的查询语言 PromQL 是什么?
PromQL(Prometheus Query Language)是 Prometheus 使用的一种强大的查询语言,用于查询和聚合时间序列数据。
6. Prometheus 有哪些高可用方案?
高可用方案包括使用 Prometheus-operator 进行集群管理,以及设置多个 Prometheus 实例进行数据复制等。
7. Prometheus 是如何处理告警的?
Prometheus 通过 Alertmanager 组件来处理告警,它可以对 Prometheus 的告警规则进行管理和路由,支持多种通知方式。
8. Prometheus 的局限是什么?
例如,Prometheus 不支持多维数据模型,它的数据保留策略相对固定,且在处理高基数的监控数据时可能会遇到性能问题。
9. Prometheus 如何监控 Kubernetes 集群?
通过使用特定的 Exporters 如 kube-state-metrics 和 node-exporter,以及集成 Prometheus-operator 来实现对 Kubernetes 集群的监控。10. Prometheus 的容量规划是如何进行的? -

5.Zabbix和Prometheus的区别

1、Zabbix基于C语言开发,它可以用于服务器、操作系统、网络、应用程序等目标对象监控。在监控和数据收集的方式上,可支持zabbix agent、SNMP、ping、端口监控等多种方式。
agent用于部署在目标机器上,并提供数据指标给到server,它们之间基于TCP协议进行通信。
agent支持被动轮询与主动推送模式,被动模式下由server定时向agent端发起请求,agent会处理请求并将值返回给到server端。而在主动推送下,则是由agent定时向server端发送结果。
Zabbix使用外部数据库来存储数据,目前支持的数据库有MySQL、PostgreSQL、Oracle等。在存储的数据类型上,Zabbix除key-value格式外,还支持文本、日志等格式。
zabbix在查询方面功能较弱,只能通过Web界面做一些有限度的操作,或者直接到数据库使用SQL进行查询。
与可视化情况一样,Zabbix内置了告警功能,并支持多种介质的发送。Zabbix 警报系统允许以不同的方式管理事件:发送消息、执行远程命令、根据服务级别升级问题等。

更适用于传统业务架构的物理机、虚拟机环境的监控,对容器的支持比较差;数据存储主要采用的是关系型数据库,会随着被监控节点数量的增加,关系型数据库的压力也会变大,监控数据的读写也会变慢;对大规模集群监控的性能比Prometheus要弱一些,可适用于单集群不超过2000台节点的场景。

2、Prometheus基于Go语言,只专注于监控的功能并提供简单Web界面供用户查询;
基于客户端进行数据的收集,Server端会定时与客户端进行交互,并通过pull方式获取相关的监控指标。
基于HTTP进行通信,这使得与其他工具的集成变得简单,任何组件只要提供对应的HTTP接口就可以接入监控。
Prometheus将数据存储在内置的时间序列数据库(TSDB)中,该数据库相比关系型数据库可以较大的节省存储空间,并且拥有更高的处理效率,能够快速搜索出复杂的结果。
Prometheus在查询方面要比Zabbix强大得多。Prometheus提供了自带的查询语言PromQL,该语言非常灵活、简洁且功能强大,可以与函数和运算符配合,进行计算、过滤、分组等操作,同时支持正则表达式。
在告警上,Prometehus需要与Alertmanager结合使用。因为Prometheus的告警分为两部分,在Prometheus Server端定义告警规则,当触发规则时则会发送到Alertmanager,并由其发送给对应的接收人。

能支持云环境、K8S容器集群的监控,是目前容器监控最好的解决方案;数据存储采用的是时序数据库,大大的节省存储空间,还能提升查询效率;单集群能支持的节点规模更大,通常超过2000台节点、业务服务数量大于1000个的时候建议直接上Prometheus。

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

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

相关文章

基于SSM+微信小程序的跑腿平台管理系统(跑腿3)(源码+sql脚本+视频导入教程+文档)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于SSM微信小程序的跑腿平台管理系统实现了管理员、接单员及用户三个角色。 1、管理员实现了首页、个人中心、管理员管理、基础数据管理、接单详情、跑腿任务管理等。 2、接单员实现了…

C++ TinyWebServer项目总结(14. 多线程编程)

早期Linux不支持线程,直到1996年,Xavier Leroy等人开发出第一个基本符合POSIX标准的线程库LinuxThreads,但LinuxThreads效率低且问题多,自内核2.6开始,Linux才开始提供内核级的线程支持,并有两个组织致力于…

离线环境下的 Prometheus 生态部署攻略

一、前言 在当今高度数字化的世界中,监控系统的稳定性和可靠性对于确保业务连续性和性能优化至关重要。特别是在网络隔离或无互联网接入的局域网环境下,离线部署监控解决方案成为了一种必要且挑战性的任务。本文将深入探讨如何在离线环境中成功部署 Pro…

深圳保障房、商品房、小产权房子类型对比

摘要: 整理了我认知以内的深圳房子类型,有安居房,可售人才房,共有产权房、配售型保障房、商品房、统建楼、农民房的区别。如果数据存疑,可以多方对比论证,我也主要靠百度。 我发现我很多同事是非深户&#…

秋招突击——算法练习——8/26——图论——200-岛屿数量、994-腐烂的橘子、207-课程表、208-实现Trie

文章目录 引言正文200-岛屿数量个人实现 994、腐烂的橘子个人实现参考实现 207、课程表个人实现参考实现 208、实现Trie前缀树个人实现参考实现 总结 引言 正文 200-岛屿数量 题目链接 个人实现 我靠,这道题居然是腾讯一面的类似题,那道题是计算最…

《分析模式》2024中译本-前言-01(加红色标注)

写在前面 今天开始,我们逐渐发布一些《分析模式》2024中译本的译文。 红色字体标出的文字,表示我认为之前的译本可能会让读者产生误解的地方。 感兴趣的读者,可以对照之前译本以及原文,捉摸一下为什么要标红。 主要原因当然是…

基于SpringBoot+Vue+MySQL的小区物业管理系统

系统背景 在当今信息化高速发展的时代,小区物业管理正经历着从传统模式向智能化、高效化转型的深刻变革。这一转变的核心驱动力,正是小区物业管理系统的全面智能化升级。该系统不仅极大地提升了物业管理的效率与精确度,还深刻重塑了物业与业主…

数分基础(03-1)客户特征分析

文章目录 客户特征分析1. 数据集2. 思路与步骤2.1 特征工程2.2 识别方法2.3 可视化 3. 分析准备3.1 读取数据集3.2 识别不同客户群体3.2.1 使用K-Means聚类进行初步细分3.2.2 关于聚类方法(1)特征缩放1)平衡特征对模型的影响力,避…

通过ICMP判断网络故障

一、ICMP协议 Internet控制消息协议ICMP(Internet Control Message Protocol)是IP协议的辅助协议。 ICMP协议用来在网络设备间传递各种差错和控制信息,对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。 TypeCode描述备注00Echo Replyping…

C++从入门到起飞之——list使用 全方位剖析!

​ 🌈个人主页:秋风起,再归来~🔥系列专栏:C从入门到起飞 🔖克心守己,律己则安 目录 1、迭代器 2、push_back与emplace_back 3、list成员函数sort与库sort比较 4、merge 5、uniqu…

2024117读书笔记|《李煜词(果麦经典)》——一壶酒,一竿身,快活如侬有几人?一片芳心千万绪,人间没个安排处

2024117读书笔记|《李煜词(果麦经典)》——一壶酒,一竿身,快活如侬有几人?一片芳心千万绪,人间没个安排处 《李煜词(果麦经典)》李煜的词很美,插图也不错,很值…

基于粒子群优化算法的六自由度机械臂三维空间避障规划

摘要:本研究旨在解决机械臂在复杂环境中避障路径规划的问题。本文提出了一种利用粒子群优化算法(PSO)进行机械臂避障规划的方法,通过建立机械臂的运动模型,将避障问题转化为优化问题。PSO算法通过模拟群体中个体的社会…

ggml 简介

ggml是一个用 C 和 C 编写、专注于 Transformer 架构模型推理的机器学习库。该项目完全开源,处于活跃的开发阶段,开发社区也在不断壮大。ggml 和 PyTorch、TensorFlow 等机器学习库比较相似,但由于目前处于开发的早期阶段,一些底层…

8月28c++

c手动封装顺序表 #include <iostream>using namespace std; using datatype int;//类型重命名struct SeqList { private:datatype *data;//顺序表数组int size0;//数组大小int len0;//顺序表实际长度 public:void init(int s);//初始化函数bool empty();//判空函数bool …

python有主函数吗

python和C/Java不一样&#xff0c;没有主函数一说&#xff0c;也就是说python语句执行不是从所谓的主函数main开始的。 当运行单个python文件时&#xff0c;如运行a.py&#xff0c;这个时候a的一个属性__name__是__main__。 当调用某个python文件时&#xff0c;如b.py调用a.p…

HDD介绍

HDD是“Hard Disk Drive”的缩写&#xff0c;意为“硬盘驱动器”&#xff0c;是计算机中用于存储数据和程序的主要设备之一。 硬盘有机械硬盘(Hard Disk Drive&#xff0c;HDD)和固态硬盘(SSD)之分。机械硬盘即是传统普通硬盘&#xff0c;主要由&#xff1a;盘片&#xff0c;磁…

2024年华侨生联考英语真题全析:难度变化与备考策略

导读 在前面我们和大家一起分享了2024年华侨生联考各科真题的难度情况。今天我们就来和大家具体的看一下2024年港澳台华侨生联考英语真题试卷具体分析哈。 听力部分 今年的听力和去年的听力总体难度差别不大&#xff0c;一段听力材料对应一道听力题目&#xff08;简称一对一…

谐波电抗器选择的最佳方法

选择谐波电抗器的最佳方法取决于系统的具体要求和条件。 以下是选择谐波电抗器时需要考虑的关键因素和方法&#xff1a; 1、确定系统谐波频率 谐波分析&#xff1a;使用谐波分析仪测量系统中的谐波频率&#xff0c;确定主要的谐波频率和幅值。谐波电抗器的选择需要针对这些谐…

2024年6月GSEP(python)一级认证真题讲解

注意&#xff01;做题时长为2小时&#xff0c;孩子做完题目后对照讲解视频和讲解分析&#xff0c;针对薄弱点&#xff0c;进行有效的专项提高。 &#x1f451;讲解视频 &#xff08;暂无&#xff09; &#x1f451;讲解分析 1 单选题&#xff08;每题 2 分&#xff0c;共 3…

【CVPR‘23】CompletionFormer:用于深度补全的 Transformer 网络!已开源

【CVPR23】CompletionFormer:用于深度补全的 Transformer 网络! 摘要方法3.1 RGB 和深度嵌入3.2 联合卷积注意力和 Transformer 编码器3.3 解码器3.4 SPN 精化和损失函数主要贡献实验结果论文地址:https://openaccess.thecvf.com/content/CVPR2023/papers/Zhang_CompletionF…