Prometheus(一):Prometheus简介及安装

目录

  • 1 Prometheus 介绍
    • 1.1 Prometheus简介
    • 1.2 Prometheus的特点
    • 1.3 Prometheus架构
  • 2 Prometheus安装

1 Prometheus 介绍

1.1 Prometheus简介

Prometheus 是一款基于时序数据库的开源监控告警系统,非常适合Kubernetes集群的监控。Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控系统,比如VM、Docker、Kubernetes等。输出被监控组件信息的HTTP接口被叫做exporter 。目前互联网公司常用的组件大部分都有exporter可以直接使用,比如Varnish、Haproxy、Nginx、MySQL、Linux系统信息(包括磁盘、内存、CPU、网络等等)。

1.2 Prometheus的特点

Prometheus官网上的自述是:“From metrics to insight.Power your metrics and alerting with a leading open-source monitoring solution.”
翻译过来就是:从指标到洞察力,Prometheus通过领先的开源监控解决方案为用户的指标和告警提供强大的支持。

主要有以下四个特点:

  • 通过PromQL实现多维度数据模型的灵活查询。
  • 定义了开放指标数据的标准,自定义探针(如Exporter等),编写简单方便。
  • PushGateway组件让这款监控系统可以接收监控数据。
  • 提供了VM和容器化的版本。

除此之后还有如下特点:

  • Go语言编写。
  • 采用拉模式为主、推模式为辅的方式采集数据。
  • 既可以使用二进制文件直接启动,也支持容器化部署镜像。
  • 支持多种语言的客户端,如Java、JMX、Python、Go、Ruby、.NET、Node.js等语言。
  • 支持本地和第三方远程存储,单机性能强劲,可以处理上千target及每秒百万级时间序列。
  • 高效的存储。平均一个采样数据占3.5B左右,共320万个时间序列,每30秒采样一次,如此持续运行60天,占用磁盘空间大约为228GB
  • 出色的可视化功能。Prometheus拥有多种可视化的模式,比如内置表达式浏览器、Grafana集成和控制台模板语言。它还提供了HTTP查询接口,方便结合其他GUI组件或者脚本展示数据。
  • 精确告警。Prometheus基于灵活的PromQL语句可以进行告警设置、预测等,另外它还提供了分组、抑制、静默等功能防止告警风暴
  • 支持PushGateway采集瞬时任务的数据
  • 支持服务发现和静态配置两种方式发现目标
    prometheus也有一定的局限性,比如:
  • prometheus主要针对性能和可用性监控,不适用于针对日志(Log)、事件(Event)、调用链(Tracing)等的监控
  • Prometheus关注的是近期发生的事情,而不是跟踪数周或数月的数据。因为大多数监控查询及告警都针对的是最近(通常不到一天)的数据。Prometheus认为最有用的数据是最近的数据,监控数据默认保留15天。
  • 本地存储有限,存储大量的历史数据需要对接第三方远程存储
  • Prometheus的监控数据并没有对单位进行定义。
  • Prometheus对数据的统计无法做到100%准确,如订单、支付、计量计费等精确数据监控场景。

1.3 Prometheus架构

在这里插入图片描述
上图可以看出常用的组件主要有:

  • Prometheus server端:是Prometheus组件的核心,主要是对监控数据的获取,存储以及查询。
  • Exporter:获取监控组件的数据,并推送给Prometheus server端。
  • Alertmanager:告警处理组件。对告警规则产生告警信息进行处理,如:分组、抑制、静默等。
  • Pushgateway:主要用于瞬时任务的场景,Pushgateway可以获取监控数据并存储,Prometheus server端定时拉取。
  • WebUI:可视化界面管理,用户可以通过界面获取Prometheus的当前配置,监控任务运行状态等。常用的有:Grafana。
  • Service Discovery:服务发现。用户通过服务发现和注册的工具对成百上千的节点进行服务注册,并最终将注册中心的地址配置在Prometheus的配置文件中,大大简化了配置文件的复杂程度,也可以更好的管理各种服务。常用的有DNS、consul等

2 Prometheus安装

此处说的Prometheus安装针对的是Prometheus server。

本次是在Ubuntu 22.04环境下安装 prometheus-2.36.0

# 下载安装包
wget https://github.com/prometheus/prometheus/releases/download/v2.36.0/prometheus-2.36.0.linux-amd64.tar.gz
# 解压缩
tar xvfz prometheus-2.36.0.linux-amd64.tar.gz
mv prometheus-2.36.0.linux-amd64 /usr/local/prometheus
# 修改Prometheus配置文件
cd /usr/local/prometheus
mv prometheus.yml{,.bak}
vim prometheus.ymlglobal:
alerting:alertmanagers:- static_configs:- targets:
rule_files:
scrape_configs:
# 监控本机- job_name: "prometheus"static_configs:- targets: ["192.168.92.101:9090"]# 配置快速启动文件
vi /usr/lib/systemd/system/prometheus.service[Unit]
Description=prometheus
After=network.target
[Service]
Type=simple
#LimitNOFILE=100000
#LimitNPROC=100000
Restart=no
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --web.enable-lifecycle
PrivateTmp=true
[Install]
WantedBy=multi-user.target# 参数解释:
# --web.enable-lifecycle加上之后,Prometheus支持热加载,即可以执行reload
# --storage.tsdb.retention.time=5d 数据保存5天,如果是30d,就是保存30d
# --storage.tsdb.path=/usr/local/share/prometheus/data \
# 如果删除数据的话,需要借助Prometheus的TSDB Admin API。
# 当前Prometheus TSDB Admin API提供了三个接口,分别是快照(Snapshot), 数据删除(Delete Series), 数据清理(Clean Tombstones)
# Prometheus的TSDB Admin API默认是关闭的,需要加入启动参数 --web.enable-admin-api才会启动。
# --web.enable-admin-api 控制对admin HTTP API的访问,其中包括删除时间序列等功能systemctl daemon-reload
systemctl restart prometheus.service
systemctl status prometheus.service  

访问地址:ip:9090
在这里插入图片描述

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

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

相关文章

哪些网页原型设计工具易于使用?

本文介绍了七种专业易用的原型工具,帮助您快速制作可验证的方案原型,减少产品、运营和其他同事的沟通时间,以及设计师绘制效果图的沟通时间。我相信你可以在阅读后找到最合适的网页原型设计工具。网页界面原型设计软件有很多选择。以下是一些…

解析ChatGPT Plus相比chatgpt3.5有哪些优势

「ChatGPT Plus」提供更出色的对话体验和更广泛的应用能力,学生可以用来写作、职场人也可以用来写计划书、策划书等等,并且问它一些问题比搜索引擎好用多了简直。但普通人使用起来有一点门槛,并且升级4.0也难住了许多爱好者。 ChatGPT主要功能…

“图片批量管理,美化无忧:一键操作,轻松打造精美图片!“

在数字时代,图片已成为我们生活和工作的重要元素。无论是社交媒体上的个人分享,还是商业宣传中的海报设计,精美图片都扮演着举足轻重的角色。然而,面对海量的图片资源,如何进行批量管理和美化却成为了一个挑战。现在&a…

(二十三)Flask之高频面试点

目录: 每篇前言:Q1:为什么把request和session放在一起?Q2:Local对象的作用?Q3::LocalStack对象的作用?Q4:一个运行中的Flask应用程序分别包括几个Local/LocalStack&#…

RestTemplate启动问题解决

⭐ 作者简介:码上言 ⭐ 代表教程:Spring Boot vue-element 开发个人博客项目实战教程 ⭐专栏内容:个人博客系统 ⭐我的文档网站:http://xyhwh-nav.cn/ RestTemplate启动问题解决 问题:在SpringCloud架构项目中配…

云原生应用测试:挑战与方法

😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:【Austin_zhai】 🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。…

2024-02-26(Spark)

1.Spark SQL是Spark的一个模块,用于处理海量结构化数据 限定:结构化数据处理 RDD的数据开发中,结构化,非结构化,半结构化数据都能处理。 2.为什么要学习SparkSQL SparkSQL是非常成熟的海量结构化数据处理框架。 学…

六、Vuex

六、Vuex 6.1 Vuex是什么 概念:专门在 Vue 中实现集中式状态(数据)管理的一个 Vue 插件,对 vue 应 用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方 式,且…

代码随想录算法训练营29期|day62 任务以及具体安排

第十章 单调栈part01 739. 每日温度 class Solution {// 版本 1public int[] dailyTemperatures(int[] temperatures) {int lenstemperatures.length;int []resnew int[lens];/**如果当前遍历的元素 大于栈顶元素,表示 栈顶元素的 右边的最大的元素就是 当前遍历的元…

吴恩达deeplearning.ai:sigmoid函数的替代方案以及激活函数的选择

以下内容有任何不理解可以翻看我之前的博客哦:吴恩达deeplearning.ai专栏 文章目录 引入——改进下需求预测模型ReLU函数(整流线性单元 rectified linear unit)线性激活函数(linear activation function)激活函数的选择实现方式为什么需要激活函数 到现在…

Linux安装Mysql(超详细,亲测)

1.下载MySQL的YUM仓库文件 创建一个文件夹(可以在任意目录建立一个文件夹,这边建议在home下创建) mkdir mysql 进入创建的mysql目录 cd mysql 下载MySQL的YUM仓库文件 wget https://dev.mysql.com/get/mysql57-community-release-el7-11.no…

UDP 与 RTP 实现高效的音视频通信

协议确定了双方通信的规则和流程。在互联网的协议集中,有一种无连接的传输协议,被称为用户数据报协议(UDP,User Datagram Protocol)。 UDP 为应用程序提供了一种简单的数据传输方式,当我们谈到 UDP 应用场…