Kubernetes精讲之prometheus

目录

一 Prometheus简介

1.1 Prometheus架构

二 在k8s中部署Prometheus

2.1 下载部署Prometheus所需资源

2.3 登陆grafana

2.4 导入面板

三 监控使用示例

3.1 建立监控项目


一 Prometheus简介

Prometheus是一个开源的服务监控系统和时序数据库

其提供了通用的数据模型和快捷数据采集、存储和查询接口

它的核心组件Prometheus服务器定期从静态配置的监控目标或者基于服务发现自动配置的目标中进行拉取数据

新拉取到啊的 数据大于配置的内存缓存区时,数据就会持久化到存储设备当中

1.1 Prometheus架构

1.1.1 组件功能:

  • 监控代理程序:如node_exporter:收集主机的指标数据,如平均负载、CPU、内存、磁盘、网络等等多个维度的指标数据。
  • kubelet(cAdvisor):收集容器指标数据,也是K8S的核心指标收集,每个容器的相关指标数据包括:CPU使用率、限额、文件系统读写限额、内存使用率和限额、网络报文发送、接收、丢弃速率等等。
  • API Server:收集API Server的性能指标数据,包括控制队列的性能、请求速率和延迟时长等等
  • etcd:收集etcd存储集群的相关指标数据
  • kube-state-metrics:该组件可以派生出k8s相关的多个指标数据,主要是资源类型相关的计数器和元数据信息,包括制定类型的对象总数、资源限额、容器状态以及Pod资源标签系列等。
  • 每个被监控的主机都可以通过专用的exporter程序提供输出监控数据的接口,并等待Prometheus服务器周期性的进行数据抓取
  • 如果存在告警规则,则抓取到数据之后会根据规则进行计算,满足告警条件则会生成告警,并发送到Alertmanager完成告警的汇总和分发
  • 当被监控的目标有主动推送数据的需求时,可以以Pushgateway组件进行接收并临时存储数据,然后等待Prometheus服务器完成数据的采集
  • 任何被监控的目标都需要事先纳入到监控系统中才能进行时序数据采集、存储、告警和展示
  • 监控目标可以通过配置信息以静态形式指定,也可以让Prometheus通过服务发现的机制进行动态管理

二 在k8s中部署Prometheus

2.1 下载部署Prometheus所需资源

有网的方法

#在helm中添加Prometheus仓库
[root@k8s-master helm]# helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
"prometheus-community" has been added to your repositories

#下载Prometheus项目
[root@k8s-master helm]# helm pull prometheus-community/kube-prometheus-stack
[root@k8s-master helm]# ls
kube-prometheus-stack-62.6.0.tgz

#解压项目包
[root@k8s-master helm]# tar zxf kube-prometheus-stack-62.6.0.tgz
[root@k8s-master helm]# ls
kube-prometheus-stack  kube-prometheus-stack-62.6.0.tgz
[root@k8s-master helm]# cd kube-prometheus-stack/
[root@k8s-master kube-prometheus-stack]# ls
Chart.lock  charts  Chart.yaml  CONTRIBUTING.md  README.md  templates  values.yaml

没网的方法

[root@K8s-master ~]# mkdir prometheus
[root@K8s-master ~]# cd prometheus/
[root@K8s-master prometheus]# ls
grafana-11.2.0.tar                nginx-exporter-1.3.0-debian-12-r2.tar
kube-prometheus-stack-62.6.0.tgz  node-exporter-1.8.2.tar
kube-state-metrics-2.13.0.tar     prometheus-62.6.0.tar
nginx-18.1.11.tgz

[root@K8s-master prometheus]# tar zxf kube-prometheus-stack-62.6.0.tgz 
[root@K8s-master prometheus]# cd kube-prometheus-stack/
[root@K8s-master kube-prometheus-stack]# ls
Chart.lock  charts  Chart.yaml  CONTRIBUTING.md  README.md  templates  values.yaml


[root@K8s-master kube-prometheus-stack]# vim values.yaml 
  imageRegistry: "reg.harbor.org"

#根据所有项目中的values.yaml中指定的image路径下载容器镜像并上传至harbor仓库

#上传镜像
[root@K8s-master kube-prometheus-stack]# cd ..
[root@K8s-master prometheus]# docker load -i prometheus-62.6.0.tar 

打标签

[root@K8s-master prometheus]# docker tag quay.io/prometheus/prometheus:v2.54.1 reg.harbor.org/prometheus/prometheus:v2.54.1
[root@K8s-master prometheus]# docker tag quay.io/thanos/thanos:v0.36.1 reg.harbor.org/thanos/thanos:v0.36.1
[root@K8s-master prometheus]# docker tag quay.io/prometheus/alertmanager:v0.27.0 reg.harbor.org/prometheus/alertmanager:v0.27.0
[root@K8s-master prometheus]# docker tag quay.io/prometheus-operator/admission-webhook:v0.76.1 reg.harbor.org/prometheus-operator/admission-webhook:v0.76.1
[root@K8s-master prometheus]# docker tag registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20221220-controller-v1.5.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值