promethues基础概念

promethues是一个开源的系统监控以及报警系统,整个zabbix的功能,系统,网络,设备

promethues可以兼容网络和设置被,容器监控,告警系统,因为他和k8s是一个项目基金开发的产品,天生匹配k8s原生系统,人弄国企话和云原生服务适配性很高。

promethues是一个服务监控系统和时序监控系统,提供了通用数据模型和快捷数据采集,存储和接口查询。

核心组件:promethues server定期从静态配置的监控目标或者基于服务发现的自动配置目标中进行拉取数据

拉渠道数据会持久化的保存到存储设备之中

先拉取数据,纳入到监控系统当中,才能进行时许数据采集,存储警告和展示

能够直接把api server组排位哦服务发现系统使用,动态监控,动态发现

promethues的特点:

1、多维的数据模型,根据不同的函数计算方法,对同一数据可以做出不同的结论是。promQL是难点

2、是一个时间序列数据,按照时间的顺序,记录系统以及设备变化的数据,容器化的数据,每个数据都是都是一个样本。

服务器指标数据,应用程序的性能监控,网络数据的都是时间序列数据

3、通过静态,也可以通过服务自动发现收集数据

4、promethues自带的原生数据展示不是很友好,有专门数据化展示功能 ,grafana

prometheus的存储引擎:TSDB

1、能够存储的数据量很大

2、大部分都是写入操作

3、写入操作是一个时序添加,大多数都是按照时间排列

4、很少更新数据,采集到数据在妙计,或者是分钟级就会被写入数据库

5、基本数据大,一般超过了内存大小,数据按照一定的时间区间展示,缓存在这里不起作用

6、读操作,一般都是高并发的操作,

7、即使为了大数据,高并发而生的

prometheus组件:

核心组件:

服务核心组件采用的pull方式采集监控数据,通过协议进行传输,存储时间序列的数据,基于告警规则生成告警通知。

prometheus server:是核心,核心分为三部分。

1、retrieval:负责在目标主机抓取监控指标数据

Storage存储,把采集的数据保存磁盘当中,默认只保存15天

promQL:负责把数据按照一定的规则,通过指定语法展示出来(grafana)

2、exports负责在节点收集数据,node-Exports负责收集服务器节点的状态数据,cpu,内存,网络,磁盘等等都是exports收集的。默认端口9100

3、client Library:客户端库,用于应用程序的内部测量系统,内部测试

4、cadvisor:监控容器内部的资源信息,但是k8s从1.20之后自带这个组件

5、blackbox-exporter:监控业务容器的存活性,一般不用

6、Altermanager:独立的告警模块,从prometheus server收到告警通知之后,Altermanager进行重组,分类,发送到对应的接收方。

电子邮件  钉钉   企业微信。

7、pushgateway:类似于一个中转站,server端只会使用pull 数据

8、grafana:图形化工具,不是必须的

prometheus的工作流程

1、prometheus server为核心:收集和存储数据(时间序列数据),从监控目标中通过pull的方式拉取数据。或者通过pushgateway把采集到的数据,拉取到server当中去。

2、拉取到的数据,保存到本地的磁盘当中。(拉取数据监控本机数据)

3、如果监控指标数据出发了告警,发送到altermanager模块,然后根据规则发送告警信息

4、通过prometheus的自带uiweb页面,通过promql可以查询出监控户数据

5、grafana可以接入prometheus的数据源,把监控数据以图形化的方式展示出来

prometheus的局限性,以及和zabbix对比

只是一款指标监控系统,不适合存储时间,也不适合保存日志,更多的是一种趋势性的监控和展示,并非是一个精准的数据

2、任务最近的数据才有查询的需要,保存在本地数据默认只有15天,可视化的告警,在界面上可以满足绝大部分的擦做

上手难度很低,可以快速掌握,集成度,定制化比较难,扩展性比较差

prometheus:最近几年比较火的监控系统,基于go语言发开的明知是专注于监控的功能,提供一个简单的ui界面提供用户查询

可视化----grafana告警---Altermanager

prometheus和zabbix二者之间功能比较

传送到server,基于tcp进行通信

agent把数据推送到server或者server主动发起请求,获取agent的数据

prometheus:基于客户端进行数据收集,server端定时于客户端交互,通过pul方式获取监控数据

数据存储

zabbix使用外部的数据来保存数据

proetheus存储在内置的TSDB当中,时间序列数据库。

查询性能

1、zabbix的查询性能较弱,只能在web界面做一些有限的操作

2、prometheus的查询功能强大,自带查询语句。查询结果都是以图形表格数据展示的

zabbix更成熟,上手难度低一些,对于传统的服务器,系统和网络都有优秀的监控能力,不适配云原生,部署配容器监控

prometheus就是容器化监控,支持k8s监控

二进制部署

上创安装包
tar -xf prometheus-2.35.0.linux-amd64.tar.gz
mv prometheus-2.35.0.linux-amd64 /usr/local/prometheus

vim /usr/lib/systemd/system/prometheus.service

[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/prometheus/prometheus \
--config.file=/usr/local/prometheus/prometheus.yml \
--storage.tsdb.path=/usr/local/prometheus/data/ \
--storage.tsdb.retention=15d \
--web.enable-lifecycle

ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target

上传 node_exporte

tar -xf node_exporter-1.5.0.linux-amd64.tar.gz 
mv node_exporter-1.5.0.linux-amd64.tar.gz/node_exporter /usr/local/bin/
vim /usr/local/prometheus/prometheus.yml

在末尾添加
- job_name: "nodes"
    metrics_path: "/metrics"
    static_configs:
    - targets:
      - 20.0.0.92:9100
      - 20.0.0.94:9100
      - 20.0.0.93:9100
      labels:
        service: kubernetes

curl -X POST http://20.0.0.92:9090/-/reload 
systemctl reload prometheus

再到另外两个node节点

tar -xf node_exporter-1.5.0.linux-amd64.tar.gz 
mv node_exporter-1.5.0.linux-amd64.tar.gz/node_exporter /usr/local/bin/
vim /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/node_exporter \
--collector.ntp \
--collector.mountstats \
--collector.systemd \
--collector.tcpstat

ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target

netstat -antp | grep 9100

rpm -ivh grafana-enterprise-7.5.11.x86_74.rpm
systemctl daemon-reload
systemctl start grafana-server.service

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大专生能不能学习鸿蒙开发?

目前安卓有2,000万的开发者。本科及以上学历占比为35%;iOS有2,400万开发者,本科及以上学历占比为40% 绝大多数的前端开发者都是大专及以下学历,在2023年华为开发者大会上余承东透露华为的开发者目前有200万,但鸿蒙开发者统计的数据…

ARCGIS PRO SDK 数据库属性域设置与获取

一、数据库创建属性域。 sdk3.1 以下的开发版本不支持,不能使用 Pro SDK 向域添加新的编码值,可以使用地理处理工具: 创建属性域 Dim va As IReadOnlyList(Of String) Dim gpResult As ArcGIS.Desktop.Core.Geoprocessing.IGPResult Dim env…

【深度学习:目标检测】深度学习中目标检测模型、用例和示例

【深度学习:目标检测】深度学习中目标检测模型、用例和示例 什么是物体检测?物体检测与图像分类物体检测与图像分割 计算机视觉中的目标检测物体检测的优点物体检测的缺点深度学习和目标检测人员检测 物体检测如何工作?一阶段与两阶段深度学习…

Kotlin快速入门系列6

Kotlin的接口与扩展 接口 与Java类似,Kotlin使用interface关键字定义接口,同时允许方法有默认实现: interface KtInterfaceTest {fun method()fun methodGo(){println("上面方法未实现,此方法已实现")} } 接口实现 …

npm ERR! path E:node_modules\node-sass

分析报错发现有关 python2 环境相关报错 解决办法:需要再电脑中安装python 2.X版本的环境 因为我本地电脑有python 3.9的环境,所以我使用 Anaconda安装python环境 1、安装 python 2.7 conda create -n py2 python2.72、激活虚拟环境 conda activate…

go-zero 统一返回

1、整体目录结构 2、全局处理主入口 package manageimport ("net/http""github.com/zeromicro/go-zero/rest/httpx" )type Body struct {Code int json:"code"Message string json:"message"Result interface{} jso…

Elastic Search的RestFul API入门:查询ES当前的情况cat和cluster

在我们使用 Elasticsearch 进行索引的增删改查的同时,有时候我们也需要查看集群的整体情况,这就需要用到 cat 和 cluster 这两个 API。 cat 和 cluster 是 Elasticsearch 中两个非常重要的 API,它们主要用于获取和管理集群以及节点的相关信息。 cat API 是一个强大且易用的…

电脑服务器漏洞有何影响?怎么修复?

一、什么是电脑服务器漏洞 电脑服务器漏洞是指在计算机服务器软、硬件中存在的漏洞或弱点,黑客或病毒利用这些漏洞可以入侵服务器系统,获取机密信息,破坏服务器的稳定和安全性。德迅云安全提醒用户,服务器漏洞的影响不容忽视。 …

纯html+js+css个人博客

首页 <!DOCTYPE html> <html><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8"><title>主页</title><!-- 引入layui css文件 --><link rel"stylesheet" href"layui-…

基于Redis的高可用分布式锁——RedLock

目录 RedLock简介 RedLock工作流程 获取锁 释放锁 RedLock简介 Redis作者提出来的高可用分布式锁由多个完全独立的Redis节点组成&#xff0c;注意是完全独立&#xff0c;而不是主从关系或者集群关系&#xff0c;并且一般是要求分开机器部署的利用分布式高可以系统中大多数存…

vtk二进制文件查看DATASET为POLYDATA里的标量属性,C++语言

先看我有的vtk文件&#xff0c;打开看到数据集结构为PolyData 我们需要使用C来读取该二进制文件&#xff0c;然后进行获取里边的标量。 // 引入必要头文件 #include "QDebug" #include <vtkSmartPointer.h> #include <vtkPolyDataReader.h> #include &…

【macOS】mac M2 安装 Homebrew nvm

gitee 快速安装 打开终端&#xff0c;复制如下命令&#xff0c;按回车执行(需要输入密码) /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"在这个过程中可能还会弹出安装 git 的提示&#xff0c;直接安装等待即可 然后再…

借助gpt生成ppt:文心一言(chatgpt)、chatppt

提供一种简单的基于gpt快速生成ppt的方式。前置条件&#xff1a; 文心一言chatpptwps/office ppt Step1: 下载chatppt插件 https://chat-ppt.com/invitelinke?share_code47949695&channelchat-ppt.com 注册地址 下载完成后&#xff0c;安装即可&#xff0c;安装完成后…

JVM系列——垃圾收集器

对象存活判断 引用计数法 在对象中添加一个引用计数器&#xff0c;每当有一个地方引用它时&#xff0c;计数器值就加一&#xff1b;当引用失效时&#xff0c;计数器值就减一&#xff1b;任何时刻计数器为零的对象就是不可能再被使用的。 可达性分析算法 通过一系列称为“GC …

asp.net core监听本地ip地址

开发asp.net core的时候遇到一个问题我想提供访问供其他同事测试&#xff0c;但是默认都是localhost或者127.0.0.1。我想换成我的Ip地址访问但是不行&#xff0c;百度搜索需要更换监听的地址即修改launchSettings.json&#xff0c;修改为0.0.0.0:5248&#xff0c;这样不管local…

C语言王道第八周一题

Description 初始化顺序表&#xff08;顺序表中元素为整型&#xff09;&#xff0c;里边的元素是 1,2,3&#xff0c;然后通过 scanf 读取一个元素&#xff08;假如插入的是 6&#xff09;&#xff0c;插入到第 2 个位置&#xff0c;打印输出顺序表&#xff0c;每个 元素占 3 个…

笔记本电脑系统Win10重装教程

当前很多用户都会使用笔记本电脑办公&#xff0c;如果笔记本电脑携带的操作系统不好用&#xff0c;就会影响到用户的办公效率&#xff0c;这时候可以给笔记本电脑重新安装一款好用的系统。以下小编带来笔记本电脑系统Win10重装教程&#xff0c;让用户们轻松给笔记本电脑重新安装…

大模型学习笔记一:大模型应开发基础(模型归类选型、安全因素选型、)

文章目录 一、大模型一些概念介绍二、市面上大模型对比三、大模型使用安全选型四、使用大模型的方式&#xff08;一问一答、Agent Function Calling、RAG、Fine-tuning五、大模型使用路线九、补充说明1&#xff09;注意力机制讲解 一、大模型一些概念介绍 1&#xff09;产品和大…

Linux安装Jdk8

本文以centos7为例&#xff0c;一步一步进行jdk1.8的安装。 1. 下载安装 笑小枫网站下载&#xff1a;https://xiaoxiaofeng.com/resource/16 官网下载链接&#xff1a; https://www.oracle.com/cn/java/technologies/downloads/#java8 上传jdk的压缩包到服务器的/usr/local目…

封装通用mixins,在vue中实现a-table组件的可伸缩列(详细且使用便捷)

1、实现效果 2、使用场景 vue2 antd-vue 1.x版本由于antd-vue 1.x版本的组件库没有提供可伸缩列的功能&#xff0c;才需要我们手动开发在antd-vue 3.x版本以上的表格已经支持这个功能&#xff0c;不需要我们再去手动开发 3、话不多说&#xff0c;上代码 首先安装vue-dragga…