中国空间站完成图,做壁纸壁的网站有什么区别,学做网站培训机构,借个网站备案号目录
一、概述
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创…
目录
一、概述
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 serverExporterpushgatewayalertmanagergrafanaWeb ui界面Prometheus server由三个部分组成RetrievalStoragePromQL。
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 --clusterrolecluster-admin --serviceaccountmonitor-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-nodekubernetes_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-endpointskubernetes_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: falsespec:nodeName: node1serviceAccountName: monitorcontainers:- name: prometheusimage: prom/prometheus:v2.2.1imagePullPolicy: IfNotPresentcommand:- prometheus- --config.file/etc/prometheus/prometheus.yml- --storage.tsdb.path/prometheus- --storage.tsdb.retention720h- --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章第13章讲解容器技术这是理解Kubernetes的必要基础主要介绍容器的定义、创建和管理容器、容器网络和存储等方面的知识。第4章讲解如何使用Kubeadm和二进制文件安装高可用Kubernetes集群。第512章讲解Kubernetes的核心资源包括Pod、Deployment、Service、Ingress等资源的定义、使用和管理方法以及实际应用场景。第1320章讲解基于Kubernetes的企业实践介绍如何使用Kubernetes解决实际问题包括使用Kubernetes进行应用程序的部署、容器云平台的构建、流量治理、监控、自动化扩缩容和灰度发布等项目与案例。
《Kubernetes从入门到DevOps企业应用实战》基于Kubernetes 1.27新版本编写本书的内容也适合1.20之后的所有版本从零基础开始涵盖理论知识、企业级案例以及自动化运维DevOps体系和一些大厂架构设计思路适合云原生领域的从业者、Kubernetest初学者、运维和开发人员使用也可以作为企业内训、培训机构和大中专院校的教学用书。
4.3 自主购买 小伙伴也可以访问链接进行自主购买哦~ 直达京东购买链接
《Kubernetes从入门到DevOps企业应用实战》(韩先超)【摘要 书评 试读】- 京东图书 参考链接
Prometheus监控实战之node_exporter详解_node-exporter-CSDN博客