【prometheus】k8s集群部署prometheus server(文末送书)

目录

一、概述

1.1 prometheus简介

1.2 prometheus架构图

1.3测试环境

二、k8s集群中部署prometheus server

2.1创建sa账号和数据目录

2.2安装prometheus

2.2.1创建configmap存储卷存放prometheus配置信息

2.2.2 通过deployment部署prometheus

2.2.3prometheus pod创建service

三、prometheus可视化

3.1 Graph页面

3.2 Status页面


一、概述


1.1 prometheus简介


Prometheus是一个开源的系统监控和报警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF托管的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上万台规模的集群。

文档地址:

prometheus官网文档地址:Overview | Prometheus

prometheus中文文档地址:第1节:Prometheus 简介 | Prometheus 中文文档

1.2 prometheus架构图


从上图可发现,Prometheus整个生态圈组成主要包括prometheus server,Exporter,pushgateway,alertmanager,grafana,Web ui界面,Prometheus server由三个部分组成,Retrieval,Storage,PromQL。

1.3测试环境


IP

主机名

192.168.40.130

k8s-master1

192.168.40.131

k8s-node1

192.168.40.132

k8s-node2

prometheus部署版本:v2.2.1


二、k8s集群中部署prometheus server


2.1创建sa账号和数据目录


创建sa账号在k8s集群的master节点操作

kubectl create serviceaccount monitor -n monitor-sa  

把sa账号monitor通过clusterrolebing绑定到clusterrole上

kubectl create clusterrolebinding monitor-clusterrolebinding -n monitor-sa --clusterrole=cluster-admin  --serviceaccount=monitor-sa:monitor

在k8s集群的任何一个node节点操作创建数据目录,我在node1上操作如下命令:

mkdir /data
chmod 777 /data/

2.2安装prometheus


安装prometheus,以下步骤均在在k8s集群的master1节点操作。

2.2.1创建configmap存储卷存放prometheus配置信息


  • 获取node节点数据
  • 监控apiserver

prometheus-cfg.yaml内容如下:

---
kind: ConfigMap
apiVersion: v1
metadata:labels:app: prometheusname: prometheus-confignamespace: monitor-sa
data:prometheus.yml: |global:scrape_interval: 15s      # 数据采集时间间隔scrape_timeout: 10s       # 数据采集超时时间evaluation_interval: 1mscrape_configs:             # scrape_configs:配置数据源,称为target,每个target用job_name命名。又分为静态配置和服务发现- job_name: 'kubernetes-node'kubernetes_sd_configs:    # 使用k8s的服务发现- role: node              # 使用node角色,它使用默认的kubelet提供的http端口来发现集群中每个node节点。relabel_configs:          # 重新标记- source_labels: [__address__] # 配置的原始标签,匹配地址regex: '(.*):10250'          # 匹配带有10250端口的ip:10250replacement: '${1}:9100'     # 匹配到的ip:10250的ip保留替换成${1}target_label: __address__    # 新生成的地址action: replace- action: labelmap             # 匹配到下面正则表达式的标签会被保留regex: __meta_kubernetes_node_label_(.+)- job_name: 'kubernetes-node-cadvisor' kubernetes_sd_configs:         # 抓取cAdvisor数据,是获取kubelet上/metrics/cadvisor接口数据来获取容器的资源使用情况- role:  nodescheme: httpstls_config:ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crtbearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/tokenrelabel_configs:- action: labelmapregex: __meta_kubernetes_node_label_(.+)- target_label: __address__replacement: kubernetes.default.svc:443- source_labels: [__meta_kubernetes_node_name]regex: (.+)target_label: __metrics_path__replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor- job_name: 'kubernetes-apiserver'   # apiserver 监控kubernetes_sd_configs:- role: endpointsscheme: httpstls_config:ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crtbearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/tokenrelabel_configs:- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]action: keepregex: default;kubernetes;https  # 正则匹配到的默认空间下的service名字是kubernetes,协议是https的endpoint类型保留下来- job_name: 'kubernetes-service-endpoints'kubernetes_sd_configs:- role: endpointsrelabel_configs:- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape]action: keepregex: true- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme]action: replacetarget_label: __scheme__regex: (https?)- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path]action: replacetarget_label: __metrics_path__regex: (.+)- source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port]action: replacetarget_label: __address__regex: ([^:]+)(?::\d+)?;(\d+)replacement: $1:$2- action: labelmapregex: __meta_kubernetes_service_label_(.+)- source_labels: [__meta_kubernetes_namespace]action: replacetarget_label: kubernetes_namespace- source_labels: [__meta_kubernetes_service_name]action: replacetarget_label: kubernetes_name 
kubectl apply -f prometheus-cfg.yaml
kubectl get ConfigMap  -n  monitor-sa

2.2.2 通过deployment部署prometheus


prometheus-deploy.yaml

---
apiVersion: apps/v1
kind: Deployment
metadata:name: prometheus-servernamespace: monitor-salabels:app: prometheus
spec:replicas: 1selector:matchLabels:app: prometheuscomponent: server#matchExpressions:#- {key: app, operator: In, values: [prometheus]}#- {key: component, operator: In, values: [server]}template:metadata:labels:app: prometheuscomponent: serverannotations:prometheus.io/scrape: 'false'spec:nodeName: node1serviceAccountName: monitorcontainers:- name: prometheusimage: prom/prometheus:v2.2.1imagePullPolicy: IfNotPresentcommand:- prometheus- --config.file=/etc/prometheus/prometheus.yml- --storage.tsdb.path=/prometheus- --storage.tsdb.retention=720h- --web.enable-lifecycleports:- containerPort: 9090protocol: TCPvolumeMounts:- mountPath: /etc/prometheus/prometheus.ymlname: prometheus-configsubPath: prometheus.yml- mountPath: /prometheus/name: prometheus-storage-volumevolumes:- name: prometheus-configconfigMap:name: prometheus-configitems:- key: prometheus.ymlpath: prometheus.ymlmode: 0644- name: prometheus-storage-volumehostPath:path: /datatype: Directory

执行部署 

kubectl apply -f prometheus-deploy.yaml
kubectl get pods  -n  monitor-sa

2.2.3prometheus pod创建service


prometheus-svc.yaml

apiVersion: v1
kind: Service
metadata:name: prometheusnamespace: monitor-salabels:app: prometheus
spec:type: NodePortports:- port: 9090targetPort: 9090protocol: TCPselector:app: prometheuscomponent: server

kubectl apply -f prometheus-svc.yaml
kubectl get svc  -n  monitor-sa


三、prometheus可视化


启动 Prometheus服务后我们可访问Prometheus 自带的Web UI 界面。Web控制页面包含4个子页面:

  • Alerts页面

告警规则和告警信息。可查看告警规则和正在进行的不用状态的告警信息。

  • Graph页面

指标查询和图形化页面展示页面。可查询PromeQL表达式值,以图形或者折线图的方式进行可视化展示。

  • Status页面

状态页面。可查看Prometheus运行和构建信息、命令行标志、系统配置、规则、Targets和Service Discovery等。

  • Help页面

可直接打开官方文档。

测试环境WEB http://192.168.2.139:30546/graph

3.1 Graph页面


  • PromQL表达式输入框

PromQL表达式输入框输入任意的PromQL表达式,点击”Execute“按钮可查询表达式的结果

  • 表格或图形化展示区域

对PromQL表达式的结果按表格或图形化的方式进行展示

控制台展示

图形展示

3.2 Status页面

状态页面。可查看Prometheus运行和构建信息、命令行标志、系统配置、规则、Targets和Service Discovery等。

(1)Runtime & BuildInformation

(2)Command-Line Flags

可查看系统的所有命令行标志参数值。

查看所有的命令标志的帮助命令:进入容器的“./bin"执行"./prometheus -h”。帮助信息中可以看到所有命令行参数及参数描述。

所有命令行标志参数都有一个默认值,我们可以在启动Prometheus服务的时候修改某些标志参数值,如下:

#启动prometheus服务
./bin/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/prometheus

(3)Configuration

可查看所有已生效的配置信息,配置信息来源为如下文件 prometheus.yml中定义。

(4)Rules

可查看系统中已配置的所有规则信息。

(5)Targets

可查看当前prometheus服务监控的各个Target的信息,如:Endpoint、状态、标签、上次pull抓取数据时间、抓取数据耗时、抓取时间时异常信息等。

(6)Service Discovery

可查看Prometheus服务发现的所有job,和每个job的targets信息。


四、Kubernetes书籍介绍


4.1作者介绍


51CTO学堂K8S教学总监,K8S架构师,为移动、电信等进行过多次K8S技术培训,课程包含大量企业真实项目,提供秒级答疑的售后服务和技术支持,是《Kubernetes从入门到DevOps企业应用实战》畅销书作者,K8S开源社区贡献者,Linux基金会做客嘉宾。始终致力于K8S、DevOps等云原生技术的研究,51CTO学堂K8S精培课程主讲老师,课程更新及时,基于最新版本实时更新,拥有多年一线运维实战经验,主导过的k8S项目多达上万个。51CTO十大杰出讲师,国内早批K8S布道者,具有丰富的在线教育经验,发表过多篇K8S等方面的系列文章,累计阅读量现已突破100万。参加过新一代云计算大会,作为主讲嘉宾分享k8s如何助力企业转型、被北京日报、环球网发文专题报道。为移动、联通、咪咕视讯、任子行、电信、天翼互联等大型企业提供多次企业内训和架构设

4.2图书简介


《Kubernetes从入门到DevOps企业应用实战》以实战为主,内容涵盖容器技术、Kubernetes核心资源以及基于Kubernetes的企业级实践。从容器基础知识开始,由浅入深,阐述Kubernetes各个方面的知识,并提供大量实际项目和应用场景。全书共20章,第1~3章讲解容器技术,这是理解Kubernetes的必要基础,主要介绍容器的定义、创建和管理容器、容器网络和存储等方面的知识。第4章讲解如何使用Kubeadm和二进制文件安装高可用Kubernetes集群。第5~12章讲解Kubernetes的核心资源,包括Pod、Deployment、Service、Ingress等资源的定义、使用和管理方法,以及实际应用场景。第13~20章讲解基于Kubernetes的企业实践,介绍如何使用Kubernetes解决实际问题,包括使用Kubernetes进行应用程序的部署、容器云平台的构建、流量治理、监控、自动化扩缩容和灰度发布等项目与案例。

《Kubernetes从入门到DevOps企业应用实战》基于Kubernetes 1.27新版本编写(本书的内容也适合1.20之后的所有版本),从零基础开始,涵盖理论知识、企业级案例,以及自动化运维DevOps体系和一些大厂架构设计思路,适合云原生领域的从业者、Kubernetest初学者、运维和开发人员使用,也可以作为企业内训、培训机构和大中专院校的教学用书。

4.3 自主购买


  小伙伴也可以访问链接进行自主购买哦~

  直达京东购买链接🔗:

《Kubernetes从入门到DevOps企业应用实战》(韩先超)【摘要 书评 试读】- 京东图书


参考链接:

Prometheus监控实战之node_exporter详解_node-exporter-CSDN博客

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

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

相关文章

网络安全主题

网络安全主题 Python信息安全库之fsociety使用详解 https://blog.csdn.net/Rocky006/article/details/136040500 VULNCMS靶机 https://blog.csdn.net/m0_66299232/article/details/128780619 渗透测试框架-Fsociety https://blog.csdn.net/andiao1218/article/details/10119…

ConsiStory:Training-Free的主体一致性生成

Overview 一、总览二、PPT详解 ConsiStory 一、总览 题目: Training-Free Consistent Text-to-Image Generation 机构:NVIDIA, Tel-Aviv University 论文:https://arxiv.org/pdf/2402.03286.pdf 代码:https://consistory-paper.g…

zookeeper快速入门三:zookeeper的基本操作

在zookeeper的bin目录下,输入./zkServer.sh start和./zkCli.sh启动服务端和客户端,然后我们就可以进行zookeeper的基本操作了。如果是windows,请参考前面章节zookeeper快速入门一:zookeeper安装与启动 目录 一、节点的增删改查 …

异常GPT:使用LVLMs检测工业异常

AnomalyGPT:利用LVLMs进行工业异常检测 摘要 本文介绍了一种名为AnomalyGPT的新型工业异常检测方法,该方法基于大型视觉语言模型(LVLMs)。AnomalyGPT能够检测并定位图像中的异常,无需手动设置阈值。此外,AnomalyGPT还可以提供与…

【Java基础知识总结 | 第三篇】深入理解分析ArrayList源码

文章目录 3.深入理解分析ArrayList源码3.1ArrayList简介3.2ArrayLisy和Vector的区别?3.3ArrayList核心源码解读3.3.1ArrayList存储机制(1)构造函数(2)add()方法(3)新增元素大体流程 3.3.2ArrayL…

react03

react03 修改脚手架创建的打包命令 根据scripts中的命令,执行npm run eject ,输入y, 如果对原始的脚手架文件有过改动需要进行将修改后的文件提交到git 历史区 ,防止暴露后的代码覆盖我们自己的文件 git 提交: git add . git commit -m ‘…

java----网络编程(一)

一.什么是网络编程 用户在浏览器中,打开在线视频网站,如优酷看视频,实质是通过网络,获取到网络上的一个视频资源。 与本地打开视频文件类似,只是视频文件这个资源的来源是网络。所谓网络资源就是网络中获取数据。而所…

基于Python的股票市场分析:趋势预测与策略制定

一、引言 股票市场作为投资领域的重要组成部分,其价格波动和趋势变化一直是投资者关注的焦点。准确预测股票市场的趋势对于制定有效的投资策略至关重要。本文将使用Python编程语言,结合时间序列分析和机器学习算法,对股票市场的历史数据进行…

解决Ubuntu(20.04)和Windows11双系统时间不同步问题time for ubuntu and windows

Resolve the time synchronization issue between Ubuntu (20.04) and Windows 11 dual systems 解决Ubuntu(20.04)和Windows11双系统时间不同步问题 reference sudo apt-get install ntpdate sudo ntpdate time.windows.comsudo hwclock --localtime --systohc

晶体管-二极管三极管MOS管选型参数总结

🏡《总目录》 目录 1,概述2,二极管选型参数2.1,类型(Type)2.2,最大整流电流(IF)2.3,反向击穿电压(VRRM)2.4,正向压降(VF)2.5,反向电流(IR)2.6,结温(Tj)2.7,热阻(Rth)2.8,频率特性2.9,包装类型

python提取身份证中的生日和性别

1.代码 def sfzAnalysis(idNum):#检查身份证长度是否正确if len(idNum)!18:raise ValueError("身份证号码长度不正确,请输入一个18位的身份证号码。")#raise关键字在Python中有多种用途,主要涉及异常的抛出和错误处理#提取出生日期year idN…

LabVIEW提升舱救援通讯监测系统

LabVIEW提升舱救援通讯监测系统 随着科技的进步,煤矿救援工作面临着许多新的挑战。为了提高救援效率和安全性,设计并实现了一套基于LabVIEW的提升舱救援通讯监测系统。该系统能够实时监控提升舱内的环境参数和视频图像,确保救援人员和被困人…

el-input设置max、min无效的解决方案

目录 一、方式1:type“number” 二、方式2:oninput(推荐) 三、计算属性 如下表所示,下面为官方关于max,min的介绍: el-input: max原生属性,设置最大值min原生属性&a…

06.共享内存

1.内存映射(mmap) 我们在单片机中首先接触到了映射的概念 将一个寄存器的地址映射到了另外的一个存储空间中 内存映射: 内存映射(Memory Mapping)是一种在计算机科学中使用的技术,它允许将文件或其他设备的内容映射…

idea warning:java源值已过时将在未来所有发行版中删除

在idea中运行maven项目 如果出现idea warning:java源值已过时将在未来所有发行版中删除,详见如下截图所示: 注意:jdk8 要解决这个警告需要设置3个地方 首先打开File->Project Structure中的Project,将SDK和language level都设…

五、保持长期高效的七个法则(二)Rules for Staying Productive Long-Term(1)

For instance - lets say youre a writer.You have a bunch of tasks on your plate for the day, but all of a sudden you get a really good idea for an essay. You should probably start writing now or youll lose your train of thought.What should you do? 举例来说…

分布式搜索引擎(3)

1.数据聚合 **[聚合(](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations.html)[aggregations](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations.html)[)](https://www.ela…

【任职资格】某大型商业金融银行任职资格体系搭建项目纪实

【客户背景】某大型商业金融银行位于南方某省,成立于上个世纪九十年代,是一家具有独立法人资格的股份制商业银行,经过多年发展,下辖20多家分行,近200多个营业网点,并于21世纪初成功上市,规模不断…

机器学习(26)回顾gan+文献阅读

文章目录 摘要Abstract一、李宏毅机器学习——GAN1. Introduce1.1 Network as Generator1.2 Why distribution 2. Generative Adversarial Network2.1 Unconditional generation2.2 Basic idea of GAN 二、文献阅读1. 题目2. abstract3. 网络架构3.1 Theoretical Results 4. 文…

Oracle P6 Professional 配置连接数据库总结

前言 P6 Professional作为Oracle P6计划管理系统的重要套件之一,其操作出色,体检佳,是非常多的计划工程师跟踪项目进度计划的辅助工具。自20年前,Professional一直在不断的演变更新,以适应当前的新技术,从…