prometheus监控kubernetes集群并使用 grafana展示数据

目录

Prometheus组成及架构

prometheus核心组件

1.Prometheus Server

2.Exporters

3.Alertmanager

4.Pushgateway

数据流程

在k8s中部署Prometheus+Grafana+钉钉告警+邮件告警

将kube-Prometheus包下载后传入虚拟机

tar -xzv kube-promethus.zip

cd 进入

ll 显示目录

至此prometheus以及钉钉告警、邮件告警修改完毕,先按步骤部署即可

1.创建pv

2.cd kube-state-metrics

3.cd node-export

4.cd alertmanager

5.cd prometheus-server

6.部署Grafana

7.现在为 Grafana添加一个数据源为Prometheus

8.添加模板


Prometheus组成及架构

prometheus核心组件

1.Prometheus Server

整个监控系统的核心 ,有以下功能

数据采集 :

通过http协议主动从目标服务器pull(拉取)指标数据,也可以通过 Pushgateway接受推送数据

数据存储:

将采集的时序数据存储到本地的时序数库,默认保留15天

查询与聚合提供PromeQL的查询语言,支持实时分析聚合数据

告警与评估

根据定义的告警规则计算是否触发告警,并将告警发送给Alertmanager

2.Exporters

用于将非Prometheus的数据类型转换为Prometheus可识别的格式,如

主机监控:

node_exporter(收集CPU、内存、磁盘等主机指标)

应用监控:

如myspl_exporter(MySQL)、redis_exporter(redis)、blackbox_exporter(HTTP/ICMP探测)

自定义:

开发符合Prometheus规范的HTTP接口,暴露应用内不指标(如业务接口调用量)

3.Alertmanager

告警分组:

将同类的告警合并(如多台服务器同时触发高CPU告警)

告警抑制:

当某个告警触发后,抑制其他相关的次要告警(如服务器宕机后,抑制其上应用告警)

告警路由:

根据规则将告警发送到不同的接收端(如邮件、Slack、PagerDuty、企业微信、钉钉等)

4.Pushgateway

可选组件,用于接收短期任务(如 CI/CD 作业)的指标数据,再由 Prometheus 定期从 Pushgateway 拉取。(因 Prometheus 原生是 Pull 模式,短期任务可能在被拉取前结束,故需 Pushgateway 中转)

数据流程

  1. 目标服务通过 Exporter 暴露指标接口(或通过 Pushgateway 推送数据)。
  2. Prometheus Server 定期拉取指标并存储到 TSDB。
  3. 用户通过 PromQL 或 Grafana 查询数据。
  4. Prometheus 评估告警规则,触发时将告警发送给 Alertmanager。
  5. Alertmanager 处理告警并路由到指定接收端。

在k8s中部署Prometheus+Grafana+钉钉告警+邮件告警

需要自己部署好nfs环境最好在主节点

将kube-Prometheus包下载后传入虚拟机

此目录中文件全部可用,但需修改nfs的目录路径,已经nfs的IP、钉钉的Webhook,secret和邮件的收件人和发送人

tar -xzv kube-promethus.zip

cd 进入

ll 显示目录

1  cd alertmanager

vim alertmanager-configmap.yml

2  alertmanager 目录只需修改此文件,现在退出至上一目录

进入钉钉应用

选择一个群,进入设置,点击添加机器人,选择加签,选择添加即可

再次点击机器人,下面会用到webhook和secret

cd ..

cd dingding

vim dingtalk-configmap.yaml 修改图中标出的url和secret

dingding修改完毕,现在退至上一目录

3.  cd nfs-pv/

vim pv-demo.yml

4.  nfs-pv 目录修改完毕,退出至上一目录

cd promethus-server

vim promethus-configmap.yml

至此prometheus以及钉钉告警、邮件告警修改完毕,先按步骤部署即可

1.创建pv

cd nfs-pv

kubectl apply -f ./

我因为之前已经创建好了,所以这里显示unchanged,正常显示的是created

kubectl get pv 查看创建的pv 我的status是Bound因为已经绑定了pvc,正应该是Available

2.cd kube-state-metrics

kubectl apply -f .

同上,我的是unchanged,正常为created

kubectl get pod -n kube-system 查看pod状态 正常应为 reday 2/2 runing

若出现pod状态为ErrImagePull ,则使用describe 查看pod状态

kubectl describe pod kube-state-metrics-769d7f8b8b-rf2h2(换成自己的pod)命令查看报错

发现镜像拉不下来,则使用 -o wide 看pod分配到哪个节点,文章下面有对应的包

下载后传到虚拟机上在使用 docker load -i 包名 即可拉取镜像

等待2分钟再次观察pod的状态,发现变为runing

3.cd node-export

启动次pod时,注意使用的控制器时Daemonset,则每个节点都需要运行一个pod,但是master节点一般会有污点(为了提高master的管理效率,一般不在master上运行pod),所以我们需要清理污点

首先看master的污点类型

kubectl describe nodes master名称 | grep Taint

过滤结果大概率为 node-role.kubernetes.io/master:NoSchedule

去除污点

将污点去除

kubectl taint nodes master名称 node-role.kubernetes.io/master:NoSchedule- (注意这个减号,是去除的意思)

然后执行

kubectl apply -f ./

依旧同上

查看pod状态

kubectl get pod -n kube-system -o wide

会有三个pod运行,且master、k8s-node01、k8s-node02各运行一个

若状态有问题,describe查看报错,若镜像 拉不下来,先给每个节点添加一个8.8.8.8的DNS,

vim /etc/sysconfig/network-scripts/ifcfg-ens33 编辑此文件添加一个DNS

保存退出后重启网络

systemctl restart network

等待两分中,若不行,使用下面方法

下载包(文章下面有),再传到每个虚拟机,执行docker load -i 即可

查看svc

kubectl get svc -n kube-system

4.cd alertmanager

kubectl apply -f ./

同上

查看pod是否创建

kubectl get pods -l "k8s-app=alertmanager" -n kube-system

查看svc

kubectl get svc -n kube-system

5.cd prometheus-server

kubectl apply -f ./

同上

查看pod和svc是否成功创建

kubectl get pods -l "k8s-app=prometheus" -n kube-system

kubectl get svc -n kube-system

至此Prometheus部署完毕,测试是否可用

访问任意节点的IP+30090端口

例如:192.168.80.147:30090

6.部署Grafana

cd grafana

kuebctl apply -f ./

同上

查看pod和svc状况

kubectl get pod -n kube-system | grep monitoring-grafana

kubectl get svc -n kube-system | grep monitoring-grafana

至此Grafana部署完毕

测试访问192.168.810.147:32325

能进入代表部署成功

7.现在为 Grafana添加一个数据源为Prometheus

点击Connections 连接

点击 data sources数据源

搜索prometheus

点进去

添加prometneus的svc IP和端口

IP为prometheus的svc内部集群IP 端口为9090

添加好之后滑到最下面保存即可

8.添加模板

进入此网站搜索node,选择第一个,进入后下载最新的

Grafana dashboards | Grafana Labs

然后回到刚才的Grafana主页的home

选择Dashborad

点击右上角的 +

选择import dashborad

点击导入模板,选择刚才下载的模板,我这有三个,你们只有一个刚才下载的

选择数据源为 prometheus

点击import导入即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/96730.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/96730.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

K8s 实战:Pod 版本更新回滚 + 生命周期管控

一、版本更新与回滚实验背景本实验通过 Kubernetes 的 Deployment 资源演示应用的版本更新与回滚流程。Deployment 是 Kubernetes 中用于管理 Pod 和 ReplicaSet 的核心资源,支持滚动更新(避免服务中断)和版本回滚(应对更新故障&a…

静电服漏检率↓79%!陌讯多模态识别算法在智慧安检的实战解析

​原创声明​​:本文技术方案引自《陌讯视觉算法技术白皮书V3.1》,实测数据来自工业场景部署验证 一、行业痛点:静电防护失效的隐形风险 据《电子制造业安防报告2025》统计,精密电子车间因静电服穿戴不规范导致的次品率高达23%&a…

StarRocks不能启动 ,StarRocksFe节点不能启动问题 处理

StarRocks不能启动 ,StarRocksFe节点不能启动问题 处理 问题描述 mysql:[Warning] Using a passwordon the command line interface can be insecureERROR 2003 (HYa00): Can’t connect to MysoL server on ‘192.168.5.128:9030’(111)Error: failed to query fE…

麒麟系统播放图片 速度比较

pygame效果比opencv好,opencv有锯齿:import pygame import os import timedef show_image_sdl(image_path):"""使用SDL2快速显示图片"""# 初始化pygamepygame.init()# 获取屏幕信息info pygame.display.Info()screen_wid…

复杂场景横幅识别准确率↑91%!陌讯多模态融合算法在智慧园区的实战解析

一、行业痛点:园区违规横幅识别的三重挑战 据《2024智慧园区安防报告》(来源:CCSA TC10)统计: ​​强光干扰​​:玻璃幕墙反光导致文字识别错误率超50% ​​形变干扰​​:横幅褶皱、飘动造成关…

Mybatis Plus - 代码生成器简单使用

1.引入依赖<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.12</version></dependency><dependency><groupId>com.baomidou</groupId><ar…

vue2腾讯地图点击地图获取地址经纬度web

注意&#xff1a;&#xff01;&#xff01;&#xff01;在做uniapp小程序导航功能时&#xff0c;拿到我们在后台管理设置的经纬度&#xff0c;根据经纬度去导航到店的时候&#xff0c;最好用腾讯地图来获取经纬度&#xff0c;uniapp小程序那边默认导航经纬度是腾讯系的&#xf…

7.6 残差网络

随着我们设计越来越深的网络&#xff0c;深刻理解 新添加的层如何提升神经网络的性能&#xff0c;变得至关重要。更重要的是设计网络的能力&#xff0c;在这种网络中&#xff0c;添加层会使网络更具有表达力&#xff0c;为了取得质的突破&#xff0c;需要一些数学基础。7.6.1 函…

建模工具Sparx EA的多视图协作教程

在传统建模工具中&#xff0c;功能繁杂、界面混乱、窗口频繁切换等问题长期困扰着架构师与开发人员&#xff0c;不仅拖慢设计节奏&#xff0c;更导致模型与文档严重脱节。企业架构与建模平台Sparx EA直面这些挑战&#xff0c;通过现代化的Ribbon界面与多视图协作机制&#xff0…

从聚类到集成,两种实用算法框架分享

一、K-means&#xff1a;让数据自己 “找组织”什么是聚类&#xff1f;聚类属于无监督学习的范畴 —— 简单说就是手里没有标签时&#xff0c;我们要把长得像的样本分到一组。比如给一堆用户数据&#xff0c;不需要提前知道 “高价值用户”“潜在用户” 这些标签&#xff0c;聚…

Elasticsearch:什么是神经网络?

神经网络定义 神经网络&#xff08;Neural networks&#xff09;是机器学习&#xff08;machine learning&#xff09;的一个子集&#xff0c;旨在模拟生物大脑的结构和功能。也称为人工神经网络 (artificial neural networks - ANNs)&#xff0c;神经网络由互连的节点或人工神…

XTDrone——无人机基于2D激光Lidar进行二维运动规划(细节提醒以及相关报错解决)

参考XTDrone文档&#xff1a; 二维激光SLAM&#xff08;HectorSLAM&#xff09; 语雀 二维运动规划 语雀 相关ROS依赖库&#xff1a; 本地基于的是20.04的ubuntu系统&#xff1a; sudo apt install -y ros-noetic-move-base \ ros-noetic-costmap-2d \ ros-noetic-dwa-l…

机器学习算法-朴素贝叶斯

朴素贝叶斯分类器就是根据贝叶斯公式计算结果进行分类的模型&#xff0c;“朴素”指事件之间相互独立无影响. 例 如&#xff1a;有如下数据集&#xff1a;Text CategoryA great game&#xff08;一个伟大的比赛&#xff09;Sports&#xff08;体育运动&#xff09;The e…

RoPE, 2D RoPE, 3D RoPE和复数

旋转位置编码是一种用于Transformer架构中的位置编码方法&#xff0c;从复数的角度来看&#xff0c;其主要利用了复数的乘法性质来实现位置编码&#xff0c;以下作为学习记录&#xff1a;1. 旋转位置编码1&#xff09;对于输入序列的每个位置的嵌入向量&#xff0c;将嵌入向量分…

Java静态代理与动态代理实战解析

Java静态代理 示例代码 接口&#xff1a; package com.ssg.aop.interfaces;public interface MathCalculator { // 加法public int add(int a, int b); }接口实现类&#xff1a; package com.ssg.aop.impl; import com.ssg.aop.interfaces.MathCalculator;public class Math…

如何排查服务器DNS解析失败的问题

服务器 DNS 解析失败会导致无法访问域名&#xff08;如 google.com&#xff09;&#xff0c;可能影响服务器的正常运行。以下是排查 DNS 解析失败问题的详细步骤&#xff0c;包括可能的原因、诊断方法和解决方案。1. 原因分析DNS 解析失败通常由以下原因引起&#xff1a;DNS 配…

音视频面试题集锦第 32 期

音视频学习群&#xff1a;https://gjzkeyframe.github.io/posts/wechat-group/ 音视频面试题集锦第 32 期&#xff1a; 1、请详细解释 H.264 编码中的熵编码方式&#xff08;CAVLC 和 CABAC&#xff09;&#xff0c;它们的区别和适用场景是什么&#xff1f;2、解释 H.264/H.2…

最大矩形+单调栈

题目&#xff1a;思考1&#xff1a; 利用柱形图最大矩形的思想对于矩阵的每一行看作是柱形图的地基对每一行&#xff08;认定为柱形图&#xff09;执行找最大矩形 实现&#xff1a; class Solution { public:int maximalRectangle(vector<vector<char>>& matri…

NewsNow搭建喂饭级教程

大家在自媒体写文章里遇到最难的问题便是查找题材了&#xff0c;随便选择的题材没多少人会去看&#xff0c;平台也不会给流量推送&#xff0c;所以&#xff0c;只有围绕热门题材去进行文章创作&#xff0c;才能得到平台的重点推送以及大家的关注&#xff01; 在做这个功能前&a…

大疆无人机平台 资源开放

一、部署包说明 目前基于大疆上云api开发的平台经过多轮测试&#xff0c;已经有了个稳定的版本&#xff0c;并且有山东滨州、陕西西安、河南郑州、上海、广东深圳、广东广州、宁夏以及安徽等各地的用户使用在公路巡检、森林防火、电力巡查等行业中。 下面将会先将部署包免费开…