Prometheus入门

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

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


Mac 上安装 Prometheus

brew install prometheus

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

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

yaml 复制代码
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

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

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


安装 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,首次登陆必须修改密码)

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

Grafana 支持非常多的数据源.

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


安装 pushgateway

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

本地解压,运行

./pushgateway

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

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

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

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


修改 Prometheus 的配置文件

vim /usr/local/etc/prometheus.yml

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

yaml 复制代码
  - job_name: "push-metrics"
    static_configs:
    - targets: ["localhost:9091"]
    honor_labels: true

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

推送一个指标:

bash 复制代码
echo "cui_metric 100" | curl --data-binary @- http://localhost:9091/metrics/job/dashen_blog

推送多个指标:

bash 复制代码
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 的数据:

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

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


配置 Grafana

1.新建 Dashboard

可在设置中进行相关修改


2.添加图表

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


参考&进阶:

新型监控告警工具 prometheus(普罗米修斯)的入门使用

Prometheus 快速入门

Prometheus 四大度量指标的了解和应用

使用 Prometheus 对 Go 程序进行指标采集


Prometheus 推拉

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

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

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


5 分钟了解 Prometheus

prometheus 架构

Prometheus 核心组件

[Prometheus 学习笔记(1)Prometheus 架构简介](https://link.juejin.cn?target=https%3A%2F%2Fwww.cnblogs.com%2Flinuxk%2Fp%2F12017580.html "https://www.cnblogs.com/linuxk/p/12017580.html")

相关推荐
程序员契奇4 小时前
Tools工具使用
人工智能·后端
IT_陈寒5 小时前
SpringBoot自动配置没生效?你可能漏了这个注解
前端·人工智能·后端
长明5 小时前
C#项目组织与概念梳理
后端·c#
xn71335 小时前
个人网站站外分发怎么做归因?我给 XBSTACK 补了一套 UTM 追踪规则
后端·低代码
用户2330713074795 小时前
JUC 并发容器与工具
后端
冰暮流星5 小时前
flask之模版渲染
后端·python·flask
威武的花瓣5 小时前
细说ASP.NET的各种异步操作
后端·asp.net·php
漂亮的摩托5 小时前
如何编写一个SpringBoot项目告警推送的Starter
java·spring boot·后端
任性的芝麻5 小时前
ASP.NET MVC 中的异步方式
后端·asp.net·mvc
雨师@5 小时前
go语言项目--实例化(图书管理)--006
开发语言·后端·golang