k8s部署prometheus
创始人
2025-06-01 03:14:05

k8s部署prometheus

版本说明:

k8s:1.24.4

prometheus:release-0.12(https://github.com/prometheus-operator/kube-prometheus.git)

本次部署采用operator的方式将prometheus部署到k8s中,需对k8s和prometheus有一定的了解

一、下载对应版本代码到服务器

git clone -b release-0.12 https://github.com/prometheus-operator/kube-prometheus.git

二、修改几个配置的镜像(国内无法访问registry.k8s.io)

vim prometheusAdapter-deployment.yaml

image: v5cn/prometheus-adapter:v0.10.0

vim kubeStateMetrics-deployment.yaml

image: bitnami/kube-state-metrics:2.8.1

另外修改下grafana的service类型为nodeport

vim grafana-service.yaml

  selector:app.kubernetes.io/component: grafanaapp.kubernetes.io/name: grafanaapp.kubernetes.io/part-of: kube-prometheustype: NodePort

二、部署

cd kube-prometheus/manifests
kubectl create -f setup/
kubectl create -f .

部署的时候看下输出,看有无报错,最后看下启动的pod

kubectl get pod -n monitoring

NAME                                   READY   STATUS    RESTARTS   AGE
alertmanager-main-0                    2/2     Running   0          16m
blackbox-exporter-58c9c5ff8d-l6x52     3/3     Running   0          70m
grafana-74f97479b9-pwdn9               1/1     Running   0          70m
kube-state-metrics-676764b849-4qjqw    3/3     Running   0          33m
node-exporter-46w4n                    2/2     Running   0          70m
node-exporter-4zwtf                    2/2     Running   0          28m
node-exporter-m6bgl                    2/2     Running   0          70m
prometheus-adapter-85df796f6c-cfgj6    1/1     Running   0          59m
prometheus-adapter-85df796f6c-p2vr5    1/1     Running   0          59m
prometheus-k8s-0                       2/2     Running   0          25m
prometheus-operator-5687547bb5-jgrb6   2/2     Running   0          31m

三、访问grafana

查看grafana的service地址和端口

kubectl get service -n monitoring |grep grafanagrafana                 NodePort    192.168.252.227           3000:30280/TCP               73m

然后使用node节点的公网ip加30280访问,默认账号密码是admin/admin

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

黑盒监控

一、部署

新版 Prometheus Stack 已经默认安装了 BlackboxExporter,可以通过以下命令查看:

kubectl get po -n monitoring -l app.kubernetes.io/name=blackbox-exporterNAME                                 READY   STATUS    RESTARTS      AGE
blackbox-exporter-58c9c5ff8d-spvbz   3/3     Running   4 (23h ago)   23h

同时也会创建一个 Service,可以通过该 Service 访问 Blackbox Exporter 并传递一些参数:

kubectl get svc -n monitoring -l app.kubernetes.io/name=blackbox-exporterNAME                TYPE        CLUSTER-IP        EXTERNAL-IP   PORT(S)              AGE
blackbox-exporter   ClusterIP   192.168.253.141           9115/TCP,19115/TCP   27h

比如检测下 www.baidu.com(使用任何一个公网域名或者公司内的域名探测即可)网站的状态,可以通过如下命令进行检查:

 curl -s "http://192.168.253.141:19115/probe?target=www.baidu.com&module=http_2xx" | tail -1probe_success 1

probe 是接口地址,target 是检测的目标,module 是使用哪个模块进行探测。

如果集群中没有配置 Blackbox Exporter,可以参考https://github.com/prometheus/blackbox_exporter 进行安装。

二、Prometheus 静态配置

首先创建一个空文件,然后通过该文件创建一个 Secret,那么这个 Secret 即可作为Prometheus 的静态配置:

touch prometheus-additional.yaml
kubectl create secret generic additional-configs --from-file=prometheus-additional.yaml -n monitoring

创建完 Secret 后,需要编辑下 Prometheus 配置:

cd /soft/yaml/prometheus/kube-prometheus/manifests
vim prometheus-prometheus.yaml# 添加image下面的四行image: quay.io/prometheus/prometheus:v2.42.0additionalScrapeConfigs:key: prometheus-additional.yamlname: additional-configsoptional: true

然后replace一下

kubectl replace -f prometheus-prometheus.yaml

之后在 prometheus-additional.yaml 文件内编辑一些静态配置,此处用黑盒监控的配置进行演示:

注意回到刚才创建这个文件的路径

vim prometheus-additional.yaml

- job_name: 'blackbox'metrics_path: /probeparams:module: [http_2xx] # Look for a HTTP 200 response.static_configs:- targets:- http://gaoxin.kubeasy.com # Target to probe with http.- https://www.baidu.com # Target to probe with https.relabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]target_label: instance- target_label: __address__replacement: blackbox-exporter:19115 # The blackbox exporter's realhostname:port.

➢ targets:探测的目标,根据实际情况进行更改

➢ params:使用哪个模块进行探测

➢ replacement:Blackbox Exporter 的地址

可以看到此处的内容,和传统配置的内容一致,只需要添加对应的 job 即可。之后通过该文件更新该 Secret:

kubectl create secret generic additional-configs --from-file=prometheus-additional.yaml --dry-run=client -oyaml | kubectl replace -f - -n monitoring

更新完成后,稍等一分钟即可在 Prometheus Web UI 看到该配置:

在这里插入图片描述

但是它这个state的取值有点奇怪,上面那个域名是无法访问的,但是在这里确是up状态

在这里插入图片描述

但是在graph这边查询对应的取值,是可以看到的,无法访问的那个取值为0,后面添加告警规则的时候通过这个来进行取值就行了

配置企业微信告警

一、部署alertmanager

新版本的prometheus-operator是已经部署好的

kubectl get pod -n monitoring alertmanager-main-0                    2/2     Running   0             20h

二、修改配置

cd /soft/yaml/prometheus/kube-prometheus/manifests
vim alertmanager-secret.yaml

整个拷贝即可

apiVersion: v1
kind: Secret
metadata:labels:app.kubernetes.io/component: alert-routerapp.kubernetes.io/instance: mainapp.kubernetes.io/name: alertmanagerapp.kubernetes.io/part-of: kube-prometheusapp.kubernetes.io/version: 0.25.0name: alertmanager-mainnamespace: monitoring
stringData:alertmanager.yaml: |-"global":"resolve_timeout": "5m""inhibit_rules":- "equal":- "namespace"- "alertname""source_matchers":- "severity = critical""target_matchers":- "severity =~ warning|info"- "equal":- "namespace"- "alertname""source_matchers":- "severity = warning""target_matchers":- "severity = info"- "equal":- "namespace""source_matchers":- "alertname = InfoInhibitor""target_matchers":- "severity = info""receivers":- "name": "web.hook""webhook_configs":- "url": 'http://172.16.0.47:8880/wx'"route":"group_by": ['alertname']"group_wait": 10s"group_interval": 1m"repeat_interval": 5m"receiver": 'web.hook'
type: Opaque

我这边是发送到一个中转站- "url": 'http://172.16.0.47:8880/wx',有了这个中转站就可以直接发送到企业微信的群里面,而不用配置企业应用

三、部署中转站

微信群机器人 第三方钩子

docker run -itd --name webhook-adapter -p 8880:80 \guyongquan/webhook-adapter \
--adapter=/app/prometheusalert/wx.js=/wx=https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=8255-9602-418e-a0b3-0b8deaa28}

部署的时候就修改一个地方,key后面的内容换成你自己企业微信群的机器人的key,也就是这一串8255-9602-418e-a0b3-0b8deaa28

四、添加告警规则

其实上面部署的时候已经自带了很多官方的告警规则,但很多不适用,然后我们自己来添加一些规则

mkdir -p /soft/yaml/prometheus/myself-config-prometheus/probe
cd /soft/yaml/prometheus/myself-config-prometheus/probe

vim blackbox-prometheusRule.yaml

apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:labels:app.kubernetes.io/component: exporterapp.kubernetes.io/name: blackbox-exporterprometheus: k8srole: alert-rulesname: blackbox-rulenamespace: monitoring
spec:groups:- name: blackbox-exporterrules:- alert: DomainAccessDelayExceeds1sannotations:description: 域名:{{ $labels.instance }} 探测延迟大于 1 秒,当前延迟为:{{ $value }}summary: 域名探测,访问延迟超过 1 秒expr: sum(probe_http_duration_seconds{job=~"blackbox"}) by(instance) > 1for: 1mlabels:severity: warning- alert: ServiceIsDownannotations:description: 服务:{{ $labels.instance }} 挂了,当前取值为:{{ $value }}summary: 服务探测,30s内已经访问不到了expr: probe_success < 1for: 30slabels:severity: error

这个写的比较简单,需根据自己业务去自定义规则

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

相关内容

热门资讯

今日起招股发售价9.75港元,... 6月2日,车来了母公司元光科技启动全球发售,发售价9.75港元,预计将在6月10日在港交所挂牌。元光...
港股午评:恒生指数跌2.20%... 新京报贝壳财经讯 6月2日,港股午间收盘,恒生指数跌2.20%,恒生科技指数跌2.43%。石药集团跌...
夏乐:美债压力与美元走弱 全球... 原创 财联社 蜂网专家2025年05月29日《首席说》是财联社倾力打造的一档高端直播联线栏目。面向泛...
罗志恒:财政政策不应受3%赤字... 罗志恒系粤开证券首席经济学家、中国首席经济学家论坛理事自2008年以来,本轮积极财政政策实行了长达1...
三大利空,突袭! 三大利空,突... 时局依然不稳!今天早上,全球市场全线杀跌。日经指数一度杀跌近1.5%,中国台湾股指大跌近1%,港股三...
美国客户“疯狂”催单 这家川企... 自硬公司的精密零件产品之一:随钻用核心零部件。韩吉尔摄 “5月中旬,美国休斯敦的客户发邮件,要求尽快...
这只港股,突然暴涨超60%!发... 6月2日,亚太股市开盘后持续走弱。不过,港股方面,加密货币数字概念股大涨,连连数字涨62.67%。港...
招商基金三首席同日上任!“去管... 当同行纷纷为投研人才做“去管理化”减法时,招商基金却反其道而行之,提拔朱红裕、王景两位基金经理。这究...
2025浙江国际电子商务博览会... 这个周末,端午的粽叶飘香和六一小朋友的欢笑声撞了个满怀~跨境电商圈也跟着热闹到飞起。 从节令美食到文...
头部餐饮,火拼儿童餐 头部餐饮... 总第4234期作者 |餐饮老板内参内参君儿童餐,卷入next level端午恰逢六一,双节叠加背景下...
舆论战升级!巨子生物深夜回应,... 2025.06.02本文字数:2490,阅读时长大约4分钟作者 |第一财经 刘晓颖重组胶原蛋白成分之...
财经时评|以创新厚度重塑汽车产... 作者 远山中国汽车工业协会与工业和信息化部近期针对行业“内卷式”竞争的联合发声,为持续蔓延的价格战按...
恒生指数午盘下跌2.20%,恒... 6月2日午盘,香港恒生指数下跌2.20%,报22778.45点;恒生科技指数下跌2.43%,报504...
“以旧换新”带货1万亿,中国何... “美国想让制造业回流成为中国的样子,一个踏实劳作的‘生产者社会’;而中国想努力扩大消费成为美国的样子...
恒指半日跌2.2% 恒指半日跌... 【恒指半日跌2.2%】截至午间收盘,香港恒生指数下跌2.20%,报22778.45点;恒生科技指数下...
“成分之争”舆论战升级,巨子生... 重组胶原蛋白成分之争的舆论战再度升级。美妆博主 "大嘴博士" (郝宇)近日连续发文质疑,巨子生物(0...
汇川技术新注册《InoCube... 证券之星消息,近日汇川技术(300124)新注册了《InoCube-InoData数据分析系统V1....
博将控股多家所投企业荣登202... 博将控股多家所投企业荣登2025杭州独角兽与准独角兽榜单 2025年4月24日,由民建浙江省委会、浙...
刚刚,A50直线跳水!亚太股市... 6月2日,亚太股市开盘后持续走弱。富时中国A50期货开盘跌0.6%,截至目前跌幅1.91%。 截至...
问界、智界、享界、尊界,202... 2025鸿蒙智行:四界表现鸿蒙智行作为国内造车新势力的主流品牌,一共规划了“五界”车型,包括:问界、...
花样年控股:重组支持协议的最后... 6月1日,花样年控股(01777.HK)公告称,公司2024年4月29日所订立的重组支持协议的最终截...
蜜雪集团股价创上市以来新高 蜜... 新京报贝壳财经讯 6月2日,港股蜜雪集团盘中涨超7%,股价刷新上市新高。
美单边关税让全球经济面临更大不... 美国征收关税的对象和标准可能随意变更,其关税政策具有不可预测性。无论是外国企业,还是美国本土企业,都...
桃李面包创始人向其两儿子转让3... 5月30日晚间,桃李面包(沪市代码:603866)公告称,公司控股股东及实际控制人吴志刚通过大宗交易...
前4月东莞重大项目完成投资42... 本期看点:前4月东莞重大项目完成投资429.09亿元;长联科技募投项目提升年产至2.77万吨;广东省...
恒生指数跌幅扩大至2%,医药、... 6月2日,恒生指数跌幅扩大至2%,医药、地产、能源板块跌幅居前,美中嘉和跌超14%,石四药集团跌近1...
港股、A50飘绿,亚太市场多数... 早间,亚太市场多数下跌。港股、A50集体下跌其中,恒生指数、恒生科技指数开盘跌幅扩大, 港股生物技术...
雷军看好的两兄弟,要IPO了 ... 2021年夏,小米产业园办公室内,雷军饶有兴致地打量眼前一对兄弟,“为什么张波是创始人,董事长却是张...
圣阳股份涨1.66%,成交额9... 5月30日,圣阳股份涨1.66%,成交额9.82亿元,换手率15.03%,总市值66.67亿元。 异...