Prometheus结合K8s(一)搭建

公司之前K8s集群没有监控,top查看机器cpu使用率很高,为了监控pod的cpu和内存,集群外的mysql资源,初步搭建了Prometheus监控系统

提前准备镜像

docker.io/grafana/grafana 10.4.4

docker.io/prom/prometheus v2.47.2

docker.io/prom/node-exporter v1.5.0

docker.io/prom/mysqld-exporter v0.14.0

docker.io/gcmirrors/kube-state-metrics-amd64 v1.7.1

将这些 tar 文件传输到离线环境中的机器并导入 Docker:根据harbor仓库上传镜像

Granfana是可视化界面

Node-exporter监控主机节点,所以必须每个节点都跑一个

Prometheus:server,有特定的格式;采集逻辑仅支持pull模式(意思是),通过http/https接口连接

kube-state-metrics-amd64:监控k8s里面资源

配置文件

创建名称空间

Kubectl apply -f .

cat namespace.yaml
---
apiVersion: v1
kind: Namespace
metadata:name: prom
​

部署Prometheus

采集监控对象的指标:

  1. 遵循Prometheus特有的指标格式

  1. 主机: node_exporter

  1. 后端服务: MySQL--> mysql_exporter,tomcat-->tomcat_exporter

  1. 内建测量系统: 支持http(s)://SERVER:PORT/PATH对外暴露指标

#例子:[root@ubuntu ~]#curl http://localhost:9090/metrics

查看Prometheus自身的指标

  1. 通过http/https协议暴露指标

#第三方exporter: 地址 https://prometheus.io/docs/instrumenting/exporters/

#官方自行维护的exporter: 地址 https://prometheus.io/download/

  1. 把目标(target)纳入监控来: 静态配置 动态发现:

  1. 如何标示target:

#Prometheus会为每个target创建一个名为up(自身的)的指标;用于监控自身状态http(s)://SERVER:PORT/PATH

scheme: 协议,默认是http

endpoint: SERVER:PORT

path: /PATH,默认/metrics

  1. job: 作业;每一个采样的过程叫job

  1. Prometheus指标抓取的生命周期: 发现--配置--relabel--指标数据抓取--metrice relabel

  1. 重新打标: target 重新打标 metric 重新打标

于集群的资源有metrics度量值的概念,有各种不同的exporter可以通过api接口对外提供各种度量值的及时数据,prometheus在与k8s融合工作的过程,就是通过与这些提供metric值得exporter进行交互

对于exporter提供的metrics,采取拉的方式获取metrics(通常方式),对接的exporter常见的有:kube-apiserver 、cadvisor、node-exporter,也可根据应用类型部署相应的exporter,获取该应用的状态信息

可以按照官方定义的expr表达式格式,以及PromQL语法对相应的指标进程过滤,数据展示及图形展示。不过自带的webui较为简陋,但prometheus同时提供获取数据的api,grafana可通过api获取prometheus数据源,来绘制更精细的图形效果用以展示。

配置configmap,在部署前将Prometheus主程序配置文件准备好,以configmap的形式挂载进deployment中。

cat Prometheus-cfg.yaml

配置文件参考https://github.com/iKubernetes/k8s-prom/tree/master/prometheus,根据实际生产所需要求自行定义指标,参考文件中未给出mysql和grafana的实例,已在下方给出

Kubectl apply -f prom/

Rules是告警

MySQL Exporter

首先在mysql上创建账号,并授权该账号能够查看全局的status以及能够访问performance_schema,以便 于获取到mysql内部的各项数据配置;而mysqld_exporter则使用该用户登录到mysql上执行查询操作,并 且将采集到的数据转换后使用http的方式暴露给prometheus

MySQL Exporter 用于导出 MySQL 数据库的监控指标。

  1. 首先在 MySQL 数据库中创建一个用户来访问监控信息:

CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'Expor.123';

GRANT PROCESS, REPLICATION CLIENT, SELECT ON . TO 'exporter'@'localhost';

FLUSH PRIVILEGES;

cat mysql-exporter.yaml

apiVersion: apps/v1
kind: Deployment
metadata:name: mysqld-exporternamespace: prom
spec:replicas: 1selector:matchLabels:app: mysqld-exportertemplate:metadata:labels:app: mysqld-exporterspec:containers:- name: mysqld-exporterimage: prom/mysqld-exporter:v0.14.0imagePullPolicy: IfNotPresentports:- containerPort: 9104env:- name: DATA_SOURCE_NAMEvalue: "exporter:Expor.123@(mysqlhost:3306)/"args:- --collect.info_schema.innodb_metrics- --collect.info_schema.innodb_tablespaces- --collect.perf_schema.eventsstatementssum- --collect.perf_schema.memory_events- --collect.global_status- --collect.engine_innodb_status- --collect.binlog_size
​
---
​
apiVersion: v1
kind: Service
metadata:name: mysqld-exporternamespace: prom
spec:type: ClusterIPports:- port: 9104targetPort: 9104name: mysqld-exporter selector:app: mysqld-exporter

Kubectl apply -f .

Node-exporter

Kubectl apply -f .

Kube-state-metrics

Kubectl apply -f .

Granfana

apiVersion: apps/v1
kind: Deployment
metadata:name: grafananamespace: promlabels:app: grafana
spec:replicas: 1selector:matchLabels:app: grafanatemplate:metadata:labels:app: grafanaspec:containers:- name: grafanaimage: grafana/grafana:10.4.4  # 使用最新的Grafana镜像imagePullPolicy: IfNotPresentports:- containerPort: 3000  # Grafana默认运行在3000端口env:- name: GF_SECURITY_ADMIN_PASSWORD  # 设置管理员密码(可选)value: "admin"
---
apiVersion: v1
kind: Service
metadata:name: grafana
spec:type: NodePort  # 使用NodePort类型ports:- port: 3000  # Service端口targetPort: 3000  # 容器端口nodePort: 32000  # 指定NodePort(可选,Kubernetes会自动分配一个未使用的端口)selector:app: grafana
​
​

Kubectl apply -f .

一个初步的监控系统就搭建完成了,下一篇介绍如何使用

Prometheus结合K8s(二)使用-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Vscode/Code-server无网环境安装通义灵码

Date: 2024-11-18 参考材料:https://help.aliyun.com/zh/lingma/user-guide/individual-edition-login-tongyi-lingma?spma2c4g.11186623.0.i0 1. 首先在vscode/code-server插件市场中安装通义插件,这步就不细说了。如果服务器没网,会问你要…

【划分型DP-约束划分个数】力扣813. 最大平均值和的分组

给定数组 nums 和一个整数 k 。我们将给定的数组 nums 分成 最多 k 个非空子数组,且数组内部是连续的 。 分数 由每个子数组内的平均值的总和构成。 注意我们必须使用 nums 数组中的每一个数进行分组,并且分数不一定需要是整数。 返回我们所能得到的最…

IDEA:2023版远程服务器debug

很简单,但是很多文档没有写清楚,wocao 一、首先新建一个远程jvm 二、配置 三、把上面的参数复制出来 -agentlib:jdwptransportdt_socket,servery,suspendn,address5005 四、然后把这串代码放到服务器中 /www/server/java/jdk1.8.0_371/bin/java -agentl…

centos安装jenkins

本机使用虚拟机centos 7.9.2009 安装gitlab,本机的虚拟机ip地址是 192.168.60.151, 步骤记录如下 1、下载jenkins,安装jenkins之前需要安装jdk jdk和jenkins的版本对应关系参考:Redhat Jenkins Packages Index of /redhat-stable…

蜀道山CTF<最高的山最长的河>出题记录

出这道题的最开始感觉就是,因为现在逆向的形式好多,我最开始学习的时候,经常因为很多工具,或者手段完全不知道,就很懵逼,很多师傅都出了各种类型的,我就想着给以前的"自己"出一道正常exe,慢慢调的题,为了不那么简单,我就选择了C(究极混淆,可能比rust好点),让大家无聊…

中伟视界:AI智能分析算法如何针对非煤矿山的特定需求,提供定制化的安全生产解决方案

非煤矿山智能化改造,除了政策文件,上级监管单位需要安装的AI智能分析算法功能之外的,矿方真正关心的,能解决矿方安全生产隐患的AI智能分析算法功能有哪些呢? 经过与矿方的现场交流沟通,收集第一现场人员对安…

如何生成python项目需要的最小requirements.txt文件?

今天咱们来聊聊 Python 项目中如何生成一个“最小的” requirements.txt 文件。我们都知道,当我们开发一个 Python 项目的时候,很多时候都会在一个虚拟环境中进行,这样一来,就能避免不同项目之间的依赖冲突。 可有时候&#xff0c…

每日论文22-24ESSERC一种54.6-65.1GHz多路径同步16振荡器

《A 54.6-65.1 GHz Multi-Path-Synchronized 16-Core Oscillator Achieving −131.4 dBc/Hz PN and 195.8 dBc/Hz FoMT at 10 MHz Offset in 65nm CMOS》24欧洲固态 本文是在60GHz 16核VCO的工作,主要亮点在于每一组中四个VCO之间的三路同步拓扑结构,有…

web——upload-labs——第十一关——黑名单验证,双写绕过

还是查看源码, $file_name str_ireplace($deny_ext,"", $file_name); 该语句的作用是:从 $file_name 中去除所有出现在 $deny_ext 数组中的元素,替换为空字符串(即删除这些元素)。str_ireplace() 在处理时…

网络安全之国际主流网络安全架构模型

目前,国际主流的网络安全架构模型主要有: ● 信息技术咨询公司Gartner的ASA(Adaptive Security Architecture自适应安全架构) ● 美国政府资助的非营利研究机构MITRE的ATT&CK(Adversarial Tactics Techniques &…

StarRocks 架构

StarRocks 是什么?( What is StarRocks?) StarRocks 是 MPP 的查询引擎,用来做实时查询,提供亚秒级的查询性能。 兼容 MYSQL 协议,可以和大部分 BI 工具进行无缝衔接。 Apache 2.0 开源产品。 使用场景&…

图像处理 之 凸包和最小外围轮廓生成

“ 最小包围轮廓之美” 一起来欣赏图形之美~ 1.原始图片 男人牵着机器狗 2.轮廓提取 轮廓提取 3.最小包围轮廓 最小包围轮廓 4.凸包 凸包 5.凸包和最小包围轮廓的合照 凸包和最小包围轮廓的合照 上述图片中凸包、最小外围轮廓效果为作者实现算法生成。 图形几何之美系列&#…

【机器学习】决策树算法原理详解

决策树 1 概述 1.1 定义 决策树是一种解决分类问题的算法,决策树算法采用树形结构,使用层层推理来实现最终的分类。 决策树即可以做分类,也可以做回归。它主要分为两种:分类树 和 回归树。 1.2 决策树算法 第一个决策树算法…

基于深度学习的车牌检测系统的设计与实现(安卓、YOLOV、CRNNLPRNet)+文档

💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

中国省级金融发展水平指数(金融机构存款余额、贷款余额、GDP)2020-2023年

数据范围: 包含的数据内容如下: 分省份金融机构存款余额、分省份金融机构贷款余额、分省份金融机构存贷款余额、分省份GDP、分省份金融发展指数 西藏自治区、贵州省、黑龙江省2023年数据暂未公布,计算至2022年,其他省份数据无缺失…

如何在 Ubuntu 上安装 Mosquitto MQTT 代理

如何在 Ubuntu 上安装 Mosquitto MQTT 代理 Mosquitto 是一个开源的消息代理,实现了消息队列遥测传输 (MQTT) 协议。在 Ubuntu 22.04 上安装 MQTT 代理,您可以利用 MQTT 轻量级的 TCP/IP 消息平台,该平台专为资源有限的物联网 (IoT) 设备设计…

【青牛科技】带 ALC 双通道前置放大器电路D3308

概述: D3308 是一块带有 ALC 的双通道前置放大器。它适用于立体声收录机 和盒式录音机。 采用 SIP9、SOP14 的封装形式封装。 主要特点: ● 带内置 ALC 回路的双通道均衡放大器。 ● 低噪声: VNI1.0V(典型值)。 …

Spring Cloud微服务下如何配置I8n

什么是I8n 国际化(I18n)指的是设计和开发产品的过程,使得它们能够适应多种语言和文化环境,而不需要进行大量的代码更改。这通常涉及到创建一个基础版本的产品,然后通过配置和资源文件来添加对不同语言和地区的支持。 这…

百度AI人脸检测与对比

1.注册账号 打开网站 https://ai.baidu.com/ &#xff0c;注册百度账号并登录 2.创建应用 3.技术文档 https://ai.baidu.com/ai-doc/FACE/yk37c1u4t 4.Spring Boot简单集成测试 pom.xml 配置&#xff1a; <!--百度AI--> <dependency> <groupId>com.baidu.…

MoeCTF 2024 web

ProveYourLove 前端页面限制了重复提交, 需要绕过, 可以通过BurpSuite抓包爆破, 或者代码直接发包 import requestsurlhttp://127.0.0.1:44395/questionnairedata {nickname: 1,target: 1,message: 1,user_gender: male,target_gender: male,anonymous: false }for i in ran…