procmethues 二进制安装

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

procmeteus可以兼容网络,设备。容器监控。告警系统。因为他和k8s是一个项目开发的产品,天生匹配k8s的原生系统。容器化和云原生服务适配性很高。

prometheus是一个服务监控和实现数据库,提供了通用的数据某些和快捷数据采集,存储和接口查询。

核心组件:prometheus server定期从精通配置的监控模板或者基于服务发现的自动配置模板中进行拉取数据。

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

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

5,10,15

能够直接把api server作为服务发现系统使用。动态监控,动态发现。

procmeteus的特点:

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

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

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

3,通过精通,也可以通过服务自动发现搜集数据。

4,procmeteus自带的原生数据展示不是很友好,数据化展示工具,grafana. 

prometheus的存储引擎:TSDB

1,能够存储的数据流很庞大

2,大部分都是写入操作。

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

4,横向更新数据,采集到数据在秒级,或者是分钟级就会被写入数据库。

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

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

7,就是为了大数据高并发而生的。

prometheus的组件:

核心组件:

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

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

1,retrieval:负责在目标主机抓取指标数据

2,storage:存储,把采集的数据保存磁盘当中,默认只保存15天。

3,promQL:负责把数据按照一定的规则,通过指定的语法形成一个结果,最后展示出来。(grafana)

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

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

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

五,blackbox-exporter:监控容器因为的存活性。(一般不用。)

六,Altermanager:独立的告警模块,从prometheus server收到告警通知之后,Altermanager进行重组,分类,发送到对应的接受方电子邮件 钉钉 企业微信。

七,pushgateway:类似于一个中转站,server端只会使用pull拉取数据,节点的数据只能以上传的方式(push)发送,先把数据保存在pushgateway,prometheus server统一从pushgateway拉取数据。

八,grafana:图形化工具。

工作流程

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

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

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

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

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

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

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

2,认为最近的数据采用查询的需要,保存在本地的数据默认只有15天,不支持大量的历史数据进行存储。也不支持公网的历史数据。基于元的存储,上传了到influx或者openTSDB系统。

3,精确化程度不高,一般都是单节点部署

zabbix:大而全系统,而且功能非常完善,集中非常成熟。具有完善的web页面。可视化和告警。在界面上可以满足大部分的操作。上手难度很低,可以快速掌握。集成度高,定制化比较难,扩展性也比较差。

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

可视化---grafana告警----altermanager第三方程序来实现。比较小巧灵活,但是门槛高。

二者之间功能的比较:

zabbix指标收集方式:server和agent,agent部署在目标服务器,收集传送到server,基于头层皮进行通信

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

prometeus:基于客户端进行数据收集,server端定时于客户端交互,提供PULL方式获取监控数据。

数据存储:

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

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

程序性能:

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

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

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

prometeus,就是容器化监控,支持看k8s的监控功能,难,不好学。promql

实验:

二进制部署---比较简单,先路径组建的工作过程。

解压:

cd /opt/prometheus

tar -xf prometheus-2.45.0.linux-amd64.tar.gz

mv prometheus-2.45.0.linux-amd64 prometheus

最核心的就是prometheus.yml这个文件

scrape_interval: 15s 采集数据的间隔时间,默认是1分钟

evaluation_interval: 15s 告警的间隔时间,默认也是1分钟15s

scrape_timeout: 数据采集的超时时间,默认10s.

配置告警模块:

alerting:告警的实例配置

rule_files: 配置工具的规则

scrape_configs: 上传时序数据的源,配置采集的主机

-job_name: "prometheus" 每一个监控的实例都是以-job_name为开头

metrics_path defaults to '/metrics' 指标数采集的默认路径,可以不写

static_configs::静态配置发现实例(目标节点服务器)

将prometheus添加到系统服务当中

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

重启服务

systemctl daemon-reload

systemctl restart prometheus.service

集群要时间同步,不然报错。

部署node_export

tar -xf node_exporter-1.5.0.linux-amd64.tar.gz

mv node_exporter-1.5.0.linux-amd64 node_exporter-1.5.0

mv 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

启动服务并设置为开机自启

systemctl start node_exporter

systemctl enable node_exporter

systemctl enable prometheus.service

查看端口

通过静态的方式添加指定节点,

重新载入配置

curl -X POST http://192.168.176.61:9090/-/reload

在另外两个上添加node_export

tar -xf node_exporter-1.5.0.linux-amd64.tar.gz

mv node_exporter-1.5.0.linux-amd64 node_exporter-1.5.0

mv node_exporter /usr/local/bin/

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

通过静态的方式把服务节点添加到监控项当中了

把grafana安装

rpm -ivh grafana-enterprise-7.5.11-1.x86_64.rpm

systemctl start grafana-server.service

systemctl enable grafana-server.service

访问

账号:admin

密码:admin

Dashboards | Grafana Labs

下载模板 11047 15172 12633(中文版)

可以改,自定义语句,数据指标

删除模板:

总结:

prometheus:就是一个监控。实现数量的图形化监控的工具。不在于数据的持久化,只关注最近的需要查询的数据。

更适配k8s集群,当然了,也可以对服务器进行一般监控(内存,网络,cpu,硬盘)

在工作中把页面收藏。

每天查看,如果标红了,一定要到系统中检查,然后写报告,是什么原因看哪个进程。

如果10分钟15分钟没有降下了,和领导请示之后进行操作。

每周要记录下来,形成报告。看每周的平均值,看为什么高,找原因。

数据要是复现,每天都会出现这种情况,需要关注。

出现情况一定要记录在案,可以翻翻日志看看

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

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

相关文章

【Java基础】JVM关闭回调函数(ShutdownHook)的应用场景

文章目录 一.ShutdownHook介绍二.ShutdownHook被调用场景三.ShutdownHook如何使用四.ShutdownHook实践 一.ShutdownHook介绍 ShutdownHook就是一个简单的 已初始化 但是 未启动 的 线程 。当虚拟机开始关闭时,它将会调用所有已注册ShutdownHook的回调函数&#xff0…

Gnuplot安装与配置

安装默认选项,下一步配置环境变量 找到系统环境变量,找到PATH 新建 浏览 将bin目录加进去 如图 再按winR,输入cmd打开终端,输入gnuplot,如果提示以下信息就可以绘图 如果要在Visual Studio中结合代码使用,需…

【局部自动数据增强】YOCO:将图片一分为二,各自增强后拼合为一

【自动数据增强】YOCO:将图片一分为二,各自增强后拼合为一 核心思想好在哪里?切哪里、切几次?何时用? 总结 核心思想 论文:https://arxiv.org/pdf/2201.12078.pdf 代码:https://github.com/Ju…

MySql的使用方法

一.什么是MySql MySql是一种数据库管理系统,是用来存储数据的,可以有效的管理数据,数据库的存储介质为硬盘和内存。 和文件相比,它具有以下优点: 文件存储数据是不安全的,且不方便数据的查找和管理&#xf…

Python网络拓扑库之mininet使用详解

概要 网络工程师、研究人员和开发人员需要进行各种网络实验和测试,以评估网络应用和协议的性能,以及解决网络问题。Python Mininet是一个功能强大的工具,它允许用户创建、配置和仿真复杂的网络拓扑,以满足各种实际应用场景。本文…

SQL注入:二次注入

SQL注入系列文章: 初识SQL注入-CSDN博客 SQL注入:联合查询的三个绕过技巧-CSDN博客 SQL注入:报错注入-CSDN博客 SQL注入:盲注-CSDN博客 目录 什么是二次注入? 二次注入演示 1、可以注册新用户 2、可以登录->…

C++ 类与对象(上)

目录 本节目标 1.面向过程和面向对象初步认识 2.类的引入 3.类的定义 4.类的访问限定符及封装 4.1 访问限定符 4.2 封装 5. 类的作用域 6. 类的实例化 7.类对象模型 7.1 如何计算类对象的大小 7.2 类对象的存储方式猜测 7.3 结构体内存对齐规则 8.this指针 8.1 thi…

前言:穿越迷雾,探索C语言指针的奇幻之旅

各位少年,大家好,我是博主那一脸阳光,今天给大家分享指针,内存和地址的使用,以及使用。 前言: 在编程的世界中,若论灵活多变、深邃神秘的角色,非“指针”莫属。如同哈利波特手中的魔…

C++ 数论相关题目 求组合数I

直接按照公式求解会超时。 常用组合数递推式。 因此用递推式先预处理出来&#xff0c;然后查表。 #include <iostream> #include <algorithm>using namespace std;const int N 2010, mod 1e9 7;int c[N][N];void init() {for(int i 0; i < N; i )for(in…

C/C++ - 函数进阶(C++)

目录 默认参数 函数重载 内联函数 函数模板 递归函数 回调函数 默认参数 定义 默认参数是在函数声明或定义中指定的具有默认值的函数参数。默认参数允许在调用函数时可以省略对应的参数&#xff0c;使用默认值进行替代。 使用 默认参数可以用于全局函数和成员函数。默认参…

RDMA技术赋能:构建高速网络基础设施,加速大型模型高效训练

深入剖析RDMA在高速网络环境中的应用价值与实现方式 远程直接内存访问&#xff08;RDMA&#xff09;作为超高速网络内存访问技术的领军者&#xff0c;彻底颠覆了传统程序对远程计算节点内存资源的访问模式。其卓越性能的核心在于巧妙地绕过了操作系统内核层&#xff08;如套接…

npm v10.4.0 is known not to run on Node.js v14.21.3

问题起因 vue项目在打包的时候突然报如下错误&#xff0c;项目原来打包的时候是没问题的。 request to https://registry.npm.taobao.org/acorn failed, reason: certificate然后找到了一篇帖子&#xff0c;淘宝npm镜像地址https证书到期了&#xff0c;发现确实是这个问题。在…

Redis客户端之Redisson(三)Redisson分布式锁

一、背景&#xff1a; 高效的分布式锁设计应该包含以下几个要点&#xff1a; 1、互斥&#xff1a; 在分布式高并发的条件下&#xff0c;我们最需要保证&#xff0c;同一时刻只能有一个线程获得锁&#xff0c;这是最基本的一点 2、防止死锁&#xff1a; 在分布式高并发的条…

骑砍战团MOD开发(41)-LOD渲染技术

一.LOD技术 LOD技术&#xff0c;即Level Of Details&#xff0c;是一种在3D图形渲染中常用的技术&#xff0c;主要用于优化渲染性能。 通过在建模时添加LOD模型(低模模型,面数较少),游戏引擎通过计算模型的远近和光照等情况选择性加载原模型(高模)/LOD模型(低模),实现游戏…

D3485——+5V工作电压,内置失效保护电路等功能高达10Mbps的传输速率,可应用在智能电表,安防监控等产品上

D3485 是一款 5V 供电、半双工的 RS-485 收发器&#xff0c;芯片内部包含一路驱动器和 一路接收器。D3485 使用限摆率驱动器&#xff0c;能显著减小 EMI 和由于不恰当的终端匹 配电缆所引起的反射&#xff0c;并实现高达10Mbps 的无差错数据传输。 D3485 内置失效保 护电路&…

小红树上染色

记忆化深搜 #include <iostream> #include <string> #include <stack> #include <vector> #include <queue> #include <deque> #include <set> #include <map> #include <unordered_map> #include <unordered_set&g…

详解OpenHarmony各部分文件在XR806上的编译顺序

大家好&#xff0c;今天我们来谈一谈编程时一个很有趣的话题——编译顺序。我知道&#xff0c;一提到编译可能大家会感到有点儿头疼&#xff0c;但请放心&#xff0c;我不会让大家头疼的。我们要明白&#xff0c;在开始写代码之前&#xff0c;了解整个程序的编译路径是十分有必…

【MySQL】补充和navicat的一些简单使用

文章目录 前言在这里插入图片描述 事情起因因为这个articlecount的c是小写了&#xff0c;我想改成大写 一、修改二、navicat的使用步骤1.连接2.建库&#xff0c;建表 三.填写数据总结 前言 事情起因因为这个articlecount的c是小写了&#xff0c;我想改成大写 提示&#xff1a;…

C语言数据结构(4)——线性表其三(双向链表)

欢迎来到博主的专栏——C语言数据结构 博主ID&#xff1a;代码小豪 文章目录 链表的种类头结点循环链表双向链表带头双向循环链表带头双向循环链表的定义与初始化 空链表尾插法打印双向链表头插法查找指定数据项的节点在指定位置之后插入节点指定位置的删除双向链表的销毁 顺序…

东北老铁带你总结《Java IO 模型》

东北老铁带你总结《Java IO 模型》 文章目录 东北老铁带你总结《Java IO 模型》前言I/O何为 I/O?有哪些常见的 IO 模型? Java 中 3 种常见 IO 模型BIO (Blocking I/O)NIO (Non-blocking/New I/O)AIO (Asynchronous I/O) IO 模型这块确实挺难理解的&#xff0c;需要太多计算机…