当前位置: 首页 > news >正文

Prometheus入门

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

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



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

alt

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

alt

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

alt



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

alt

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

alt

Grafana 支持非常多的数据源.

alt

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

alt


安装 pushgateway


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

本地解压,运行

./pushgateway

alt

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

alt

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

alt

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

alt

即 客户端(不管是通过代码, 还是直接终端敲命令行) 将数据 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 的数据:

alt

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

alt

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

alt


配置 Grafana


1.新建 Dashboard


alt

可在设置中进行相关修改

alt



2.添加图表

alt

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

alt
alt
alt



参考&进阶:

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

Prometheus 快速入门[6]

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

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




Prometheus 推拉


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

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

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




alt

5 分钟了解 Prometheus[9]

prometheus 架构[10]

Prometheus 核心组件[11]

[Prometheus 学习笔记(1)Prometheus 架构简介[12]]

参考资料

[1]

prometheus 学习笔记(1)-mac 单机版环境搭建: https://www.cnblogs.com/yjmyzz/p/how-to-install-prometheus-and-grafana.html

[2]

Prometheus 官网: https://prometheus.io/download/

[3]

pushgateway-1.2.0.darwin-amd64.tar.gz: https://github.com/prometheus/pushgateway/releases/download/v1.2.0/pushgateway-1.2.0.darwin-amd64.tar.gz

[4]

Prometheus 快速入门: https://eddycjy.com/posts/prometheus/2020-05-16-startup/

[5]

新型监控告警工具 prometheus(普罗米修斯)的入门使用: https://blog.csdn.net/lijiaocn/article/details/81865120

[6]

Prometheus 快速入门: https://eddycjy.com/posts/prometheus/2020-05-16-startup/

[7]

Prometheus 四大度量指标的了解和应用: https://eddycjy.com/posts/prometheus/2020-05-16-metrics/

[8]

使用 Prometheus 对 Go 程序进行指标采集: https://eddycjy.com/posts/prometheus/2020-05-16-pull/

[9]

5 分钟了解 Prometheus: https://blog.csdn.net/Dou_Hua_Hua/article/details/108535495

[10]

prometheus 架构: https://prometheus.kpingfan.com/01-introduction/01.prometheus%E6%9E%B6%E6%9E%84/

[11]

Prometheus 核心组件: https://yunlzheng.gitbook.io/prometheus-book/parti-prometheus-ji-chu/quickstart/prometheus-arch

[12]

[Prometheus 学习笔记(1)Prometheus 架构简介: https://www.cnblogs.com/linuxk/p/12017580.html

本文由 mdnice 多平台发布

http://www.lryc.cn/news/120690.html

相关文章:

  • RISC-V云测平台:Compiling The Fedora Linux Kernel Natively on RISC-V
  • Vim学习(三)—— Git Repo Gerrit
  • 论坛项目之用户部分
  • golang内存对齐
  • 【CheatSheet】Python、R、Julia数据科学编程极简入门
  • 【golang】怎样判断一个变量的类型?
  • 怎么学习AJAX相关技术? - 易智编译EaseEditing
  • JDK、JRE、JVM:揭秘Java的关键三者关系
  • 【reactNative混合安卓开发~使用问题持续更】
  • OCR的发明人是谁?
  • 笔记本电脑连上WiFi之后的IP为什么会变?如何让它不变固定住?
  • 【数学建模】--因子分析模型
  • RAM不够?CUBEIDE使用CCMRAM
  • npm ERR! code ERESOLVEnpm ERR! ERESOLVE unable to resolve dependency tree
  • 使用 prometheus client SDK 暴露指标
  • Jmeter之BeanShell取出参数进行四则运算,并判断是否正确
  • PYTHON 斗地主发牌 (简易版)
  • CSS文本裁剪
  • ClickHouse常见的引擎和使用
  • 构建之法 - 软件工程实践教学:一线教师的13问
  • 联调 matlab 遇到的一些事儿
  • 时序预测 | Matlab实现基于GRNN广义回归神经网络的电力负荷预测模型
  • 3.2 Tomcat基础
  • 认识http的方法、Header、状态码以及简单实现一个http的业务逻辑
  • Faiss在windows下安装和使用
  • 【JavaEE进阶】SpringBoot项目的创建
  • c++二进制转化十进制代码(小数)
  • 07_ansible, 条件选择、加载客户事件、在roles和includes上面应用’when’语句、条件导入、基于变量选择文件和模版、注册变量
  • 4个简化IT服务台任务的ChatGPT功能
  • 群晖7.X版安装cpolar内网穿透