avatar

Wz Blog

运维学习・持续更新

  • 首页
  • 文章
  • 登录/注册
  • 管理后台
主页 Prometheus
文章

Prometheus

发表于 2026-10-11 更新于 2026-10- 11
作者 Administrator
10~13 分钟 阅读

▶ 架构图

![](/upload/Image-DQGI.png)

▶ 数据类型

数据类型| 能否增加和减少| 用途| 数据存储

---|---|---|---

Counter(计数器)| 只能增加,重置为 0| 计数,例如请求总数、错误总数等| 累积总量

Gauge(测量值)| 可以增加和减少| 测量瞬时值,例如 CPU 使用率、温度等| 当前值

Histogram(直方图)| 记录分布区间| 持续时间、文件大小等的分布| 桶、总数、总和

Summary(摘要)| 记录分位数| 精确的分位数计算(如 90th 百分位)| 分位数、总数、总和

▶ prometheus部署

• 部署node_exporter收集节点资源信息


vim node_exporter.yaml

Prometheus部署yaml文件--->1

• RBAC授权,创建sa账号,让它有比较大权限获取k8s相关资源信息


vim prometheus-rbac.yaml

Prometheus部署yaml文件--->2

• 创建数据持久化


vim prometheus-pvc.yaml

Prometheus部署yaml文件--->3

• 部署端口暴露服务


vim prometheus-svc.yaml

Prometheus部署yaml文件--->4

• 部署configmap配置


vim prometheus-configmap.yaml

Prometheus部署yaml文件--->5

• 部署prometheus应用


vim prometheus-deploy.yaml

Prometheus部署yaml文件--->6

▶ 监控远程服务

• 安装go环境


wget https://golang.google.cn/dl/go1.23.1.linux-amd64.tar.gz
tar xvzf go1.23.1.linux-amd64.tar.gz -C /usr/local/

配置环境变量:


vim /etc/profile
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=/opt/go
export PATH=$PATH:$GOPATH/BIN
source /etc/profile
go version

• 编译go源码

解决依赖下载速度过慢:

go env -w GO111MODULE=on

go env -w GOPROXY=https://goproxy.cn,direct

进入源码目录:


cd /tmp/client_golang-1.20.4/examples/random

编译源码:

go build

执行random程序查看生成监控数据:

./ random --listen-address=:8080

浏览器打开对应的服务器ip的8080端口,就可以看到监控数据了

▶ 配置prometheus的config文件,显示到上面


kubectl -n kube-mon edit cm prometueus-configmap
…………
…………
scrape_configs:
- job_name: "go_service"
static_configs:
- targets: ['xxx.xxx.xx.x:8080']

▶ 标签操作

• 缩进示例

- job_name: 'go_service"

statuc_configs:

- targets: ['xxx.xx.xx.x:8080']

relabel_configs:

- action: replace

source_labels: []

target_label: xxx

replacement: "xxx"

• 替换标签

将现有标签替换为新值:

- action: replace

source_labels: [__address__]

target_label: my_instance

• 添加新标签

创建一个新标签并赋予固定值:

- action: replace

source_labels: []

target_label: xxx

replacement: "xx"

• 删除标签

从抓取目标中删除指定标签:

- action: labeldrop

regex: __metrics_path__

• 保留标签

保留匹配到的标签:

- action: labelkeep

reges: __.* #以两条下划线打头的标签

• 重命名标签

将一个标签重命名为另一个名称

- action: replace

source_labels: [old_label]

target_label: new_label

• 通过正则表达式过滤

- action: replace

source_labels: [__address__]

target_label: new_address

regex: (.*):80 #正则匹配

replacement: $1:8080 #将端口80替换为8080

• 合并标签值

- action: replace

source_labels: [label1,label2]

target_label: new_label

• 条件修改标签

- action: replace

source_labels: [__address__,__meta_kubernetes_xxxxx]

target_label: __address__

reges: ([^:]+)(?::\d+)?;(\d+) ?:表示改括号不参与下面的$引用

replacement: $1:$2

address为172.23.4.40:80,后面的值为8080


$1为172.23.4.40 $2为8080

最终address将会被替换为172.23.4.40:8080

• 标签的重新映射labelmap

对标签进行优化处理,批量地重命名标签

- regex: 'app_(.*) #匹配以'app_'开头的标签

action: labelmap

replacement: 'application_$1' #把'app_'替换为'application_'

▶ 部署Granfana(监控指标可视化)

• 部署yaml文件


vim granfa.yaml

Prometheus部署yaml文件--->7

• 访问Granfana:http://节点ip:30300,进入界面操作

1.Granfana对接Prometheus:

配置对接,点击Data Sources

点击Add new data source-->选择prometheus-->填写名字,填写prometheus的访问地址,其他默认

2.对接数据源之后,添加模板文件

模板下载链接:https://grafana.com/grafana/dashboards/

试验使用模板:Node Exporter Full and K8s containers | Grafana Labs

导入模板文件json

3.修改个别模块里面的PQL语句

▶ PromeQL语句

• 示例

模板:指标名{标签key="标签值",label2!="xxx"}[时间范围] 运算符 阈值

1.度量指标:node_load1(节点1分钟的负载情况)

2.[1m]捕获的是前面的值,在多长时间段的一个取值

3.node_load1{instance=~"k8s-master.."}

显示标签是k8s-master开头的节点数据情况

4.avg_over_time(node_load1{instance="k8s-master01"}[3m])

显示的是过去3分钟,节点k8s-master01的1分钟的平均负载

5.by (instance)

分组条件,表示按instance标签进行分组。

监控与日志
笔记 监控
许可协议:  CC BY 4.0
分享

相关文章

10月 13, 2026

ECS 实例反复冻结 —— 故障根因分析报告

实例:i-uf6****(已脱敏)(cn-shanghai) 主机名:my-ecs 系统:Rocky Linux 9.8 / 内核 5.14.0-687.47.1 规格:2 核 / 1.6GB 内存 / 40GB 系统盘 故障日期:2026-10-12 报告生成:2026-10-13 一、故障现象

10月 11, 2026

Prometheus部署yaml文件

1.node_exporter.yaml apiVersion: apps/v1 kind: DaemonSet metadata: name: node-exporter namespace: kube-mon labels: name: node-exporter spec: selector

10月 11, 2026

Prometheus

▶ 架构图 ![](/upload/Image-DQGI.png) ▶ 数据类型 数据类型| 能否增加和减少| 用途| 数据存储 ---|---|---|--- Counter(计数器)| 只能增加,重置为 0| 计数,例如请求总数、错误总数等| 累积总量 Gauge(测量值)| 可以增加和减少|

下一篇

Prometheus部署yaml文件

上一篇

Pod详解

最近更新

  • Kubernetes v1.28.2 双Master堆叠etcd + Haproxy/Keepalived 高可用部署 SOP(Docker + cri-dockerd)
  • 名词解释
  • ECS 实例反复冻结 —— 故障根因分析报告
  • 运维六大工作内容
  • 磁盘相关命令

热门标签

监控 Linux 数据库 Docker 笔记 CI/CD Kubernetes Nginx

目录

©2026 Wz Blog. 保留部分权利。

使用 Halo 主题 Chirpy