【五】prometheus+grafna初步部署和简单使用

news2024/11/20 4:20:18

部署Prometheus

地址: https://github.com/prometheus-operator/kube-prometheus/tree/release-0.7
学习来源:https://www.cnblogs.com/lidong94/p/14500276.html、https://juejin.cn/post/6865504989695967245?searchId=20240312205710B746697AB0CDB7706DB3
我使用的kube-Prometheus,因为我的k8s版本是1.19,所以根据版本对应选择的0.7
在这里插入图片描述

wget https://github.com/prometheus-operator/kube-prometheus/archive/refs/tags/v0.7.0.zip
unzip v0.7.0.zip # 就可以看到kube-prometheus-0.7.0
cd kube-prometheus-0.7.0

修改service 类型为 NodePort,不然公网无法访问,并添加Nodeport端口,

vi manifests/grafana-service.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    app: grafana
  name: grafana
  namespace: monitoring
spec:
  type: NodePort     # 新增的
  ports:
  - name: http
    port: 3000
    targetPort: http
    nodePort: 30099   # 新增的
  selector:
    app: grafana

vi manifests/alertmanager-service.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    alertmanager: main
  name: alertmanager-main
  namespace: monitoring
spec:
  type: NodePort     # 新增
  ports:
  - name: web
    port: 9093
    targetPort: web
    nodePort: 30300    # 新增
  selector:
    alertmanager: main
    app: alertmanager
  sessionAffinity: ClientIP

vi manifests/prometheus-service.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    prometheus: k8s
  name: prometheus-k8s
  namespace: monitoring
spec:
  type: NodePort   # 新增
  ports:
  - name: web
    port: 9090
    targetPort: web
    nodePort: 30100   # 新增
  selector:
    app: prometheus
    prometheus: k8s
  sessionAffinity: ClientIP

注意三个文件的端口要不一样,不然会冲突,在这里运行启动命令其实就可以创建了,但是创建后会少两个监控,所以再增加一下配置

还有要修改镜像的,因为我上网是科学的,所以没有做这一步,可以看我上面贴的学习来源。

新增监控

1、修改监控端口

vi /etc/kubernetes/manifests/kube-scheduler.yaml

把这个参数的值改成这个 --bind-address=0.0.0.0

vi /etc/kubernetes/manifests/kube-controller-manager.yaml

把这个参数的值改成这个 --bind-address=0.0.0.0

在~目录下创建下面两个文件

vi kube-system-controller-manager.yaml
apiVersion: v1
kind: Service
metadata:
  namespace: kube-system
  name: kube-controller-manager
  labels:
    k8s-app: kube-controller-manager
spec:
  ports:
  - name: https-metrics
    port: 10257
  selector:
    component: kube-controller-manager

vi kube-system-schedule.yaml 
apiVersion: v1
kind: Service
metadata:
  namespace: kube-system
  name: kube-scheduler
  labels:
    k8s-app: kube-scheduler
spec:
  ports:
  - name: https-metrics
    port: 10259
  selector:
    component: kube-scheduler

kubectl apply -f kube-system-controller-manager.yaml
kubectl apply -f kube-system-schedule.yaml

部署命令

创建命令

kubectl create -f manifests/setup
until kubectl get servicemonitors --all-namespaces ; do date; sleep 1; echo ""; done
kubectl create -f manifests/

等执行完就可以访问了
prometheus: http://103.39.226.71:30100/graph
第一次启动的时候,发现Prometheus访问不了,可以进入容器的日志中看下,报错了的话,删掉一个pod试试,删除pod会重启一个pod,这样好像就可以了。

grafna: http://103.39.226.71:30099/login 默认账号admin 密码admin

点击这个可以看到default文件夹,文件夹里就有那些监控数据
在这里插入图片描述

由于grafana默认时区是UTC,比中国时间慢了8小时,很不便于日常监控查看,需要进行修改,如下图

在这里插入图片描述

grep -i timezone grafana-dashboardDefinitions.yaml   # 找到所有的,发现有一个是小写utc,其他都是UTC
# 执行下面的,这两个是不同的,都要执行
sed -i 's/UTC/UTC+8/g'  grafana-dashboardDefinitions.yaml
sed -i 's/utc/utc+8/g'  grafana-dashboardDefinitions.yaml

kubectl apply -f grafana-dashboardDefinitions.yaml

再看时间就会变成当前时间了。

发现还是为0
在这里插入图片描述
根据这个去尝试解决 https://www.cnblogs.com/zoujiaojiao/p/16921462.html

kubectl delete -f prometheus-serviceMonitorKubeScheduler.yaml
kubectl delete -f prometheus-serviceMonitorKubeControllerManager.yaml

修改这两个文件内容
prometheus-serviceMonitorKubeControllerManager.yaml

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  labels:
    k8s-app: kube-controller-manager
  name: kube-controller-manager
  namespace: monitoring
spec:
  endpoints:
  - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
    interval: 30s
    port: https-metrics
    scheme: https
    tlsConfig:
      insecureSkipVerify: true
  jobLabel: k8s-app
  namespaceSelector:
    matchNames:
    - kube-system
  selector:
    matchLabels:
      k8s-app: kube-controller-manager

prometheus-serviceMonitorKubeScheduler.yaml

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  labels:
    k8s-app: kube-scheduler
  name: kube-scheduler
  namespace: monitoring
spec:
  endpoints:
  - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
    interval: 30s
    port: https-metrics
    scheme: https
    tlsConfig:
      insecureSkipVerify: true
  jobLabel: k8s-app
  namespaceSelector:
    matchNames:
    - kube-system
  selector:
    matchLabels:
      k8s-app: kube-scheduler

 kubectl apply -f prometheus-serviceMonitorKubeScheduler.yaml
 kubectl apply -f prometheus-serviceMonitorKubeControllerManager.yaml

执行最后这两个命令的时候一开始也没成功,然后我先DELETE了这两个server,然后重新创建,重复了两遍又可以了,可能是反应太慢了。反正现在显示正常了
在这里插入图片描述

我的到这里就先结束了,没有配置持久化,没有配置告警,如果要配置的,我上面贴的学习链接可以去看下。

删除命令

kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setup

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

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

相关文章

人事地震,京东方多名董事离职 | 百能云芯

3月12日,京东方公布了《关于董事辞职的公告》,公告内容显示:董事会于2024年3月12日收到副董事长刘晓东先生、董事孙芸女士提交的书面辞呈。 双方离职原因均系年龄原因,刘晓东先生申请辞去公司董事、副董事长、董事会专门委员会委员…

深入理解Hive:探索不同的表类型及其应用场景

文章目录 1. 引言2. Hive表类型概览2.1 按照数据存储位置2.2 按照数据管理方式2.3 按照查询优化2.4 按照数据的临时性和持久性 3. 写在最后 1. 引言 在大数据时代,Hive作为一种数据仓库工具,为我们提供了强大的数据存储和查询能力。了解Hive的不同表类型…

原理+代码:Diffusion Model 直观理解

原理部分 直观理解 数学形式 网络如何训练? 训练一个怎样的网络? 代码部分 Network helpers Positional embeddings ResNet/ConvNeXT block Attention module Conditional U-Net 定义前向扩散过程 用一个实例来说明前向加噪过程 损失函数 …

基于SSH框架的电子商城的设计

目录 摘要 2 Abstract 3 第一章 前言 4 1.1 课题研究意义 4 1.2 国外研究现状 4 方案一: 4 方案二: 4 方案三: 5 1.3 课题研究内容 5 (1)商品浏览模块 5 (2)订单管理模块 5 (3&…

基于 llvm 3.4 的C++重构工具

还未测试,存个档,未完待续 1,源码 Makefile LLVM_CONFIG?llvm-configifndef VERBOSE QUIET: endifSRC_DIR?$(PWD) LDFLAGS$(shell $(LLVM_CONFIG) --ldflags) COMMON_FLAGS-Wall -Wextra CXXFLAGS$(COMMON_FLAGS) $(shell $(LLVM_CONFIG) --cxxflags…

【机器学习300问】36、什么是集成学习?

一、什么是集成学习? (1)它的出现是为了解决什么问题? 提高准确性:单个模型可能对某些数据敏感或者有概念偏见,而集成多个模型可以提高预测的准确性。让模型变稳定:一些模型,如决策…

【JavaScript】数据类型转换 ① ( 隐式转换 和 显式转换 | 常用的 数据类型转换 | 转为 字符串类型 方法 )

文章目录 一、 JavaScript 数据类型转换1、数据类型转换2、隐式转换 和 显式转换3、常用的 数据类型转换4、转为 字符串类型 方法 一、 JavaScript 数据类型转换 1、数据类型转换 在 网页端 使用 HTML 表单 和 浏览器输入框 prompt 函数 , 接收的数据 是 字符串类型 变量 , 该…

[密码学]OpenSSL实践篇

背景 最近在写Android abl阶段fastboot工具,需要我在Android代码中实现一些鉴权加解密相关的fastboot命令,里面用到了OpenSSL。我们先来实践一下OpenSSL在Linux系统中的指令。 OpenSSL官方网站:OpenSSL 中文手册 | OpenSSL 中文网 1. 查看…

【变量提升】关于JavaScript变量提升的理解,它导致了什么问题?

😁 作者简介:一名大四的学生,致力学习前端开发技术 ⭐️个人主页:夜宵饽饽的主页 ❔ 系列专栏:JavaScript小贴士 👐学习格言:成功不是终点,失败也并非末日,最重要的是继续…

带你摸透C语言相关内存函数

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话: 知不足而奋进,望远山而前行&am…

vue2中如何实现添加一个空标签的效果,</>

前言&#xff1a; 众所周知&#xff0c;vue3突破了每一个vue文件中只能有一个根标签的限制&#xff0c;但是我们还有很多项目都是vue2的项目&#xff0c;如果让vue2中实现一个类似</>的效果呢&#xff0c;像react的16.2.0的版本之后&#xff0c;可以直接用<></&…

电脑音频显示红叉怎么办?这里提供四种方法

前言 如果你在系统托盘中看到音量图标上的红色X,则表示你无法使用音频设备。即使音频设备未被禁用,当你运行音频设备疑难解答时,仍然会看到此错误。 你的电脑将显示已安装高清音频设备,但当你将鼠标悬停在图标上时,它将显示未安装音频输出设备。这是一个非常奇怪的问题,…

C语言 指针(2)

文章目录 前言 一、数组名的理解 二、指针访问数组 三、一维数组传参的本质 四、冒泡排序 五、二级指针 六、指针数组 七、指针数组模拟二维数组 总结 前言 我们今天继续来了解指针的内容&#xff0c;让大家更加细致的理解到数组的含义 一、数组名的理解 之前我们在学习指针时…

王道OnlineJudge 14

题目 二叉树层次建树就是一层一层的建树&#xff0c;从左到右。随着纵向层次的深入&#xff0c;结点的数量变化规律为&#xff1a;1→2→4→8→16→32。 先画图&#xff0c;然后看图可闭眼写代码 右边为辅助队列&#xff0c;有多少个二叉树结点&#xff0c;就有多少个辅助队…

一个简单的Web UI自动化测试框架Java实现

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

口才教育:如何提升沟通技巧与表达能力

口才教育&#xff1a;如何提升沟通技巧与表达能力 口才教育在现代社会中扮演着越来越重要的角色。拥有良好的沟通技巧和表达能力对于个人的职业发展、人际交往乃至生活质量都至关重要。因此&#xff0c;如何有效地提升口才能力成为了许多人关注的焦点。本文将探讨口才教育的重…

java-可变参数

可变参数是什么&#xff1f; 可变参数就是指传入的参数个数是可变的&#xff0c;不是固定的 为什么要可变参数&#xff1f; 当我们要传入大量的形参时&#xff0c;我们就可以用到可变参数了 定义格式 数据类型...变量名; 例如int ...a; 可变参数的细节&#xff1a; &…

Vue2(五):收集表单数据、过滤器、内置指令和自定义指令

一、回顾 总结Vue监视数据 1.Vue监视数据的原理&#xff1a; 1.vue会监视data中所有层次的数据。 2.如何监测对象中的数据?通过setter实现监视&#xff0c;且要在new Vue时就传入要监测的数据。(1&#xff09;.对象中后追加的属性&#xff0c;Vue默认不做响应式处理(2&#…

java拷贝数组

package com.mohuanan.exercise;public class Exercise {public static void main(String[] args) {int[] arr {1, 2, 3, 4, 5, 6, 7, 8, 8}; //格式化快捷键 CTRL 加 Alt 加 L键// F1截图 F3贴图//调用 copyOfRangeint[] ints copyOfRange(arr, 3, 7);for (int i 0; i &l…

学习网络编程No.13【网络层IP协议理解】

引言&#xff1a; 北京时间&#xff1a;2024/3/5/8:38&#xff0c;早六加早八又是生不如死的一天&#xff0c;不过好在喝两口热水提口气手指还能跳动。当然起关键性作用的还是思维跟上了课程脑袋较为清晰&#xff0c;假如是听学校老师在哪里磨过来磨过去&#xff0c;那我倒头就…