Prometheus入门

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
可观测可视化 Grafana 版,10个用户账号 1个月
简介: Prometheus入门

Prometheus(普罗米修斯) 是一种 新型监控告警工具,Kubernetes 的流行带动了 Prometheus 的应用。

全文参考自 prometheus 学习笔记(1)-mac 单机版环境搭建



Mac 上安装 Prometheus


brew install prometheus

安装路径在 /usr/local/Cellar/prometheus/2.20.1,

配置文件在 /usr/local/etc/prometheus.yml:

global:
  scrape_interval: 15s
scrape_configs:
  - job_name: "prometheus"
    static_configs:
    - targets: ["localhost:9090"]

切换到安装目录的 bin 文件夹,

cd /usr/local/Cellar/prometheus/2.20.1/bin

执行:

./prometheus --config.file=/usr/local/etc/prometheus.yml


微信截图_20230814210909.png

此时可访问localhost:9090,有如下页面:

微信截图_20230814210919.png

Status中可以看到若干元信息.

微信截图_20230814210954.png

安装 grafana


brew install grafana

安装路径在 /usr/local/Cellar/grafana/7.1.5,

配置文件在 /usr/local/etc/grafana/grafana.ini,

可在此修改默认的端口等信息


启动:

grafana-server --config=/usr/local/etc/grafana/grafana.ini --homepath /usr/local/share/grafana --packaging=brew cfg:default.paths.logs=/usr/local/var/log/grafana cfg:default.paths.data=/usr/local/var/lib/grafana cfg:default.paths.plugins=/usr/local/var/lib/grafana/plugins

访问localhost:3000,有如下页面:

(默认的用户名/密码均为 admin,首次登陆必须修改密码)

微信截图_20230814211008.png

Grafana 是一个单纯的前端图表展示工具, 必须为其添加数据源,才能读取到数据进而进行展示, 参考下图:

微信截图_20230814211045.png

Grafana 支持非常多的数据源.

微信截图_20230814211057.png

选择Prometheus数据源, 指定 URL 地址, 然后保存即可

微信截图_20230814211148.png

安装 pushgateway


Prometheus 官网搜索pushgateway, 下载 pushgateway-1.2.0.darwin-amd64.tar.gz

本地解压,运行

./pushgateway

微信截图_20230814211203.png

此时, 在localhost:9091/页面Status这个 Tab 页,可见:

微信截图_20230814211250.png

pushgateway的作用:(图片来自网络)

微信截图_20230814211301.png

(图片来自煎鱼大佬的 Prometheus 快速入门)

image.png

即 客户端(不管是通过代码, 还是直接终端敲命令行) 将数据 push 到网关(pushgateway), 然后 Prometheus 从网关 pull 数据



修改 Prometheus 的配置文件


vim /usr/local/etc/prometheus.yml

增加如下几行,重启 Prometheus,以让新的配置文件生效.

  - job_name: "push-metrics"
    static_configs:
    - targets: ["localhost:9091"]
    honor_labels: true

(Prometheus 提供了多种语言的 sdk, 最简单的方式是通过 shell)

推送一个指标:

echo "cui_metric 100" | curl --data-binary @- http://localhost:9091/metrics/job/dashen_blog

推送多个指标:

cat <<EOF | curl --data-binary @- http://localhost:9091/metrics/job/dashen_blog
blog_visit_total{blogid="12345",domain="dashen.tech",clientip="10.0.1.1"} 20
blog_visit_total{blogid="34567",domain="dashen.tech",clientip="10.0.1.2"} 30
blog_visit_total{blogid="56789",domain="dashen.tech",clientip="10.0.1.3"} 40
EOF

blog_visit_total 相当于指标名称,{ }中的内容相当于 tag,在查询时可根据 tag 进行过滤,最后的 20、30、40 相当于具体的指标值。

dashen_blog 是 job 名称, 可根据需要修改


此时http://localhost:9091上, 已能看到刚才 push 的数据:

image.png

http://localhost:9090, Prometheus 里也能感知刚添加的数据

微信截图_20230814211531.png

Prometheus 本质上是一个时序数据库. curl 命令可以多执行几次, 相当于持续向时序数据库中写入数据.

image.png

配置 Grafana


1.新建 Dashboard

微信截图_20230814211612.png

可在设置中进行相关修改

image.png

2.添加图表

微信截图_20230814211700.png

(可以用 sum/max/min/avg 这类聚合函数统计指标)

微信截图_20230814211736.png

微信截图_20230814211743.png

image.png

Prometheus 推拉


Prometheus 是一个开源的监控系统,具有强大的查询语言和数据模型,用于收集和存储时间序列数据。Prometheus 通过 pull 模型从被监控的目标(如服务器、容器等)中获取数据,然后将其存储在本地数据库中。Prometheus 还提供了一种称为 pushgateway 的组件,用于允许被监控的目标通过 push 模型向 Prometheus 推送指标数据。

在 pull 模型中,Prometheus 通过 HTTP 协议从被监控的目标中拉取数据。被监控的目标必须运行一个称为 exporter 的组件,用于暴露指标数据的 HTTP 接口。Prometheus 定期通过该接口获取指标数据。

在 push 模型中,被监控的目标将指标数据推送到一个称为 pushgateway 的中间代理组件中。然后,Prometheus 定期从 pushgateway 中获取指标数据。推送数据的方式对于一些短暂存在的任务非常有用,比如批处理作业、临时性的任务等等,因为这些任务在 Prometheus 抓取数据之前就已经消失了,导致这些指标数据无法被 Prometheus 采集。


相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
目录
相关文章
|
2月前
|
Prometheus 监控 Cloud Native
prometheus-operator入门使用上篇之ServiceMonitor
关于使用Prometheus Operator和Kube-Prometheus Stack进行监控的入门教程,涵盖了从部署到监控云原生和非云原生应用的详细步骤,以及监控失败的排查方法。
235 3
prometheus-operator入门使用上篇之ServiceMonitor
|
3月前
|
Prometheus 监控 Cloud Native
Prometheus 入门指南:快速上手
【8月更文第29天】Prometheus 是一个开源的监控系统和时间序列数据库,它特别适合于监控基于微服务架构的应用程序。Prometheus 采用 pull 模式主动从目标系统抓取数据,并且提供丰富的查询语言 PromQL 以便进行数据分析。本文将介绍 Prometheus 的基本概念、架构,并指导您如何快速搭建和配置 Prometheus 服务器。
95 1
|
存储 Prometheus 监控
prometheus安装及使用入门
prometheus安装及使用入门
1302 0
prometheus安装及使用入门
|
Prometheus Kubernetes 监控
《K8s监控神器——TSDB for Prometheus的入门与实践》电子版地址
K8s监控神器——TSDB for Prometheus的入门与实践
99 0
《K8s监控神器——TSDB for Prometheus的入门与实践》电子版地址
|
数据采集 JSON Prometheus
iLogtail使用入门-iLogtail 采集Prometheus 数据
前言阿里已经正式开源了可观测数据采集器iLogtail。作为阿里内部可观测数据采集的基础设施,iLogtail承载了阿里巴巴集团、蚂蚁的日志、监控、Trace、事件等多种可观测数据的采集工作。本文将介绍iLogtail 如何采集Prometheus exporter 数据。采集配置iLogtail 的采集配置全面兼容Prometheus 配置文件(以下介绍为1.0.30版本+)。参数描述默认值Ya
931 0
iLogtail使用入门-iLogtail 采集Prometheus 数据
|
数据采集 JSON Prometheus
iLogtail使用入门-iLogtail 采集Prometheus 数据
阿里已经正式开源了可观测数据采集器iLogtail。作为阿里内部可观测数据采集的基础设施,iLogtail承载了阿里巴巴集团、蚂蚁的日志、监控、Trace、事件等多种可观测数据的采集工作。本文将介绍iLogtail 如何采集Prometheus exporter 数据。
874 0
|
存储 Prometheus 监控
Prometheus 入门
Prometheus 是一套开源的系统监控报警框架。它启发于 Google 的 borgmon 监控系统,由工作在 SoundCloud 的 google 前员工在 2012 年创建,作为社区开源项目进行开发,并于 2015 年正式发布。
2020 0
|
存储 Prometheus 监控
《K8s监控神器——TSDB for Prometheus的入门与实践》
本次技术分享中,我们会展示如何配置阿里云TSDB作为Prometheus远程存储的流程,并量化展示本方案达到的查询吞吐高,延迟低,性能按需弹性扩展等优势。
2171 0
|
存储 Prometheus 监控
【资料下载】K8s监控神器——TSDB for Prometheus的入门与实践
议题介绍 Prometheus作为云原生监控的首选工具,其单机部署的架构设计在提供稳定性和易用性的同时,也使得数据存储受限于单节点的存储大小。阿里云TSDB针对这一痛点,为用户提供了易用性高,稳定性强,性价比优的存储技术方案。
3890 0
|
Prometheus 监控 Cloud Native