本文涉及:如何在k8s下搭建Prometheus+grafana的监控环境
基本概念
Prometheus提供了容器和云原生领域数据搜集、存储、处理、可视化和告警一套完整的解决方案,最初时是由SoundCloud公司开发的。自2012年开源以来社区成员就不断递增。如今的Prometheus已经发展到继Kubernetes后第2个正式加入CNCF基金会的项目
Prometheus的特点?
- 多维的数据模型(基于时间序列的k/v键值对)。
- 灵活的查询及聚合语句(PromQL)。
- 不依赖分布式存储,节点自治。
- 基于HTTP的pull模式采集时间序列数据。
- 可以使用pushgateway(prometheus的可选中间件)实现push模式。
- 可以使用动态服务发现或静态配置采集的目标机器。
- 支持多种图形及仪表盘。
Prometheus可以监控什么?
- k8s、docker、mysql、redis、es、consul、rabbitmq、zabbix等等
Prometheus架构图
Prometheus安装部署
Helm 安装
Helm 是一个命令行下的客户端工具。主要用于 Kubernetes 应用程序 Chart 的创建、打包、发布以及创建和管理本地和远程的 Chart 仓库。
1 2 3 4 5 6 |
[root@syj ~] [root@syj ~] [root@syj ~] [root@syj ~] Client: &version.Version{SemVer:"v2.13.1-rc.2", GitCommit:"05811b84a3f93603dd6c2fcfe57944dfa7ab7fd0", GitTreeState:"clean"} Error: could not find tiller |
Tiller 服务器安装
Tiller 是 Helm 的服务端,部署在 Kubernetes 集群中。Tiller 用于接收 Helm 的请求,并根据 Chart 生成 Kubernetes 的部署文件( Helm 称为 Release ),然后提交给 Kubernetes 创建应用。Tiller 还提供了 Release 的升级、删除、回滚等一系列功能。
创建rbac-config.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
apiVersion: v1 kind: ServiceAccount metadata: name: tiller namespace: kube-system apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: tiller roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: tiller namespace: kube-system |
启动
1 2 3 |
[root@syj ~] serviceaccount/tiller created clusterrolebinding.rbac.authorization.k8s.io/tiller created |
使用阿里云镜像进行安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
[root@syj ~]# helm init --service-account tiller --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.13.1 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts Creating /root/.helm Creating /root/.helm/repository Creating /root/.helm/repository/cache Creating /root/.helm/repository/local Creating /root/.helm/plugins Creating /root/.helm/starters Creating /root/.helm/cache/archive Creating /root/.helm/repository/repositories.yaml Adding stable repo with URL: https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts Adding local repo with URL: http://127.0.0.1:8879/charts $HELM_HOME has been configured at /root/.helm. Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster. Please note: by default, Tiller is deployed with an insecure 'allow unauthenticated users' policy. To prevent this, run `helm init` with the --tiller-tls-verify flag. For more information on securing your installation see: https://docs.helm.sh/using_helm/#securing-your-helm-installation Happy Helming! |
查看结果
1 2 3 4 5 6 7 |
[root@syj ~]# helm version Client: &version.Version{SemVer:"v2.13.1", GitCommit:"05811b84a3f93603dd6c2fcfe57944dfa7ab7fd0", GitTreeState:"clean"} Server: &version.Version{SemVer:"v2.13.1", GitCommit:"05811b84a3f93603dd6c2fcfe57944dfa7ab7fd0", GitTreeState:"clean"} [root@syj ~]# helm repo list NAME URL stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts local http://127.0.0.1:8879/charts |
部署 Prometheus Operator
创建命名空间
1
|
[root@syj ~]
|
下载Prometheus Operator
1
|
[root@syj ~]# wget https://github.com/coreos/prometheus-operator/archive/release-0.29.zip
|
将下载下来的依赖包解压并重命名为prometheus-operator并cd到此目录
安装prometheus相关内容
1 2 3 |
helm install --name prometheus-operator --set rbacEnable=true --namespace=monitoring helm/prometheus-operator helm install --name prometheus --set serviceMonitorsSelector.app=prometheus --set ruleSelector.app=prometheus --namespace=monitoring helm/prometheus helm install --name alertmanager --namespace=monitoring helm/alertmanager |
验证
1 2 3 4 5 6 7 8 9 10 11 |
[root@syj ~]# kubectl get pod -n monitoring NAME READY STATUS RESTARTS AGE alertmanager-alertmanager-0 2/2 Running 0 58s prometheus-operator-545b59ffc9-6g7dg 1/1 Running 0 6m32s prometheus-prometheus-0 3/3 Running 1 3m31s [root@syj ~]# kubectl get svc -n monitoring NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE alertmanager ClusterIP 10.98.237.7 <none> 9093/TCP 87s alertmanager-operated ClusterIP None <none> 9093/TCP,6783/TCP 87s prometheus ClusterIP 10.104.185.104 <none> 9090/TCP 4m prometheus-operated ClusterIP None <none> 9090/TCP 4m |
安装 kube-prometheus
1 2 3 4 |
[root@syj ~]# mkdir -p helm/kube-prometheus/charts [root@syj ~]# helm package -d helm/kube-prometheus/charts helm/alertmanager helm/grafana helm/prometheus helm/exporter-kube-dns \ > helm/exporter-kube-scheduler helm/exporter-kubelets helm/exporter-node helm/exporter-kube-controller-manager \ > helm/exporter-kube-etcd helm/exporter-kube-state helm/exporter-coredns helm/exporter-kubernetes |
验证
1 2 3 4 5 6 7 8 9 10 11 |
[root@syj ~]# kubectl get svc -n monitoring NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE alertmanager ClusterIP 10.98.237.7 <none> 9093/TCP 34m alertmanager-operated ClusterIP None <none> 9093/TCP,6783/TCP 34m kube-prometheus ClusterIP 10.101.249.82 <none> 9090/TCP 29s kube-prometheus-alertmanager ClusterIP 10.100.29.63 <none> 9093/TCP 29s kube-prometheus-exporter-kube-state ClusterIP 10.98.91.146 <none> 80/TCP 29s kube-prometheus-exporter-node ClusterIP 10.98.34.11 <none> 9100/TCP 29s kube-prometheus-grafana ClusterIP 10.108.208.247 <none> 80/TCP 29s prometheus ClusterIP 10.104.185.104 <none> 9090/TCP 36m prometheus-operated ClusterIP None <none> 9090/TCP 36m |
将grafana的Service类型改为NodePort
1
|
kubectl patch svc kube-prometheus-grafana -p '{"spec":{"type":"NodePort"}}' -n monitoring
|
此时访问grafana的默认端口31106即可:
1
|
http://ip:31106
|
安装过程参考文章:https://blog.csdn.net/wangzan18/article/details/85270816
grafana的各种模板可参考
https://grafana.com/dashboards
推荐阅读
- SpringCloud学习系列汇总
- 为什么一线大厂面试必问redis,有啥好问的?
- 多线程面试必备基础知识汇总
- Java集合源码分析汇总-JDK1.8
- Linux常用命令速查-汇总篇
- JVM系列文章汇总
相关推荐
综上所述,Python中的数据微服务开发涉及多个层面,包括但不限于环境搭建、框架选择、数据处理、API设计、测试、文档、部署以及监控等。理解并熟练运用这些知识点,将有助于你构建高效、可扩展的数据微服务。在实际...
此外,Zipkin 还支持与其他监控和日志系统集成,如 ELK(Elasticsearch, Logstash, Kibana)或 Prometheus,进一步增强系统的可观测性。 在微服务架构中,Zipkin 的链路追踪能力对于理解和优化服务间的通信至关重要...
qt6.7的mqtt库
特别训练事业单位招聘考试计算机类岗位专业训练题及复习资料.doc
,,新能源汽车热管理分析之某新能源汽车项目热管理1D分析模型及报告。 所用软件为KULI。 每个工况对应一个系统模型。 分析级别为整车级别(含空调 冷却 ),工况丰富。 电子资料,该资料对新能源汽车工程师热管理的设计,匹配及1D分析的能力有极大提升。 ,新能源汽车热管理分析; 1D分析模型及报告; KULI软件应用; 整车级别分析; 丰富工况; 电子资料; 热管理设计; 匹配; 能力提升。,KULI软件下的新能源汽车项目热管理1D分析模型与报告
通信行业安全生产知识中国铁通内部版.doc
项目管理使用软件Porject使用手册.ppt
《CST微波工作室入门教程》总结
base.apk (8).1
Comsol锂离子电池热管理模型 电化学热耦合模型: 内容: 锂离子电池PCM仿真瞬态计算,计算流道液冷情况下锂离子电池放电时的温升情况 包括流速分布,温度分布,相变材料的相变过程模拟等 COMSOL程序物理场公式说明建模过程 ,Comsol锂离子电池热管理模型; 锂离子电池PCM仿真; 瞬态计算; 流速分布; 温度分布; 相变材料模拟; COMSOL物理场公式建模。,COMSOL锂离子电池热管理模型:流速与温度分布的瞬态仿真研究
身处网络时代,随着网络系统体系发展的不断成熟和完善,人们的生活也随之发生了很大的变化,身边经常有同学丢失了东西或者衣服而烦恼,为了找到自己心爱的物品疲于奔命,还不一定能找到,为了满足学生失物招领的要求,校园失物招领系统被开发研究了出来。 本文主要描述了该校园失物招领系统的具体开发过程,在SSM框架的基础上,采用vue技术和MYSQL数据库,使该校园失物招领系统具有很好的稳定性和安全性。本设计重点从系统概述、系统分析、系统设计、数据库设计、系统测试和总结这几个方面对该校园失物招领系统进行阐述,用户通过该校园失物招领系统可以查询自己喜欢的信息。 该校园失物招领系统不仅能够稳定的运行,快捷方便的操作,界面简洁清晰,而且功能齐全,实用性强。 关键词:校园失物招领系统,SSM框架,系统分析,数据库设计
德国大陆ARS408-21毫米波雷达数据资料,典型应用领域: - 汽车前向AEB/ACC/FCW等ADAS和自动驾驶等场景 - 起重机(RTG,RMG,STS,桥式起重机,龙门起重机)的避障防撞、作业区监测等 - 远程区域监控(适用于危险或不能进入的区域) - 目标分类 - 雨雾霾雪等复杂环境下的目标检测 - 道闸防砸检测
简单的购物车系统,实现了前后端分离
实现了uboot2012移植至友善之臂mini210上(无法正常启动内核)
利用matlab软件根据谐波叠加法生成三维路面不平度信息及路面txt文件,转成rdf导入recurdyn中可直接生成不同等级仿真路面模型。 ,关键词:matlab软件;谐波叠加法;三维路面不平度信息;路面txt文件;转成rdf;recurdyn;不同等级仿真路面模型。,MATLAB生成三维路面不平度及转RDF导入RecurDyn仿真模型
2023-04-06-项目笔记-第四百三十八阶段-课前小分享_小分享1.坚持提交gitee 小分享2.作业中提交代码 小分享3.写代码注意代码风格 4.3.1变量的使用 4.4变量的作用域与生命周期 4.4.1局部变量的作用域 4.4.2全局变量的作用域 4.4.2.1全局变量的作用域_1 4.4.2.436局变量的作用域_436- 2025-03-15
思远烘焙管理软件(客户方案).doc
FDTD仿真宽角度可见光吸收器,一篇2区文章,模型文件包含FDTD仿真文件以及一份简说明教程 ,核心关键词:FDTD仿真;宽角度可见光吸收器;2区文章;模型文件;FDTD仿真文件;简说明教程;,FDTD仿真宽角度可见光吸收器模型:2区文章详解与教程
如何通过阅读习惯提升团队协作能力
基于plc控制的水果糖粒包装机系统设计 程序 图纸 文章1.4万字 运行动画仿真 ,基于plc控制; 水果糖粒包装机; 系统设计; 程序; 图纸; 运行动画仿真,基于PLC控制的糖粒包装机系统设计与仿真