跳到主要内容

第10章 Prometheus远程存储方案

Prometheus当前存在的问题

解决方案:

1.Thanos

2.VirtoriaMetrics

Thanos架构

VirtoriaMetrics架构

VirtoriaMetrics

vmstorage:数据存储以及查询结果返回,默认端口为 8482

vminsert:数据录入,可实现类似分片、副本功能,默认端口 8480

vmselect:数据查询,汇总和数据去重,默认端口 8481

vmagent:数据指标抓取,支持多种后端存储,会占用本地磁盘缓存,默认端口 8429

vmalert:报警相关组件,不如果不需要告警功能可以不使用该组件,默认端口为 8880

单节点方案;


# vm-single.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
name: victoria-metrics
namespace: vm
spec:
selector:
matchLabels:
app: victoria-metrics
template:
metadata:
labels:
app: victoria-metrics
spec:
volumes:
- name: storage
persistentVolumeClaim:
claimName: victoria-metrics-data
containers:
- name: vm
image: docker.m.daocloud.io/victoriametrics/victoria-metrics:v1.101.0
imagePullPolicy: IfNotPresent
args:
- -storageDataPath=/var/lib/victoria-metrics-data # 指定数据存储目录
- -retentionPeriod=1w # 数据保存周期
ports:
- containerPort: 8428
name: http
volumeMounts:
- mountPath: /var/lib/victoria-metrics-data
name: storage
---
apiVersion: v1
kind: Service
metadata:
name: victoria-metrics
namespace: vm
spec:
type: NodePort
ports:
- port: 8428
selector:
app: victoria-metrics
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: victoria-metrics-data
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 20Gi
storageClassName: local-storage
local:
path: /data/vm
persistentVolumeReclaimPolicy: Retain
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- node-02
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: victoria-metrics-data
namespace: vm
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
storageClassName: local-storage

更新: 2024-09-24 10:20:20